// This file is auto-generated by @hey-api/openapi-ts

export type CouponEnum = 'coupon';

export type CouponResponseObjectResource = {
    type: CouponEnum;
    /**
     * The internal id of a Coupon is equivalent to its external id stored within an integration.
     */
    id: string;
    attributes: {
        /**
         * This is the id that is stored in an integration such as Shopify or Magento.
         */
        external_id: string;
        /**
         * A description of the coupon.
         */
        description?: string | null;
    };
    links: ObjectLinks;
};

export type GetCouponResponseCollection = {
    data: Array<CouponResponseObjectResource>;
    links?: CollectionLinks;
};

export type GetCouponResponse = {
    data: CouponResponseObjectResource;
};

export type CouponCodeEnum = 'coupon-code';

export type GetCouponCodeCouponRelationshipResponse = {
    data: {
        type: CouponEnum;
        /**
         * The internal id of a Coupon is equivalent to its external id stored within an integration.
         */
        id: string;
    };
};

export type CouponCodeResponseObjectResource = {
    type: CouponCodeEnum;
    /**
     * The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.
     */
    id: string;
    attributes: {
        /**
         * This is a unique string that will be or is assigned to each customer/profile and is associated with a coupon.
         */
        unique_code?: string | null;
        /**
         * The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.
         */
        expires_at?: string | null;
        /**
         * The current status of the coupon code.
         */
        status?: 'ASSIGNED_TO_PROFILE' | 'DELETING' | 'PROCESSING' | 'UNASSIGNED' | 'USED' | 'VERSION_NOT_ACTIVE';
    };
    links: ObjectLinks;
};

export type GetCouponCodeResponseCollectionCompoundDocument = {
    data: Array<CouponCodeResponseObjectResource & {
        relationships?: {
            coupon?: {
                data?: {
                    type: CouponEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            profile?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<CouponResponseObjectResource>;
};

export type GetCouponCodeResponseCompoundDocument = {
    data: CouponCodeResponseObjectResource & {
        relationships?: {
            coupon?: {
                data?: {
                    type: CouponEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            profile?: {
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CouponResponseObjectResource>;
};

export type GetCouponCodeResponseCollection = {
    data: Array<CouponCodeResponseObjectResource & {
        relationships?: {
            coupon?: {
                links?: RelationshipLinks;
            };
            profile?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCouponCodesRelationshipsResponseCollection = {
    data: Array<{
        type: CouponCodeEnum;
        /**
         * The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.
         */
        id: string;
    }>;
};

export type CatalogVariantEnum = 'catalog-variant';

export type CatalogItemEnum = 'catalog-item';

export type CatalogVariantResponseObjectResource = {
    type: CatalogVariantEnum;
    /**
     * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
    attributes: {
        /**
         * The ID of the catalog item variant in an external system.
         */
        external_id?: string | null;
        /**
         * The title of the catalog item variant.
         */
        title?: string | null;
        /**
         * A description of the catalog item variant.
         */
        description?: string | null;
        /**
         * The SKU of the catalog item variant.
         */
        sku?: string | null;
        /**
         * This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:
         * `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.
         * `0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.
         */
        inventory_policy?: 0 | 1 | 2;
        /**
         * The quantity of the catalog item variant currently in stock.
         */
        inventory_quantity?: number | null;
        /**
         * This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).
         */
        price?: number | null;
        /**
         * URL pointing to the location of the catalog item variant on your website.
         */
        url?: string | null;
        /**
         * URL pointing to the location of a full image of the catalog item variant.
         */
        image_full_url?: string | null;
        /**
         * URL pointing to the location of an image thumbnail of the catalog item variant.
         */
        image_thumbnail_url?: string | null;
        /**
         * List of URLs pointing to the locations of images of the catalog item variant.
         */
        images?: Array<string> | null;
        /**
         * Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.
         */
        custom_metadata?: {
            [key: string]: unknown;
        } | null;
        /**
         * Boolean value indicating whether the catalog item variant is published.
         */
        published?: boolean | null;
        /**
         * Date and time when the catalog item  variant was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created?: string | null;
        /**
         * Date and time when the catalog item variant was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        updated?: string | null;
    };
    links: ObjectLinks;
};

export type CatalogItemResponseObjectResource = {
    type: CatalogItemEnum;
    /**
     * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
    attributes: {
        /**
         * The ID of the catalog item in an external system.
         */
        external_id?: string | null;
        /**
         * The title of the catalog item.
         */
        title?: string | null;
        /**
         * A description of the catalog item.
         */
        description?: string | null;
        /**
         * This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).
         */
        price?: number | null;
        /**
         * URL pointing to the location of the catalog item on your website.
         */
        url?: string | null;
        /**
         * URL pointing to the location of a full image of the catalog item.
         */
        image_full_url?: string | null;
        /**
         * URL pointing to the location of an image thumbnail of the catalog item
         */
        image_thumbnail_url?: string | null;
        /**
         * List of URLs pointing to the locations of images of the catalog item.
         */
        images?: Array<string> | null;
        /**
         * Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.
         */
        custom_metadata?: {
            [key: string]: unknown;
        } | null;
        /**
         * Boolean value indicating whether the catalog item is published.
         */
        published?: boolean | null;
        /**
         * Date and time when the catalog item was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created?: string | null;
        /**
         * Date and time when the catalog item was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        updated?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogItemResponseCollectionCompoundDocument = {
    data: Array<CatalogItemResponseObjectResource & {
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<CatalogVariantResponseObjectResource>;
};

export type GetCatalogItemResponseCompoundDocument = {
    data: CatalogItemResponseObjectResource & {
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CatalogVariantResponseObjectResource>;
};

export type GetCatalogCategoryItemsRelationshipsResponseCollection = {
    data: Array<{
        type: CatalogItemEnum;
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    }>;
};

export type GetCatalogVariantResponseCollection = {
    data: Array<CatalogVariantResponseObjectResource & {
        relationships?: {
            item?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogVariantResponse = {
    data: CatalogVariantResponseObjectResource & {
        relationships?: {
            item?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type GetCatalogItemVariantsRelationshipsResponseCollection = {
    data: Array<{
        type: CatalogVariantEnum;
        /**
         * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    }>;
};

export type CatalogCategoryEnum = 'catalog-category';

export type CatalogCategoryResponseObjectResource = {
    type: CatalogCategoryEnum;
    /**
     * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
    attributes: {
        /**
         * The ID of the catalog category in an external system.
         */
        external_id?: string | null;
        /**
         * The name of the catalog category.
         */
        name?: string | null;
        /**
         * Date and time when the catalog category was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        updated?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogCategoryResponseCollection = {
    data: Array<CatalogCategoryResponseObjectResource & {
        relationships?: {
            items?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogCategoryResponse = {
    data: CatalogCategoryResponseObjectResource & {
        relationships?: {
            items?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type CouponCodeBulkCreateJobEnum = 'coupon-code-bulk-create-job';

export type ErrorSource = {
    /**
     * A pointer to the source of the error in the request payload.
     */
    pointer?: string | null;
};

export type ApiJobErrorPayload = {
    /**
     * Unique identifier for the error.
     */
    id: string;
    /**
     * A code for classifying the error type.
     */
    code: string;
    /**
     * A high-level message about the error.
     */
    title: string;
    /**
     * Specific details about the error.
     */
    detail: string;
    source: ErrorSource;
};

export type CouponCodeCreateJobResponseObjectResource = {
    type: CouponCodeBulkCreateJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCouponCodeCreateJobResponseCollectionCompoundDocument = {
    data: Array<CouponCodeCreateJobResponseObjectResource & {
        relationships?: {
            'coupon-codes'?: {
                data?: Array<{
                    type: CouponCodeEnum;
                    /**
                     * IDs of the created coupon codes.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCouponCodeCreateJobResponseCompoundDocument = {
    data: CouponCodeCreateJobResponseObjectResource & {
        relationships?: {
            'coupon-codes'?: {
                data?: Array<{
                    type: CouponCodeEnum;
                    /**
                     * IDs of the created coupon codes.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CouponCodeResponseObjectResource>;
};

export type GetCatalogItemCategoriesRelationshipsResponseCollection = {
    data: Array<{
        type: CatalogCategoryEnum;
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    }>;
};

export type MetricEnum = 'metric';

export type FlowEnum = 'flow';

export type MetricResponseObjectResource = {
    type: MetricEnum;
    /**
     * The Metric ID
     */
    id: string;
    attributes: {
        /**
         * The name of the metric
         */
        name?: string | null;
        /**
         * Creation time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Last updated time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        /**
         * The integration associated with the event
         */
        integration?: {
            [key: string]: unknown;
        } | null;
    };
    links: ObjectLinks;
};

export type ProfileLocation = {
    /**
     * First line of street address
     */
    address1?: string | null;
    /**
     * Second line of street address
     */
    address2?: string | null;
    /**
     * City name
     */
    city?: string | null;
    /**
     * Country name
     */
    country?: string | null;
    /**
     * Latitude coordinate. We recommend providing a precision of four decimal places.
     */
    latitude?: string | number | null;
    /**
     * Longitude coordinate. We recommend providing a precision of four decimal places.
     */
    longitude?: string | number | null;
    /**
     * Region within a country, such as state or province
     */
    region?: string | null;
    /**
     * Zip code
     */
    zip?: string | null;
    /**
     * Time zone name. We recommend using time zones from the IANA Time Zone Database.
     */
    timezone?: string | null;
    /**
     * IP Address
     */
    ip?: string | null;
};

export type EmailMarketingSuppression = {
    /**
     * The reason the profile was suppressed.
     */
    reason: 'HARD_BOUNCE' | 'INVALID_EMAIL' | 'SPAM_COMPLAINT' | 'UNSUBSCRIBE' | 'USER_SUPPRESSED';
    /**
     * The timestamp when the profile was suppressed, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
     */
    timestamp: string;
};

export type EmailMarketingListSuppression = {
    /**
     * The ID of list to which the suppression applies.
     */
    list_id: string;
    /**
     * The reason the profile was suppressed from the list.
     */
    reason: string;
    /**
     * The timestamp when the profile was suppressed from the list, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
     */
    timestamp: string;
};

export type EmailMarketing = {
    /**
     * Whether or not this profile has implicit consent to receive email marketing. True if it does profile does not have any global suppressions.
     */
    can_receive_email_marketing: boolean;
    /**
     * The consent status for email marketing.
     */
    consent: string;
    /**
     * The timestamp when consent was recorded or updated for email marketing, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
     */
    consent_timestamp?: string | null;
    /**
     * The timestamp when a field on the email marketing object was last modified.
     */
    last_updated?: string | null;
    /**
     * The method by which the profile was subscribed to email marketing.
     */
    method?: string | null;
    /**
     * Additional details about the method by which the profile was subscribed to email marketing. This may be empty if no details were provided.
     */
    method_detail?: string | null;
    /**
     * Additional detail provided by the caller when the profile was subscribed. This may be empty if no details were provided.
     */
    custom_method_detail?: string | null;
    /**
     * Whether the profile was subscribed to email marketing using a double opt-in.
     */
    double_optin?: boolean | null;
    /**
     * The global email marketing suppression for this profile.
     */
    suppression?: Array<EmailMarketingSuppression> | null;
    /**
     * The list suppressions for this profile.
     */
    list_suppressions?: Array<EmailMarketingListSuppression> | null;
};

export type EmailChannel = {
    marketing?: EmailMarketing;
};

export type SmsMarketing = {
    /**
     * Whether or not this profile is subscribed to receive SMS marketing.
     */
    can_receive_sms_marketing: boolean;
    /**
     * The consent status for SMS marketing.
     */
    consent: string;
    /**
     * The timestamp when consent was recorded or updated for SMS marketing, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
     */
    consent_timestamp?: string | null;
    /**
     * The method by which the profile was subscribed to SMS marketing.
     */
    method?: string | null;
    /**
     * Additional details about the method which the profile was subscribed to SMS marketing. This may be empty if no details were provided.
     */
    method_detail?: string | null;
    /**
     * The timestamp when the SMS consent record was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
     */
    last_updated?: string | null;
};

export type SmsTransactional = {
    /**
     * Whether or not this profile is subscribed to receive transactional SMS.
     */
    can_receive_sms_transactional: boolean;
    /**
     * The consent status for SMS Transactional.
     */
    consent: string;
    /**
     * The timestamp when consent was recorded or updated for Transactional SMS messaging , in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
     */
    consent_timestamp?: string | null;
    /**
     * The method by which the profile was subscribed to Transactional SMS messaging .
     */
    method?: string | null;
    /**
     * Additional details about the method which the profile was subscribed to Transactional SMS messaging. This may be empty if no details were provided.
     */
    method_detail?: string | null;
    /**
     * The timestamp when the SMS consent record was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
     */
    last_updated?: string | null;
};

export type SmsChannel = {
    marketing?: SmsMarketing;
    transactional?: SmsTransactional;
};

export type PushMarketing = {
    /**
     * Whether or not this profile is subscribed to receive mobile push.
     */
    can_receive_push_marketing: boolean;
    /**
     * The consent status for mobile push marketing.
     */
    consent: string;
    /**
     * The timestamp when the consent was last changed, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
     */
    consent_timestamp?: string | null;
};

export type PushChannel = {
    marketing?: PushMarketing;
};

export type Subscriptions = {
    email?: EmailChannel;
    sms?: SmsChannel;
    mobile_push?: PushChannel;
};

export type PredictiveAnalytics = {
    /**
     * Total value of all historically placed orders
     */
    historic_clv?: number | null;
    /**
     * Predicted value of all placed orders in the next 365 days
     */
    predicted_clv?: number | null;
    /**
     * Sum of historic and predicted CLV
     */
    total_clv?: number | null;
    /**
     * Number of already placed orders
     */
    historic_number_of_orders?: number | null;
    /**
     * Predicted number of placed orders in the next 365 days
     */
    predicted_number_of_orders?: number | null;
    /**
     * Average number of days between orders (None if only one order has been placed)
     */
    average_days_between_orders?: number | null;
    /**
     * Average value of placed orders
     */
    average_order_value?: number | null;
    /**
     * Probability the customer has churned
     */
    churn_probability?: number | null;
    /**
     * Expected date of next order, as calculated at the time of their most recent order
     */
    expected_date_of_next_order?: string | null;
};

export type ProfileEnum = 'profile';

export type ListEnum = 'list';

export type SegmentEnum = 'segment';

export type PushTokenEnum = 'push-token';

export type ProfileResponseObjectResource = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        /**
         * Date and time when the profile was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the profile was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        /**
         * Date and time of the most recent event the triggered an update to the profile, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        last_event_date?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
    };
    links: ObjectLinks;
};

export type AttributionEnum = 'attribution';

export type EventEnum = 'event';

export type CampaignEnum = 'campaign';

export type CampaignMessageEnum = 'campaign-message';

export type FlowMessageEnum = 'flow-message';

export type AttributionResponseObjectResource = {
    type: AttributionEnum;
    /**
     * The ID of the attribution
     */
    id: string;
    relationships?: {
        event?: {
            data?: {
                type: EventEnum;
                /**
                 * Event
                 */
                id: string;
            };
        };
        'attributed-event'?: {
            data?: {
                type: EventEnum;
                /**
                 * Attributed Event
                 */
                id: string;
            };
        };
        campaign?: {
            data?: {
                type: CampaignEnum;
                /**
                 * Attributed Campaign
                 */
                id: string;
            };
        };
        'campaign-message'?: {
            data?: {
                type: CampaignMessageEnum;
                /**
                 * Attributed Campaign Message
                 */
                id: string;
            };
        };
        flow?: {
            data?: {
                type: FlowEnum;
                /**
                 * Attributed Flow
                 */
                id: string;
            };
        };
        'flow-message'?: {
            data?: {
                type: FlowMessageEnum;
                /**
                 * Attributed Flow Message
                 */
                id: string;
            };
        };
        'flow-message-variation'?: {
            data?: {
                type: FlowMessageEnum;
                /**
                 * Attributed Flow Message Variation
                 */
                id: string;
            };
        };
    };
    links: ObjectLinks;
};

export type EventResponseObjectResource = {
    type: EventEnum;
    /**
     * The Event ID
     */
    id: string;
    attributes: {
        /**
         * Event timestamp in seconds
         */
        timestamp?: number | null;
        /**
         * Event properties, can include identifiers and extra properties
         */
        event_properties?: {
            [key: string]: unknown;
        } | null;
        /**
         * Event timestamp in ISO8601 format (YYYY-MM-DDTHH:MM:SS+hh:mm)
         */
        datetime?: string | null;
        /**
         * A unique identifier for the event, this can be used as a cursor in pagination
         */
        uuid?: string | null;
    };
    links: ObjectLinks;
};

export type GetEventResponseCollectionCompoundDocument = {
    data: Array<EventResponseObjectResource & {
        relationships?: {
            profile?: {
                data?: {
                    type: ProfileEnum;
                    /**
                     * Profile ID of the associated profile, if available
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            metric?: {
                data?: {
                    type: MetricEnum;
                    /**
                     * The Metric ID
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            attributions?: {
                data?: Array<{
                    type: AttributionEnum;
                    /**
                     * Attributions for this event
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<AttributionResponseObjectResource | MetricResponseObjectResource | ProfileResponseObjectResource>;
};

export type GetEventResponseCompoundDocument = {
    data: EventResponseObjectResource & {
        relationships?: {
            profile?: {
                data?: {
                    type: ProfileEnum;
                    /**
                     * Profile ID of the associated profile, if available
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            metric?: {
                data?: {
                    type: MetricEnum;
                    /**
                     * The Metric ID
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            attributions?: {
                data?: Array<{
                    type: AttributionEnum;
                    /**
                     * Attributions for this event
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<AttributionResponseObjectResource | MetricResponseObjectResource | ProfileResponseObjectResource>;
};

export type GetMetricResponse = {
    data: MetricResponseObjectResource & {
        relationships?: {
            'flow-triggers'?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type GetEventMetricRelationshipResponse = {
    data: {
        type: MetricEnum;
        /**
         * The Metric ID
         */
        id: string;
    };
};

export type GetProfileResponse = {
    data: ProfileResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
            'push-tokens'?: {
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: ProfileEnum;
        attributes?: {
            subscriptions?: Subscriptions;
            predictive_analytics?: PredictiveAnalytics;
        };
    };
};

export type GetEventProfileRelationshipResponse = {
    data: {
        type: ProfileEnum;
        /**
         * Primary key that uniquely identifies this profile. Generated by Klaviyo.
         */
        id: string;
    };
};

export type FlowActionEnum = 'flow-action';

export type TagEnum = 'tag';

export type FlowResponseObjectResource = {
    type: FlowEnum;
    id: string;
    attributes: {
        name?: string | null;
        status?: string | null;
        archived?: boolean | null;
        created?: string | null;
        updated?: string | null;
        /**
         * Corresponds to the object which triggered the flow.
         */
        trigger_type?: 'Added to List' | 'Date Based' | 'Low Inventory' | 'Metric' | 'Price Drop' | 'Unconfigured';
    };
    links: ObjectLinks;
};

export type GetMetricResponseCollectionCompoundDocument = {
    data: Array<MetricResponseObjectResource & {
        relationships?: {
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<FlowResponseObjectResource>;
};

export type GetMetricResponseCompoundDocument = {
    data: MetricResponseObjectResource & {
        relationships?: {
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<FlowResponseObjectResource>;
};

export type GetFlowResponseCollection = {
    data: Array<FlowResponseObjectResource & {
        relationships?: {
            'flow-actions'?: {
                links?: RelationshipLinks;
            };
            tags?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetMetricFlowTriggersRelationshipsResponseCollection = {
    data: Array<{
        type: FlowEnum;
        id: string;
    }>;
};

export type TagGroupEnum = 'tag-group';

export type TagResponseObjectResource = {
    type: TagEnum;
    /**
     * The Tag ID
     */
    id: string;
    attributes: {
        /**
         * The Tag name
         */
        name: string;
    };
    links: ObjectLinks;
};

export type ListListResponseObjectResource = {
    type: ListEnum;
    /**
     * Primary key that uniquely identifies this list. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * A helpful name to label the list
         */
        name?: string | null;
        /**
         * Date and time when the list was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the list was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        /**
         * The opt-in process for this list.  Could be either 'single_opt_in' or 'double_opt_in'.
         */
        opt_in_process?: 'double_opt_in' | 'single_opt_in';
    };
    links: ObjectLinks;
};

export type GetListListResponseCollectionCompoundDocument = {
    data: Array<ListListResponseObjectResource & {
        relationships?: {
            profiles?: {
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<FlowResponseObjectResource | TagResponseObjectResource>;
};

export type ListRetrieveResponseObjectResource = {
    type: ListEnum;
    /**
     * Primary key that uniquely identifies this list. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * A helpful name to label the list
         */
        name?: string | null;
        /**
         * Date and time when the list was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the list was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        /**
         * The opt-in process for this list.  Could be either 'single_opt_in' or 'double_opt_in'.
         */
        opt_in_process?: 'double_opt_in' | 'single_opt_in';
    };
    links: ObjectLinks;
};

export type GetListRetrieveResponseCompoundDocument = {
    data: ListRetrieveResponseObjectResource & {
        relationships?: {
            profiles?: {
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: ListEnum;
        attributes?: {
            profile_count?: number | null;
        };
    };
    included?: Array<FlowResponseObjectResource | TagResponseObjectResource>;
};

export type GetTagResponseCollection = {
    data: Array<TagResponseObjectResource & {
        relationships?: {
            'tag-group'?: {
                links?: RelationshipLinks;
            };
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
            campaigns?: {
                links?: RelationshipLinks;
            };
            flows?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetListTagsRelationshipsResponseCollection = {
    data: Array<{
        type: TagEnum;
        /**
         * The Tag ID
         */
        id: string;
    }>;
};

export type ListMemberResponseObjectResource = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        /**
         * Date and time when the profile was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the profile was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        /**
         * Date and time of the most recent event the triggered an update to the profile, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        last_event_date?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
        /**
         * The datetime when this profile most recently joined the list.
         */
        joined_group_at: string;
    };
    links: ObjectLinks;
};

export type GetListMemberResponseCollection = {
    data: Array<ListMemberResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
            'push-tokens'?: {
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: ProfileEnum;
        attributes?: {
            subscriptions?: Subscriptions;
            predictive_analytics?: PredictiveAnalytics;
        };
    }>;
    links?: CollectionLinks;
};

export type GetListProfilesRelationshipsResponseCollection = {
    data: Array<{
        type: ProfileEnum;
        /**
         * Primary key that uniquely identifies this profile. Generated by Klaviyo.
         */
        id: string;
    }>;
};

export type GetListFlowTriggersRelationshipsResponseCollection = {
    data: Array<{
        type: FlowEnum;
        id: string;
    }>;
};

export type ProfileGroupMembershipEnum = 'profile-group-membership';

export type DateEnum = 'date';

export type StaticDateFilter = {
    type: DateEnum;
    /**
     * Operators for static date filters.
     *
     * E.g. "before 2023-01-01"
     */
    operator: 'after' | 'before';
    date: string;
};

export type StaticDateRangeFilter = {
    type: DateEnum;
    /**
     * Operators for static date range filters.
     *
     * E.g. "between 2023-01-01 and 2023-02-01"
     */
    operator: 'between-static';
    start: string;
    end: string;
};

export type RelativeDateOperatorBaseFilter = {
    type: DateEnum;
    /**
     * Operators for relative date filters.
     *
     * e.g. "in the last 10 days"
     */
    operator: 'at-least' | 'in-the-last' | 'in-the-next';
    /**
     * Units for relative date filters.
     */
    unit: 'day' | 'hour' | 'week';
    quantity: number;
};

export type RelativeDateRangeFilter = {
    type: DateEnum;
    /**
     * Operators for relative date range filters.
     *
     * e.g. "between 10 and 20 days ago"
     */
    operator: 'between';
    start: number;
    end: number;
    /**
     * Units for relative date filters.
     */
    unit: 'day' | 'hour' | 'week';
};

export type ProfileHasGroupMembershipCondition = {
    type: ProfileGroupMembershipEnum;
    is_member: true;
    group_ids: Array<string>;
    timeframe_filter?: StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeDateRangeFilter | null;
};

export type ProfileNoGroupMembershipCondition = {
    type: ProfileGroupMembershipEnum;
    is_member: false;
    group_ids: Array<string>;
};

export type ProfileMetricEnum = 'profile-metric';

export type NumericEnum = 'numeric';

export type NumericOperatorFilter = {
    type: NumericEnum;
    /**
     * Operators for numeric filters.
     */
    operator: 'equals' | 'greater-than' | 'greater-than-or-equal' | 'less-than' | 'less-than-or-equal' | 'not-equals';
    value: number | number;
};

export type RelativeAnniversaryDateFilter = {
    type: DateEnum;
    /**
     * Operators for relative date filters.
     *
     * e.g. "anniversary in the last 10 days"
     */
    operator: 'anniversary-last' | 'anniversary-next';
    /**
     * Units for relative date filters.
     */
    unit: 'day' | 'hour' | 'week';
    quantity: number;
};

export type AlltimeDateFilter = {
    type: DateEnum;
    /**
     * Operators for alltime date filters.
     */
    operator: 'alltime';
};

export type StringEnum = 'string';

export type StringOperatorFilter = {
    type: StringEnum;
    /**
     * Operators for string filters.
     */
    operator: 'contains' | 'ends-with' | 'equals' | 'not-contains' | 'not-ends-with' | 'not-equals' | 'not-starts-with' | 'starts-with';
    value: string | null;
};

export type StringArrayOperatorFilter = {
    type: StringEnum;
    /**
     * Operators for string-in-array filters.
     */
    operator: 'in' | 'not-in';
    value: Array<string>;
};

export type ExistenceEnum = 'existence';

export type ExistenceOperatorFilter = {
    type: ExistenceEnum;
    /**
     * Operators for existence filters.
     */
    operator: 'is-set' | 'not-set';
};

export type ListSetFilter = {
    type: ListEnum;
    /**
     * Operators for list contains set filters.
     */
    operator: 'contains-all' | 'contains-any' | 'not-contains-all' | 'not-contains-any';
    value: Array<string>;
};

export type ListLengthFilter = {
    type: ListEnum;
    /**
     * Operators for list length filters.
     */
    operator: 'length-equals' | 'length-greater-than' | 'length-greater-than-or-equal' | 'length-less-than' | 'length-less-than-or-equal';
    value: number;
};

export type ListSubstringFilter = {
    type: ListEnum;
    /**
     * Operators for list substring filters.
     */
    operator: 'contains-substring' | 'not-contains-substring';
    value: string | null;
};

export type BooleanEnum = 'boolean';

export type BooleanFilter = {
    type: BooleanEnum;
    /**
     * Operators for boolean filters.
     */
    operator: 'equals';
    value: boolean;
};

export type ProfileMetricPropertyFilter = {
    property: string;
    filter?: StringOperatorFilter | StringArrayOperatorFilter | ExistenceOperatorFilter | ListSetFilter | ListLengthFilter | ListSubstringFilter | BooleanFilter | NumericOperatorFilter | null;
};

export type SegmentsProfileMetricCondition = {
    type: ProfileMetricEnum;
    metric_id: string;
    /**
     * Measurements for profile metrics.
     */
    measurement: 'count' | 'sum';
    measurement_filter: NumericOperatorFilter;
    timeframe_filter: StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | AlltimeDateFilter;
    metric_filters?: Array<ProfileMetricPropertyFilter> | null;
};

export type ProfileMarketingConsentEnum = 'profile-marketing-consent';

export type EmailEnum = 'email';

export type AnyEnum = 'any';

export type HasEmailMarketing = {
    subscription: AnyEnum;
    filters?: unknown;
};

export type SubscribedEnum = 'subscribed';

export type IsDoubleOptInEnum = 'is_double_opt_in';

export type DoubleOptinFilter = {
    field: IsDoubleOptInEnum;
    filter: BooleanFilter;
};

export type StatusDateEnum = 'status_date';

export type CalendarDateFilter = {
    type: DateEnum;
    /**
     * Operators for calendar date filters.
     */
    operator: 'calendar-month';
    value: number;
};

export type AnniversaryDateFilter = {
    type: DateEnum;
    /**
     * Operators for anniversary date filters.
     */
    operator: 'anniversary' | 'anniversary-month';
};

export type StatusDateFilter = {
    field: StatusDateEnum;
    filter: StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | CalendarDateFilter | AnniversaryDateFilter;
};

export type CustomSourceEnum = 'custom_source';

export type EqualsEnum = 'equals';

export type EqualsStringFilter = {
    type: StringEnum;
    operator: EqualsEnum;
    value: string | null;
};

export type CustomSourceFilter = {
    field: CustomSourceEnum;
    filter: EqualsStringFilter;
};

export type MethodEnum = 'method';

export type FormEnum = 'form';

export type InEnum = 'in';

export type InStringArrayFilter = {
    type: StringEnum;
    operator: InEnum;
    value: Array<string>;
};

export type FormMethodFilter = {
    field: MethodEnum;
    method: FormEnum;
    filter?: InStringArrayFilter;
};

export type PreferencePageEnum = 'preference_page';

export type PreferencePageFilter = {
    field: MethodEnum;
    method: PreferencePageEnum;
    filter?: EqualsStringFilter;
};

export type ApiEnum = 'api';

export type ApiMethodFilter = {
    field: MethodEnum;
    method: ApiEnum;
    filter?: InStringArrayFilter;
};

export type InboundMessageEnum = 'inbound_message';

export type InboundMessageMethodFilter = {
    field: MethodEnum;
    method: InboundMessageEnum;
};

export type BackInStockEnum = 'back_in_stock';

export type BackInStockMethodFilter = {
    field: MethodEnum;
    method: BackInStockEnum;
};

export type SftpEnum = 'sftp';

export type SftpMethodFilter = {
    field: MethodEnum;
    method: SftpEnum;
};

export type ManualImportEnum = 'manual_import';

export type ManualImportMethodFilter = {
    field: MethodEnum;
    method: ManualImportEnum;
    filter?: InStringArrayFilter;
};

export type ManualAddEnum = 'manual_add';

export type ManualAddMethodFilter = {
    field: MethodEnum;
    method: ManualAddEnum;
    filter?: InStringArrayFilter;
};

export type IntegrationEnum = 'integration';

export type ShopifyEnum = 'shopify';

export type ShopifyIntegrationFilter = {
    type: StringEnum;
    operator: InEnum;
    value: Array<ShopifyEnum>;
};

export type ShopifyIntegrationMethodFilter = {
    field: MethodEnum;
    method: IntegrationEnum;
    filter: ShopifyIntegrationFilter;
};

export type HasEmailMarketingSubscribed = {
    subscription: SubscribedEnum;
    filters?: Array<DoubleOptinFilter | StatusDateFilter | CustomSourceFilter | FormMethodFilter | PreferencePageFilter | ApiMethodFilter | InboundMessageMethodFilter | BackInStockMethodFilter | SftpMethodFilter | ManualImportMethodFilter | ManualAddMethodFilter | ShopifyIntegrationMethodFilter> | null;
};

export type NeverSubscribedEnum = 'never_subscribed';

export type HasEmailMarketingNeverSubscribed = {
    subscription: NeverSubscribedEnum;
    filters?: unknown;
};

export type HasEmailMarketingConsent = {
    channel: EmailEnum;
    can_receive_marketing: true;
    consent_status: HasEmailMarketing | HasEmailMarketingSubscribed | HasEmailMarketingNeverSubscribed;
};

export type BounceDateEnum = 'bounce_date';

export type IsSetEnum = 'is-set';

export type IsSetExistenceFilter = {
    type: ExistenceEnum;
    operator: IsSetEnum;
};

export type BounceDateFilter = {
    field: BounceDateEnum;
    filter: StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | CalendarDateFilter | AnniversaryDateFilter | IsSetExistenceFilter;
};

export type ManualSuppressionDateEnum = 'manual_suppression_date';

export type ManualSuppressionDateFilter = {
    field: ManualSuppressionDateEnum;
    filter: StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | CalendarDateFilter | AnniversaryDateFilter | IsSetExistenceFilter;
};

export type InvalidEmailDateEnum = 'invalid_email_date';

export type InvalidEmailDateFilter = {
    field: InvalidEmailDateEnum;
    filter: StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | CalendarDateFilter | AnniversaryDateFilter | IsSetExistenceFilter;
};

export type NoEmailMarketing = {
    subscription: AnyEnum;
    filters?: Array<BounceDateFilter | ManualSuppressionDateFilter | InvalidEmailDateFilter> | null;
};

export type UnsubscribedEnum = 'unsubscribed';

export type PreferencePageMethodFilter = {
    field: MethodEnum;
    method: PreferencePageEnum;
};

export type ManualRemoveEnum = 'manual_remove';

export type ManualRemoveMethodFilter = {
    field: MethodEnum;
    method: ManualRemoveEnum;
};

export type SpamComplaintEnum = 'spam_complaint';

export type SpamComplaintMethodFilter = {
    field: MethodEnum;
    method: SpamComplaintEnum;
};

export type MailboxProviderEnum = 'mailbox_provider';

export type MailboxProviderMethodFilter = {
    field: MethodEnum;
    method: MailboxProviderEnum;
};

export type ConstantContactEnum = 'constant_contact';

export type ConstantContactIntegrationFilter = {
    type: StringEnum;
    operator: InEnum;
    value: Array<ConstantContactEnum>;
};

export type ConstantContactIntegrationMethodFilter = {
    field: MethodEnum;
    method: IntegrationEnum;
    filter: ConstantContactIntegrationFilter;
};

export type NoEmailMarketingUnsubscribed = {
    subscription: UnsubscribedEnum;
    filters?: StatusDateFilter | ApiMethodFilter | InboundMessageMethodFilter | PreferencePageMethodFilter | ManualRemoveMethodFilter | SpamComplaintMethodFilter | MailboxProviderMethodFilter | ConstantContactIntegrationMethodFilter | BounceDateFilter | ManualSuppressionDateFilter | InvalidEmailDateFilter | null;
};

export type NoEmailMarketingNeverSubscribed = {
    subscription: NeverSubscribedEnum;
    filters: Array<BounceDateFilter | ManualSuppressionDateFilter | InvalidEmailDateFilter>;
};

export type NoEmailMarketingSubscribed = {
    subscription: SubscribedEnum;
    filters: Array<BounceDateFilter | ManualSuppressionDateFilter | InvalidEmailDateFilter>;
};

export type NoEmailMarketingConsent = {
    channel: EmailEnum;
    can_receive_marketing: false;
    consent_status: NoEmailMarketing | NoEmailMarketingUnsubscribed | NoEmailMarketingNeverSubscribed | NoEmailMarketingSubscribed;
};

export type SmsEnum = 'sms';

export type CheckoutEnum = 'checkout';

export type CheckoutMethodFilter = {
    field: MethodEnum;
    method: CheckoutEnum;
};

export type HasSmsMarketingSubscribed = {
    subscription: SubscribedEnum;
    filters?: Array<StatusDateFilter | FormMethodFilter | ManualImportMethodFilter | ManualAddMethodFilter | CheckoutMethodFilter | InboundMessageMethodFilter | PreferencePageMethodFilter | SftpMethodFilter | ShopifyIntegrationMethodFilter> | null;
};

export type HasSmsMarketingConsent = {
    channel: SmsEnum;
    can_receive_marketing: true;
    consent_status: HasSmsMarketingSubscribed;
};

export type NoSmsMarketing = {
    subscription: AnyEnum;
};

export type BulkRemoveEnum = 'bulk_remove';

export type BulkRemoveMethodFilter = {
    field: MethodEnum;
    method: BulkRemoveEnum;
};

export type CarrierDeactivationEnum = 'carrier_deactivation';

export type CarrierDeactivationMethodFilter = {
    field: MethodEnum;
    method: CarrierDeactivationEnum;
};

export type ProvidedLandlineEnum = 'provided_landline';

export type ProvidedLandlineMethodFilter = {
    field: MethodEnum;
    method: ProvidedLandlineEnum;
};

export type MessageBlockedEnum = 'message_blocked';

export type MessageBlockedMethodFilter = {
    field: MethodEnum;
    method: MessageBlockedEnum;
};

export type ProvidedNoAgeEnum = 'provided_no_age';

export type ProvidedNoAgeMethodFilter = {
    field: MethodEnum;
    method: ProvidedNoAgeEnum;
};

export type FailedAgeGateEnum = 'failed_age_gate';

export type FailedAgeGateMethodFilter = {
    field: MethodEnum;
    method: FailedAgeGateEnum;
};

export type NoSmsMarketingUnsubscribed = {
    subscription: UnsubscribedEnum;
    filters?: Array<StatusDateFilter | FormMethodFilter | ManualImportMethodFilter | ManualAddMethodFilter | ManualRemoveMethodFilter | BulkRemoveMethodFilter | CheckoutMethodFilter | InboundMessageMethodFilter | PreferencePageMethodFilter | SftpMethodFilter | CarrierDeactivationMethodFilter | ProvidedLandlineMethodFilter | MessageBlockedMethodFilter | ProvidedNoAgeMethodFilter | FailedAgeGateMethodFilter | ShopifyIntegrationMethodFilter> | null;
};

export type NoSmsMarketingNeverSubscribed = {
    subscription: NeverSubscribedEnum;
};

export type NoSmsMarketingConsent = {
    channel: SmsEnum;
    can_receive_marketing: false;
    consent_status: NoSmsMarketing | NoSmsMarketingUnsubscribed | NoSmsMarketingNeverSubscribed;
};

export type PushEnum = 'push';

export type HasPushMarketing = {
    subscription: AnyEnum;
    filters?: Array<StatusDateFilter> | null;
};

export type HasPushMarketingConsent = {
    channel: PushEnum;
    can_receive_marketing: true;
    consent_status: HasPushMarketing;
};

export type NoPushMarketing = {
    subscription: AnyEnum;
};

export type NoPushMarketingConsent = {
    channel: PushEnum;
    can_receive_marketing: false;
    consent_status: NoPushMarketing;
};

export type ProfileMarketingConsentCondition = {
    type: ProfileMarketingConsentEnum;
    consent: HasEmailMarketingConsent | NoEmailMarketingConsent | HasSmsMarketingConsent | NoSmsMarketingConsent | HasPushMarketingConsent | NoPushMarketingConsent;
};

export type ProfilePostalCodeDistanceEnum = 'profile-postal-code-distance';

export type GreaterThanEnum = 'greater-than';

export type GreaterThanPositiveNumericFilter = {
    type: NumericEnum;
    operator: GreaterThanEnum;
    value: number | number;
};

export type LessThanEnum = 'less-than';

export type LessThanPositiveNumericFilter = {
    type: NumericEnum;
    operator: LessThanEnum;
    value: number | number;
};

export type ProfilePostalCodeDistanceCondition = {
    type: ProfilePostalCodeDistanceEnum;
    country_code: string;
    postal_code: string;
    /**
     * Units for profile postal code distance conditions.
     */
    unit: 'kilometers' | 'miles';
    filter: GreaterThanPositiveNumericFilter | LessThanPositiveNumericFilter;
};

export type ProfilePropertyEnum = 'profile-property';

export type StringPhoneOperatorArrayFilter = {
    type: StringEnum;
    /**
     * Operators for phone string array filters.
     *
     * Example condition using this filter:
     * {
     */
    operator: 'phone-country-code-in' | 'phone-country-code-not-in';
    value: Array<string>;
};

export type ListContainsOperatorFilter = {
    type: ListEnum;
    /**
     * Operators for list contains filters.
     */
    operator: 'contains' | 'not-contains';
    value: number | string | null;
};

export type ProfilePropertyCondition = {
    type: ProfilePropertyEnum;
    property: string;
    filter: StringOperatorFilter | StringArrayOperatorFilter | StringPhoneOperatorArrayFilter | NumericOperatorFilter | BooleanFilter | StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | CalendarDateFilter | AnniversaryDateFilter | ListContainsOperatorFilter | ListLengthFilter | ExistenceOperatorFilter;
};

export type ProfileRegionEnum = 'profile-region';

export type ProfileRegionCondition = {
    type: ProfileRegionEnum;
    in_region: boolean;
    /**
     * Regions for profile region conditions.
     */
    region: 'european_union' | 'united_states';
};

export type ProfilePredictiveAnalyticsEnum = 'profile-predictive-analytics';

export type ProfilePredictiveAnalyticsNumericCondition = {
    type: ProfilePredictiveAnalyticsEnum;
    /**
     * Dimensions for numeric profile predictive analytics conditions.
     */
    dimension: 'average_days_between_orders' | 'average_order_value' | 'churn_probability' | 'historic_clv' | 'historic_number_of_orders' | 'predicted_clv' | 'predicted_number_of_orders' | 'total_clv';
    filter: NumericOperatorFilter;
};

export type NotEqualsEnum = 'not-equals';

export type ProfilePredictiveAnalyticsStringFilter = {
    type: StringEnum;
    operator: EqualsEnum | NotEqualsEnum;
    /**
     * Values for profile predictive analytics gender conditions.
     */
    value: 'likely_female' | 'likely_male' | 'uncertain';
};

export type ProfilePredictiveAnalyticsStringCondition = {
    type: ProfilePredictiveAnalyticsEnum;
    /**
     * Dimension for string profile predictive analytics conditions.
     */
    dimension: 'predicted_gender';
    filter: ProfilePredictiveAnalyticsStringFilter;
};

export type ConditionGroup = {
    conditions: Array<ProfileHasGroupMembershipCondition | ProfileNoGroupMembershipCondition | SegmentsProfileMetricCondition | ProfileMarketingConsentCondition | ProfilePostalCodeDistanceCondition | ProfilePropertyCondition | ProfileRegionCondition | ProfilePredictiveAnalyticsNumericCondition | ProfilePredictiveAnalyticsStringCondition>;
};

export type SegmentDefinition = {
    condition_groups: Array<ConditionGroup>;
};

export type SegmentListResponseObjectResource = {
    type: SegmentEnum;
    id: string;
    attributes: {
        /**
         * A helpful name to label the segment
         */
        name?: string | null;
        definition?: SegmentDefinition;
        /**
         * Date and time when the segment was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the segment was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        is_active: boolean;
        is_processing: boolean;
        is_starred: boolean;
    };
    links: ObjectLinks;
};

export type GetSegmentListResponseCollectionCompoundDocument = {
    data: Array<SegmentListResponseObjectResource & {
        relationships?: {
            profiles?: {
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<FlowResponseObjectResource | TagResponseObjectResource>;
};

export type SegmentRetrieveResponseObjectResource = {
    type: SegmentEnum;
    id: string;
    attributes: {
        /**
         * A helpful name to label the segment
         */
        name?: string | null;
        definition?: SegmentDefinition;
        /**
         * Date and time when the segment was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the segment was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        is_active: boolean;
        is_processing: boolean;
        is_starred: boolean;
    };
    links: ObjectLinks;
};

export type GetSegmentRetrieveResponseCompoundDocument = {
    data: SegmentRetrieveResponseObjectResource & {
        relationships?: {
            profiles?: {
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: SegmentEnum;
        attributes?: {
            profile_count?: number | null;
        };
    };
    included?: Array<FlowResponseObjectResource | TagResponseObjectResource>;
};

export type GetSegmentTagsRelationshipsResponseCollection = {
    data: Array<{
        type: TagEnum;
        /**
         * The Tag ID
         */
        id: string;
    }>;
};

export type SegmentMemberResponseObjectResource = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        /**
         * Date and time when the profile was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the profile was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        /**
         * Date and time of the most recent event the triggered an update to the profile, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        last_event_date?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
        /**
         * The datetime when this profile most recently joined the segment.
         */
        joined_group_at: string;
    };
    links: ObjectLinks;
};

export type GetSegmentMemberResponseCollection = {
    data: Array<SegmentMemberResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
            'push-tokens'?: {
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: ProfileEnum;
        attributes?: {
            subscriptions?: Subscriptions;
            predictive_analytics?: PredictiveAnalytics;
        };
    }>;
    links?: CollectionLinks;
};

export type GetSegmentProfilesRelationshipsResponseCollection = {
    data: Array<{
        type: ProfileEnum;
        /**
         * Primary key that uniquely identifies this profile. Generated by Klaviyo.
         */
        id: string;
    }>;
};

export type GetSegmentFlowTriggersRelationshipsResponseCollection = {
    data: Array<{
        type: FlowEnum;
        id: string;
    }>;
};

export type ListResponseObjectResource = {
    type: ListEnum;
    /**
     * Primary key that uniquely identifies this list. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * A helpful name to label the list
         */
        name?: string | null;
        /**
         * Date and time when the list was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the list was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        /**
         * The opt-in process for this list.  Could be either 'single_opt_in' or 'double_opt_in'.
         */
        opt_in_process?: 'double_opt_in' | 'single_opt_in';
    };
    links: ObjectLinks;
};

export type SegmentResponseObjectResource = {
    type: SegmentEnum;
    id: string;
    attributes: {
        /**
         * A helpful name to label the segment
         */
        name?: string | null;
        definition?: SegmentDefinition;
        /**
         * Date and time when the segment was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * Date and time when the segment was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
        is_active: boolean;
        is_processing: boolean;
        is_starred: boolean;
    };
    links: ObjectLinks;
};

export type DeviceMetadata = {
    /**
     * Relatively stable ID for the device. Will update on app uninstall and reinstall
     */
    device_id?: string | null;
    /**
     * The name of the SDK used to create the push token.
     */
    klaviyo_sdk?: 'android' | 'flutter_community' | 'react_native' | 'swift';
    /**
     * The version of the SDK used to create the push token
     */
    sdk_version?: string | null;
    /**
     * The model of the device
     */
    device_model?: string | null;
    /**
     * The name of the operating system on the device.
     */
    os_name?: 'android' | 'ios' | 'ipados' | 'macos' | 'tvos';
    /**
     * The version of the operating system on the device
     */
    os_version?: string | null;
    /**
     * The manufacturer of the device
     */
    manufacturer?: string | null;
    /**
     * The name of the app that created the push token
     */
    app_name?: string | null;
    /**
     * The version of the app that created the push token
     */
    app_version?: string | null;
    /**
     * The build of the app that created the push token
     */
    app_build?: string | null;
    /**
     * The ID of the app that created the push token
     */
    app_id?: string | null;
    /**
     * The environment in which the push token was created
     */
    environment?: 'debug' | 'release';
};

export type PushTokenResponseObjectResource = {
    type: PushTokenEnum;
    /**
     * ID of push token
     */
    id: string;
    attributes: {
        /**
         * The time at which the token was created
         */
        created: string;
        /**
         * The push token
         */
        token: string;
        /**
         * The enablement status of the push token
         */
        enablement_status: 'AUTHORIZED' | 'DENIED' | 'NOT_DETERMINED' | 'PROVISIONAL' | 'UNAUTHORIZED';
        /**
         * The platform of the push token('ios', 'android')
         */
        platform: 'android' | 'ios';
        /**
         * The vendor of the push token('APNs', 'FCM')
         */
        vendor: string;
        /**
         * The background state of the push token
         */
        background: string;
        /**
         * The date the push token was recorded
         */
        recorded_date: string;
        metadata?: DeviceMetadata;
    };
    links: ObjectLinks;
};

export type GetProfileResponseCollectionCompoundDocument = {
    data: Array<ProfileResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
            'push-tokens'?: {
                data?: Array<{
                    type: PushTokenEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: ProfileEnum;
        attributes?: {
            subscriptions?: Subscriptions;
            predictive_analytics?: PredictiveAnalytics;
        };
    }>;
    links?: CollectionLinks;
};

export type GetProfileResponseCompoundDocument = {
    data: ProfileResponseObjectResource & {
        relationships?: {
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            segments?: {
                data?: Array<{
                    type: SegmentEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'push-tokens'?: {
                data?: Array<{
                    type: PushTokenEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: ProfileEnum;
        attributes?: {
            subscriptions?: Subscriptions;
            predictive_analytics?: PredictiveAnalytics;
        };
    };
    included?: Array<ListResponseObjectResource | PushTokenResponseObjectResource | SegmentResponseObjectResource>;
};

export type GetPushTokenResponseCollection = {
    data: Array<PushTokenResponseObjectResource & {
        relationships?: {
            profile?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetProfilePushTokensRelationshipsResponseCollection = {
    data: Array<{
        type: PushTokenEnum;
        /**
         * ID of push token
         */
        id: string;
    }>;
};

export type GetListResponseCollection = {
    data: Array<ListResponseObjectResource & {
        relationships?: {
            profiles?: {
                links?: RelationshipLinks;
            };
            tags?: {
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetProfileListsRelationshipsResponseCollection = {
    data: Array<{
        type: ListEnum;
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    }>;
};

export type GetSegmentResponseCollection = {
    data: Array<SegmentResponseObjectResource & {
        relationships?: {
            profiles?: {
                links?: RelationshipLinks;
            };
            tags?: {
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetProfileSegmentsRelationshipsResponseCollection = {
    data: Array<{
        type: SegmentEnum;
        id: string;
    }>;
};

export type ProfileBulkImportJobEnum = 'profile-bulk-import-job';

export type ProfileImportJobResponseObjectResource = {
    type: ProfileBulkImportJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
        /**
         * Date and time the job started processing in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        started_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetProfileImportJobResponseCollectionCompoundDocument = {
    data: Array<ProfileImportJobResponseObjectResource & {
        relationships?: {
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    /**
                     * List to add the profiles to
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            profiles?: {
                links?: RelationshipLinks;
            };
            'import-errors'?: {
                links?: OnlyRelatedLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetProfileImportJobResponseCompoundDocument = {
    data: ProfileImportJobResponseObjectResource & {
        relationships?: {
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    /**
                     * List to add the profiles to
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            profiles?: {
                links?: RelationshipLinks;
            };
            'import-errors'?: {
                links?: OnlyRelatedLinks;
            };
        };
    };
    included?: Array<ListResponseObjectResource>;
};

export type GetProfileBulkImportJobListsRelationshipsResponseCollection = {
    data: Array<{
        type: ListEnum;
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    }>;
};

export type GetProfileResponseCollection = {
    data: Array<ProfileResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
            'push-tokens'?: {
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: ProfileEnum;
        attributes?: {
            subscriptions?: Subscriptions;
            predictive_analytics?: PredictiveAnalytics;
        };
    }>;
    links?: CollectionLinks;
};

export type GetProfileBulkImportJobProfilesRelationshipsResponseCollection = {
    data: Array<{
        type: ProfileEnum;
        /**
         * Primary key that uniquely identifies this profile. Generated by Klaviyo.
         */
        id: string;
    }>;
};

export type ImportErrorEnum = 'import-error';

export type ImportErrorResponseObjectResource = {
    type: ImportErrorEnum;
    /**
     * Unique identifier for the error.
     */
    id: string;
    attributes: {
        /**
         * A code for classifying the error type.
         */
        code: string;
        /**
         * A high-level message about the error.
         */
        title: string;
        /**
         * Specific details about the error.
         */
        detail: string;
        source: ErrorSource;
        original_payload?: {
            [key: string]: unknown;
        } | null;
    };
};

export type GetImportErrorResponseCollection = {
    data: Array<ImportErrorResponseObjectResource>;
    links?: CollectionLinks;
};

export type UtmParamInfo = {
    name: string;
    value: string;
};

export type FlowEmailTrackingOptions = {
    add_utm: boolean;
    utm_params: Array<UtmParamInfo>;
    is_tracking_opens: boolean;
    is_tracking_clicks: boolean;
};

export type FlowsSmsTrackingOptions = {
    add_utm: boolean;
    utm_params: Array<UtmParamInfo>;
};

export type SendOptions = {
    use_smart_sending: boolean;
    is_transactional: boolean;
};

export type CampaignMessageIncrement = {
    badge_config: 'increment_one';
};

export type CampaignMessageStaticCount = {
    badge_config: 'set_count';
    value: string;
};

export type CampaignMessageProperty = {
    badge_config: 'set_property';
    set_from_property: string;
};

export type SmsRenderOptions = {
    shorten_links: boolean;
    add_org_prefix: boolean;
    add_info_link: boolean;
    add_opt_out_language: boolean;
};

export type FlowActionResponseObjectResource = {
    type: FlowActionEnum;
    id: string;
    attributes: {
        action_type?: string | null;
        status?: string | null;
        created?: string | null;
        updated?: string | null;
        settings?: {
            [key: string]: unknown;
        } | null;
        tracking_options?: FlowEmailTrackingOptions | FlowsSmsTrackingOptions | null;
        send_options?: SendOptions;
        badge_options?: CampaignMessageIncrement | CampaignMessageStaticCount | CampaignMessageProperty | null;
        render_options?: SmsRenderOptions;
    };
    links: ObjectLinks;
};

export type GetFlowResponseCollectionCompoundDocument = {
    data: Array<FlowResponseObjectResource & {
        relationships?: {
            'flow-actions'?: {
                data?: Array<{
                    type: FlowActionEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<FlowActionResponseObjectResource | TagResponseObjectResource>;
};

export type ListTrigger = {
    type: ListEnum;
    id?: string | null;
};

export type SegmentTrigger = {
    type: SegmentEnum;
    id?: string | null;
};

export type MetricPropertyEnum = 'metric-property';

export type NumericRangeFilter = {
    type: NumericEnum;
    /**
     * Operators for numeric range filters.
     */
    operator: 'between';
    start: number | number;
    end: number | number;
};

export type MetricPropertyCondition = {
    type: MetricPropertyEnum;
    metric_id: string;
    field: string;
    filter: StringOperatorFilter | StringArrayOperatorFilter | NumericOperatorFilter | NumericRangeFilter | BooleanFilter | StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | CalendarDateFilter | AnniversaryDateFilter | ListContainsOperatorFilter | ListLengthFilter | ExistenceOperatorFilter;
};

export type MetricPropertyConditionGroup = {
    conditions: Array<MetricPropertyCondition>;
};

export type MetricPropertyConditionFilter = {
    condition_groups: Array<MetricPropertyConditionGroup>;
};

export type MetricTrigger = {
    type: MetricEnum;
    id?: string | null;
    trigger_filter?: MetricPropertyConditionFilter;
};

export type ProfilePropertyDateTrigger = {
    type: DateEnum;
    date_field_type: ProfilePropertyEnum;
    date_profile_property: string;
    /**
     * See FlowDateTrigger.UNIT_CHOICES in app and CountdownUnit in fender.
     */
    timedelta_unit_before_date?: 'days' | 'months' | 'weeks';
    timedelta_value_before_date: number;
    /**
     * aka RepeatTypes in app and RepeatType in fender.
     */
    recurrence_frequency?: 'annually' | 'monthly' | 'never' | 'weekly';
    timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Costa_Rica' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Fort_Nelson' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Colombo' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kathmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Riyadh' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ulaanbaatar' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faroe' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/Perth' | 'Australia/Sydney' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Ulyanovsk' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zurich' | 'GMT' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Wake' | 'Pacific/Wallis' | 'US/Alaska' | 'US/Arizona' | 'US/Central' | 'US/Eastern' | 'US/Hawaii' | 'US/Mountain' | 'US/Pacific' | 'UTC' | 'profile';
    trigger_time: string;
    trigger_days?: Array<'friday' | 'monday' | 'saturday' | 'sunday' | 'thursday' | 'tuesday' | 'wednesday'> | null;
};

export type PriceDropEnum = 'price-drop';

export type PriceDropPropertyEnum = 'price-drop-property';

export type PriceDropCondition = {
    type: PriceDropPropertyEnum;
    metric_id: string | null;
    field: string;
    filter: StringOperatorFilter | StringArrayOperatorFilter | NumericOperatorFilter | NumericRangeFilter | BooleanFilter | StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | CalendarDateFilter | AnniversaryDateFilter | ListContainsOperatorFilter | ListLengthFilter | ExistenceOperatorFilter;
};

export type PriceDropConditionGroup = {
    conditions: Array<PriceDropCondition>;
};

export type PriceDropConditionFilter = {
    condition_groups: Array<PriceDropConditionGroup>;
};

export type PriceDropTrigger = {
    type: PriceDropEnum;
    trigger_filter: PriceDropConditionFilter;
    price_drop_amount_value: number | number;
    /**
     * Price Drop amount type.
     */
    price_drop_amount_unit?: 'currency' | 'percent';
    audience: Array<'checkout-started' | 'viewed'>;
    timeframe_days?: number;
    /**
     * Currency type.
     */
    currency_type?: 'usd';
};

export type LowInventoryEnum = 'low-inventory';

export type LowInventoryPropertyEnum = 'low-inventory-property';

export type LowInventoryCondition = {
    type: LowInventoryPropertyEnum;
    metric_id: string | null;
    field: string;
    filter: StringOperatorFilter | StringArrayOperatorFilter | NumericOperatorFilter | NumericRangeFilter | BooleanFilter | StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | CalendarDateFilter | AnniversaryDateFilter | ListContainsOperatorFilter | ListLengthFilter | ExistenceOperatorFilter;
};

export type LowInventoryConditionGroup = {
    conditions: Array<LowInventoryCondition>;
};

export type LowInventoryConditionFilter = {
    condition_groups: Array<LowInventoryConditionGroup>;
};

export type LowInventoryTrigger = {
    type: LowInventoryEnum;
    /**
     * Low inventory product level.
     */
    product_level: 'product' | 'variant';
    trigger_filter: LowInventoryConditionFilter;
    inventory_count: number;
    audience: Array<'added-to-cart' | 'checkout-started' | 'viewed'>;
    timeframe_days?: number;
};

export type SinceFlowStartDateFilter = {
    type: DateEnum;
    /**
     * Possible operators for since flow start date.
     */
    operator: 'flow-start';
};

export type FlowsProfileMetricCondition = {
    type: ProfileMetricEnum;
    metric_id: string;
    /**
     * Measurements for profile metrics.
     */
    measurement: 'count' | 'sum';
    measurement_filter: NumericOperatorFilter;
    timeframe_filter: StaticDateFilter | StaticDateRangeFilter | RelativeDateOperatorBaseFilter | RelativeAnniversaryDateFilter | RelativeDateRangeFilter | AlltimeDateFilter | SinceFlowStartDateFilter;
    metric_filters?: Array<ProfileMetricPropertyFilter> | null;
};

export type ProfileSampleEnum = 'profile-sample';

export type ProfileRandomSampleCondition = {
    type: ProfileSampleEnum;
    percentage: number;
};

export type ProfileNotInFlowEnum = 'profile-not-in-flow';

export type InTheLastEnum = 'in-the-last';

export type InTheLastBaseRelativeDateFilter = {
    type: DateEnum;
    operator: InTheLastEnum;
    /**
     * Units for relative date filters.
     */
    unit: 'day' | 'hour' | 'week';
    quantity: number;
};

export type ProfileNotInFlowCondition = {
    type: ProfileNotInFlowEnum;
    timeframe_filter: AlltimeDateFilter | InTheLastBaseRelativeDateFilter;
};

export type BackInStockDelayEnum = 'back-in-stock-delay';

export type Link = {
    next: string | null;
};

export type BackInStockDelayAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: BackInStockDelayEnum;
    links?: Link;
};

export type ConditionalSplitEnum = 'conditional-split';

export type BooleanBranchLinks = {
    next_if_true: string | null;
    next_if_false: string | null;
};

export type ConditionalBranchActionData = {
    profile_filter: {
        condition_groups: Array<{
            conditions: Array<ProfilePropertyCondition | ProfileHasGroupMembershipCondition | ProfileNoGroupMembershipCondition | ProfileRegionCondition | ProfilePostalCodeDistanceCondition | ProfilePredictiveAnalyticsStringCondition | ProfilePredictiveAnalyticsNumericCondition | ProfileMarketingConsentCondition | FlowsProfileMetricCondition | ProfileRandomSampleCondition>;
        }>;
    } | null;
};

export type ConditionalBranchAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: ConditionalSplitEnum;
    links?: BooleanBranchLinks;
    data?: ConditionalBranchActionData;
};

export type SendEmailEnum = 'send-email';

export type UtmParam = {
    param: string;
    value: string;
};

export type ProfileNotSentEmailEnum = 'profile-not-sent-email';

export type ProfileHasNotReceivedEmailMessageCondition = {
    type: ProfileNotSentEmailEnum;
    timeframe_filter: AlltimeDateFilter | InTheLastBaseRelativeDateFilter;
};

export type FlowEmail = {
    from_email: string | null;
    from_label: string | null;
    reply_to_email: string | null;
    cc_email: string | null;
    bcc_email: string | null;
    subject_line: string | null;
    preview_text: string | null;
    template_id?: string | null;
    smart_sending_enabled?: boolean;
    transactional?: boolean;
    add_tracking_params?: boolean;
    custom_tracking_params?: Array<UtmParam> | null;
    additional_filters?: {
        condition_groups: Array<{
            conditions: Array<ProfilePropertyCondition | ProfileHasGroupMembershipCondition | ProfileNoGroupMembershipCondition | ProfileRegionCondition | ProfilePostalCodeDistanceCondition | ProfilePredictiveAnalyticsStringCondition | ProfilePredictiveAnalyticsNumericCondition | ProfileMarketingConsentCondition | FlowsProfileMetricCondition | ProfileRandomSampleCondition | ProfileHasNotReceivedEmailMessageCondition>;
        }>;
    } | null;
    name?: string | null;
    id?: string | null;
};

export type SendEmailActionData = {
    message: FlowEmail;
    /**
     * Flow action status.
     */
    status?: 'disabled' | 'draft' | 'live' | 'manual';
};

export type SendEmailAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: SendEmailEnum;
    links?: Link;
    data?: SendEmailActionData;
};

export type SendMobilePushEnum = 'send-mobile-push';

export type IncrementOneEnum = 'increment_one';

export type Increment = {
    badge_config: IncrementOneEnum;
};

export type SetCountEnum = 'set_count';

export type StaticCount = {
    badge_config: SetCountEnum;
    value: string;
};

export type SetPropertyEnum = 'set_property';

export type Property = {
    badge_config: SetPropertyEnum;
    set_from_property: string;
};

export type ProfileNotSentPushEnum = 'profile-not-sent-push';

export type ProfileHasNotReceivedPushMessageCondition = {
    type: ProfileNotSentPushEnum;
    timeframe_filter: AlltimeDateFilter | InTheLastBaseRelativeDateFilter;
};

export type FlowPushNotification = {
    title?: string | null;
    body: string;
    sound?: boolean;
    badge?: boolean;
    badge_options?: Increment | StaticCount | Property;
    /**
     * The id of an ImageAsset. If provided, this will take precedence over a dynamic_image.
     */
    image_id?: string | null;
    /**
     * A dynamic image asset to include in the push notification.
     */
    dynamic_image?: string | null;
    /**
     * See PushLinkAction in app.
     *
     * This is not a flow action, but the literal action that should be
     * taken when the push notification is tapped.
     */
    on_open?: 'home' | 'link';
    ios_link?: string | null;
    android_link?: string | null;
    conversion_metric_id?: string | null;
    smart_sending_enabled?: boolean;
    additional_filters?: {
        condition_groups: Array<{
            conditions: Array<ProfilePropertyCondition | ProfileHasGroupMembershipCondition | ProfileNoGroupMembershipCondition | ProfileRegionCondition | ProfilePostalCodeDistanceCondition | ProfilePredictiveAnalyticsStringCondition | ProfilePredictiveAnalyticsNumericCondition | ProfileMarketingConsentCondition | FlowsProfileMetricCondition | ProfileRandomSampleCondition | ProfileHasNotReceivedPushMessageCondition>;
        }>;
    } | null;
    name?: string | null;
    id?: string | null;
};

export type SendPushNotificationActionData = {
    message: FlowPushNotification;
    /**
     * Flow action status.
     */
    status?: 'disabled' | 'draft' | 'live' | 'manual';
};

export type SendPushNotificationAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: SendMobilePushEnum;
    links?: Link;
    data?: SendPushNotificationActionData;
};

export type SendSmsEnum = 'send-sms';

export type ProfileNotSentSmsEnum = 'profile-not-sent-sms';

export type ProfileHasNotReceivedSmsMessageCondition = {
    type: ProfileNotSentSmsEnum;
    timeframe_filter: AlltimeDateFilter | InTheLastBaseRelativeDateFilter;
};

export type FlowSms = {
    body: string;
    /**
     * The id of an ImageAsset. If provided, this will take precedence over a dynamic_image.
     */
    image_id?: string | null;
    /**
     * A dynamic image asset to include in the SMS message.
     */
    dynamic_image?: string | null;
    shorten_links?: boolean;
    include_contact_card?: boolean;
    add_org_prefix?: boolean;
    add_info_link?: boolean;
    add_opt_out_language?: boolean;
    smart_sending_enabled?: boolean;
    sms_quiet_hours_enabled?: boolean;
    transactional?: boolean;
    add_tracking_params?: boolean;
    custom_tracking_params?: Array<UtmParam> | null;
    additional_filters?: {
        condition_groups: Array<{
            conditions: Array<ProfilePropertyCondition | ProfileHasGroupMembershipCondition | ProfileNoGroupMembershipCondition | ProfileRegionCondition | ProfilePostalCodeDistanceCondition | ProfilePredictiveAnalyticsStringCondition | ProfilePredictiveAnalyticsNumericCondition | ProfileMarketingConsentCondition | FlowsProfileMetricCondition | ProfileRandomSampleCondition | ProfileHasNotReceivedSmsMessageCondition>;
        }>;
    } | null;
    name?: string | null;
    id?: string | null;
};

export type SendSmsActionData = {
    message: FlowSms;
    /**
     * Flow action status.
     */
    status?: 'disabled' | 'draft' | 'live' | 'manual';
};

export type SendSmsAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: SendSmsEnum;
    links?: Link;
    data?: SendSmsActionData;
};

export type SendWebhookEnum = 'send-webhook';

export type FlowWebhook = {
    url: string | null;
    headers?: {
        [key: string]: unknown;
    };
    body?: string | null;
    name?: string | null;
    id?: string | null;
};

export type SendWebhookActionData = {
    message: FlowWebhook;
    /**
     * Flow action status.
     */
    status?: 'disabled' | 'draft' | 'live' | 'manual';
};

export type SendWebhookAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: SendWebhookEnum;
    links?: Link;
    data?: SendWebhookActionData;
};

export type SendInternalAlertEnum = 'send-internal-alert';

export type FlowInternalAlert = {
    from_email: string | null;
    from_label: string | null;
    to_emails: Array<string>;
    subject_line: string | null;
    template_id?: string | null;
    name?: string | null;
    id?: string | null;
};

export type SendInternalAlertActionData = {
    message: FlowInternalAlert;
    /**
     * Flow action status.
     */
    status?: 'disabled' | 'draft' | 'live' | 'manual';
};

export type SendInternalAlertAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: SendInternalAlertEnum;
    links?: Link;
    data?: SendInternalAlertActionData;
};

export type TimeDelayEnum = 'time-delay';

export type TimeDelayActionData = {
    /**
     * aka delay_units in app.
     */
    unit?: 'days' | 'hours' | 'minutes';
    value: number;
    secondary_value?: number | null;
    timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Costa_Rica' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Fort_Nelson' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Colombo' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kathmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Riyadh' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ulaanbaatar' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faroe' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/Perth' | 'Australia/Sydney' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Ulyanovsk' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zurich' | 'GMT' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Wake' | 'Pacific/Wallis' | 'US/Alaska' | 'US/Arizona' | 'US/Central' | 'US/Eastern' | 'US/Hawaii' | 'US/Mountain' | 'US/Pacific' | 'UTC' | 'profile';
    delay_until_time?: string | null;
    delay_until_weekdays?: Array<'friday' | 'monday' | 'saturday' | 'sunday' | 'thursday' | 'tuesday' | 'wednesday'> | null;
};

export type TimeDelayAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: TimeDelayEnum;
    links?: Link;
    data: TimeDelayActionData;
};

export type TriggerSplitEnum = 'trigger-split';

export type TriggerBranchActionData = {
    trigger_filter: MetricPropertyConditionFilter;
    trigger_id: string;
    /**
     * Trigger type.
     */
    trigger_type: 'date' | 'list' | 'low-inventory' | 'metric' | 'price-drop' | 'scheduled' | 'segment';
    /**
     * Date trigger type.
     */
    trigger_subtype?: 'custom-object' | 'legacy-custom-object' | 'profile-property' | 'profile-trait';
};

export type TriggerBranchAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: TriggerSplitEnum;
    links?: BooleanBranchLinks;
    data?: TriggerBranchActionData;
};

export type UpdateProfileEnum = 'update-profile';

export type ProfileOperationUpdateOrCreateString = {
    /**
     * The type of operation to perform on a profile property.
     */
    operator: 'create' | 'update';
    property_type: StringEnum;
    property_key: string;
    property_value: string;
};

export type ProfileOperationUpdateOrCreateBoolean = {
    /**
     * The type of operation to perform on a profile property.
     */
    operator: 'create' | 'update';
    property_type: BooleanEnum;
    property_key: string;
    property_value: boolean;
};

export type ProfileOperationUpdateOrCreateNumeric = {
    /**
     * The type of operation to perform on a profile property.
     */
    operator: 'create' | 'update';
    property_type: NumericEnum;
    property_key: string;
    property_value: number | number;
};

export type ProfileOperationUpdateOrCreateDate = {
    /**
     * The type of operation to perform on a profile property.
     */
    operator: 'create' | 'update';
    property_type: DateEnum;
    property_key: string;
    property_value: string | 'today';
};

export type ProfileOperationUpdateOrCreateList = {
    /**
     * The type of operation to perform on a profile property.
     */
    operator: 'create' | 'update';
    property_type: ListEnum;
    /**
     * The type of operation to perform on a list property.
     */
    property_operation?: 'add' | 'remove';
    property_key: string;
    property_value: string;
};

export type ProfileOperationDelete = {
    /**
     * The type of operation to perform on a profile property.
     */
    operator: 'delete';
    property_key: string;
};

export type UpdateProfileActionData = {
    profile_operations: Array<ProfileOperationUpdateOrCreateString | ProfileOperationUpdateOrCreateBoolean | ProfileOperationUpdateOrCreateNumeric | ProfileOperationUpdateOrCreateDate | ProfileOperationUpdateOrCreateList | ProfileOperationDelete>;
    /**
     * Flow action status.
     */
    status?: 'disabled' | 'draft' | 'live' | 'manual';
};

export type UpdateProfileAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: UpdateProfileEnum;
    links?: Link;
    data?: UpdateProfileActionData;
};

export type TargetDateEnum = 'target-date';

export type TargetDateActionData = {
    timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Costa_Rica' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Fort_Nelson' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Colombo' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kathmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Riyadh' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ulaanbaatar' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faroe' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/Perth' | 'Australia/Sydney' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Ulyanovsk' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zurich' | 'GMT' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Wake' | 'Pacific/Wallis' | 'US/Alaska' | 'US/Arizona' | 'US/Central' | 'US/Eastern' | 'US/Hawaii' | 'US/Mountain' | 'US/Pacific' | 'UTC' | 'profile';
    target_time?: string;
    target_days?: Array<'friday' | 'monday' | 'saturday' | 'sunday' | 'thursday' | 'tuesday' | 'wednesday'> | null;
};

export type TargetDateAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: TargetDateEnum;
    links?: Link;
    data: TargetDateActionData;
};

export type CountdownDelayEnum = 'countdown-delay';

export type CountdownDelayActionData = {
    /**
     * Defined as FlowDateTrigger attributes in app.
     */
    unit?: 'days' | 'months' | 'weeks';
    value?: number;
    timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Costa_Rica' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Fort_Nelson' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Colombo' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kathmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Riyadh' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ulaanbaatar' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faroe' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/Perth' | 'Australia/Sydney' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Ulyanovsk' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zurich' | 'GMT' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Wake' | 'Pacific/Wallis' | 'US/Alaska' | 'US/Arizona' | 'US/Central' | 'US/Eastern' | 'US/Hawaii' | 'US/Mountain' | 'US/Pacific' | 'UTC' | 'profile';
    delay_until_time?: string | null;
    delay_until_weekdays?: Array<'friday' | 'monday' | 'saturday' | 'sunday' | 'thursday' | 'tuesday' | 'wednesday'> | null;
};

export type CountdownDelayAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: CountdownDelayEnum;
    links?: Link;
    data: CountdownDelayActionData;
};

export type AbTestEnum = 'ab-test';

export type AutomaticWinnerSelectionSettings = {
    enabled: boolean;
    automatic_end_date?: string | null;
    automatic_end_statistical_certainty: boolean;
};

export type AbTestAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: AbTestEnum;
    links?: Link;
    data: {
        /**
         * Flow action status.
         */
        status?: 'disabled' | 'draft' | 'live' | 'manual';
        /**
         * The status of the A/B test action experiment.
         */
        experiment_status?: 'completed' | 'draft' | 'live';
        main_action: SendEmailAction | SendSmsAction;
        current_experiment?: {
            id?: string | null;
            name?: string | null;
            variations: Array<SendEmailAction | SendSmsAction>;
            allocations: {
                [key: string]: unknown;
            };
            started?: string | null;
            /**
             * The metric to use to determine the winner of the A/B test action.
             *
             * Note that this is different from the metrics used as a flow trigger.
             */
            winner_metric: 'submission' | 'unique-clicks' | 'unique-opens' | 'unique-placed-orders';
            automatic_winner_selection_settings: AutomaticWinnerSelectionSettings;
        } | null;
    };
};

export type InternalServiceEnum = 'internal-service';

export type InternalServiceAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: InternalServiceEnum;
    links?: Link;
    data?: unknown;
};

export type CodeEnum = 'code';

export type CodeAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: CodeEnum;
    links?: Link;
    data?: unknown;
};

export type SplitEnum = 'split';

export type SplitLinks = {
    next: Array<string>;
};

export type SplitAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: SplitEnum;
    links?: SplitLinks;
};

export type BranchEnum = 'branch';

export type BranchAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: BranchEnum;
    links?: Link;
    data?: unknown;
};

export type ListUpdateEnum = 'list-update';

export type ListUpdateActionData = {
    name: string;
    /**
     * The enum for whether the action will add/remove from the list in the
     * List Update Action.
     */
    on_execution: false | true;
    list_id: string | null;
    /**
     * Flow action status.
     */
    status?: 'disabled' | 'draft' | 'live' | 'manual';
};

export type ListUpdateAction = {
    /**
     * The real ID of an action.
     */
    id?: string | null;
    /**
     * A temporary ID to use only during a create operation. Existing actions should use the id field.
     */
    temporary_id?: string | null;
    type: ListUpdateEnum;
    links?: Link;
    data: ListUpdateActionData;
};

export type FlowDefinition = {
    /**
     * Corresponds to the object which triggers the flow. Only one trigger is supported.
     */
    triggers: Array<ListTrigger | SegmentTrigger | MetricTrigger | ProfilePropertyDateTrigger | PriceDropTrigger | LowInventoryTrigger>;
    /**
     * Filters for users entering the flow. These filters are used on every action in the flow.
     */
    profile_filter?: {
        condition_groups: Array<{
            conditions: Array<ProfilePropertyCondition | ProfileHasGroupMembershipCondition | ProfileNoGroupMembershipCondition | ProfileRegionCondition | ProfilePostalCodeDistanceCondition | ProfilePredictiveAnalyticsStringCondition | ProfilePredictiveAnalyticsNumericCondition | ProfileMarketingConsentCondition | FlowsProfileMetricCondition | ProfileRandomSampleCondition | ProfileNotInFlowCondition>;
        }>;
    } | null;
    /**
     * A list of actions that make up the flow. Actions are linked to each other by their ids.
     */
    actions: Array<BackInStockDelayAction | ConditionalBranchAction | SendEmailAction | SendPushNotificationAction | SendSmsAction | SendWebhookAction | SendInternalAlertAction | TimeDelayAction | TriggerBranchAction | UpdateProfileAction | TargetDateAction | CountdownDelayAction | AbTestAction | InternalServiceAction | CodeAction | SplitAction | BranchAction | ListUpdateAction>;
    /**
     * The ID of the action that is the entry point of the flow.
     */
    entry_action_id: string | null;
};

export type FlowV2ResponseObjectResource = {
    type: FlowEnum;
    id: string;
    attributes: {
        name?: string | null;
        status?: string | null;
        archived?: boolean | null;
        created?: string | null;
        updated?: string | null;
        /**
         * Corresponds to the object which triggered the flow.
         */
        trigger_type?: 'Added to List' | 'Date Based' | 'Low Inventory' | 'Metric' | 'Price Drop' | 'Unconfigured';
    };
    links: ObjectLinks;
};

export type GetFlowV2ResponseCompoundDocument = {
    data: FlowV2ResponseObjectResource & {
        relationships?: {
            'flow-actions'?: {
                data?: Array<{
                    type: FlowActionEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: FlowEnum;
        attributes?: {
            definition?: FlowDefinition;
        };
    };
    included?: Array<FlowActionResponseObjectResource | TagResponseObjectResource>;
};

export type GetFlowActionResponseCollection = {
    data: Array<FlowActionResponseObjectResource & {
        relationships?: {
            flow?: {
                links?: RelationshipLinks;
            };
            'flow-messages'?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetFlowFlowActionRelationshipListResponseCollection = {
    data: Array<{
        type: FlowActionEnum;
        id: string;
    }>;
};

export type GetFlowTagsRelationshipsResponseCollection = {
    data: Array<{
        type: TagEnum;
        /**
         * The Tag ID
         */
        id: string;
    }>;
};

export type EmailMessageContent = {
    subject: string;
    preview_text: string;
    from_email: string;
    from_label: string;
    reply_to_email?: string | null;
    cc_email?: string | null;
    bcc_email?: string | null;
};

export type SmsMessageContent = {
    body: string;
    media_url?: string | null;
};

export type MobilePushMessageContent = {
    title: string;
    body: string;
    sound?: boolean;
    badge?: boolean;
    media_url?: string | null;
    dynamic_image?: string | null;
    ios_link?: string | null;
    android_link?: string | null;
    on_open?: string;
};

export type TemplateEnum = 'template';

export type FlowMessageResponseObjectResource = {
    type: FlowMessageEnum;
    id: string;
    attributes: {
        name: string;
        channel: string;
        content: EmailMessageContent | SmsMessageContent | MobilePushMessageContent;
        created?: string | null;
        updated?: string | null;
    };
    links: ObjectLinks;
};

export type GetFlowActionResponseCompoundDocument = {
    data: FlowActionResponseObjectResource & {
        relationships?: {
            flow?: {
                data?: {
                    type: FlowEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            'flow-messages'?: {
                data?: Array<{
                    type: FlowMessageEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<FlowResponseObjectResource | FlowMessageResponseObjectResource>;
};

export type GetFlowResponse = {
    data: FlowResponseObjectResource & {
        relationships?: {
            'flow-actions'?: {
                links?: RelationshipLinks;
            };
            tags?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type GetFlowActionFlowRelationshipResponse = {
    data: {
        type: FlowEnum;
        id: string;
    };
};

export type GetFlowMessageResponseCollection = {
    data: Array<FlowMessageResponseObjectResource & {
        relationships?: {
            'flow-action'?: {
                links?: RelationshipLinks;
            };
            template?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetFlowActionFlowMessageRelationshipResponseCollection = {
    data: Array<{
        type: FlowMessageEnum;
        id: string;
    }>;
};

export type TemplateResponseObjectResource = {
    type: TemplateEnum;
    /**
     * The ID of template
     */
    id: string;
    attributes: {
        /**
         * The name of the template
         */
        name: string;
        /**
         * `editor_type` has a fixed set of values:
         * * SYSTEM_DRAGGABLE: indicates a drag-and-drop editor template
         * * SIMPLE: A rich text editor template
         * * CODE: A custom HTML template
         * * USER_DRAGGABLE: A hybrid template, using custom HTML in the drag-and-drop editor
         */
        editor_type: string;
        /**
         * The rendered HTML of the template
         */
        html: string;
        /**
         * The template plain_text
         */
        text?: string | null;
        /**
         * The AMP version of the template. Requires AMP Email to be enabled to access in-app. Refer to the AMP Email setup guide at https://developers.klaviyo.com/en/docs/send_amp_emails_in_klaviyo
         */
        amp?: string | null;
        /**
         * The date the template was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created?: string | null;
        /**
         * The date the template was updated in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated?: string | null;
    };
    links: ObjectLinks;
};

export type GetFlowMessageResponseCompoundDocument = {
    data: FlowMessageResponseObjectResource & {
        relationships?: {
            'flow-action'?: {
                data?: {
                    type: FlowActionEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            template?: {
                data?: {
                    type: TemplateEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<FlowActionResponseObjectResource | TemplateResponseObjectResource>;
};

export type GetFlowActionResponse = {
    data: FlowActionResponseObjectResource & {
        relationships?: {
            flow?: {
                links?: RelationshipLinks;
            };
            'flow-messages'?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type GetFlowMessageActionRelationshipResponse = {
    data: {
        type: FlowActionEnum;
        id: string;
    };
};

export type GetTemplateResponse = {
    data: TemplateResponseObjectResource;
};

export type GetFlowMessageTemplateRelationshipResponse = {
    data: {
        type: TemplateEnum;
        /**
         * The ID of template
         */
        id: string;
    };
};

export type EmailContent = {
    /**
     * The subject of the message
     */
    subject?: string | null;
    /**
     * Preview text associated with the message
     */
    preview_text?: string | null;
    /**
     * The email the message should be sent from
     */
    from_email?: string | null;
    /**
     * The label associated with the from_email
     */
    from_label?: string | null;
    /**
     * Optional Reply-To email address
     */
    reply_to_email?: string | null;
    /**
     * Optional CC email address
     */
    cc_email?: string | null;
    /**
     * Optional BCC email address
     */
    bcc_email?: string | null;
};

export type EmailMessageDefinition = {
    channel: EmailEnum;
    /**
     * The label or name on the message
     */
    label?: string | null;
    content?: EmailContent;
};

export type SmsContent = {
    /**
     * The message body
     */
    body?: string | null;
    /**
     * URL for included media
     */
    media_url?: string | null;
};

export type RenderOptions = {
    shorten_links?: boolean | null;
    add_org_prefix?: boolean | null;
    add_info_link?: boolean | null;
    add_opt_out_language?: boolean | null;
};

export type SmsMessageDefinition = {
    channel: SmsEnum;
    content?: SmsContent;
    render_options?: RenderOptions;
};

export type MobilePushEnum = 'mobile_push';

export type StandardEnum = 'standard';

export type MobilePushContent = {
    /**
     * The title of the message
     */
    title?: string | null;
    /**
     * The message body
     */
    body?: string | null;
    /**
     * The dynamic image to be used in the push notification
     */
    dynamic_image?: string | null;
};

export type OpenAppEnum = 'open_app';

export type PushOnOpenApp = {
    type: OpenAppEnum;
};

export type DeepLinkEnum = 'deep_link';

export type PushOnOpenDeepLink = {
    type: DeepLinkEnum;
    /**
     * required for all platforms enabled for push
     */
    ios_deep_link?: string | null;
    /**
     * required for all platforms enabled for push
     */
    android_deep_link?: string | null;
};

export type MobilePushBadge = {
    /**
     * Whether to display a badge on the app icon
     */
    display: true;
    /**
     * Badge options
     */
    badge_options?: CampaignMessageIncrement | CampaignMessageStaticCount | CampaignMessageProperty | null;
};

export type MobilePushNoBadge = {
    /**
     * Whether to display a badge on the app icon
     */
    display: false;
};

export type MobilePushOptions = {
    on_open?: PushOnOpenApp | PushOnOpenDeepLink | null;
    /**
     * Only supported on iOS.
     */
    badge?: MobilePushBadge | MobilePushNoBadge | null;
    /**
     * Only supported on iOS.
     */
    play_sound?: boolean | null;
};

export type MobilePushMessageStandardDefinition = {
    channel: MobilePushEnum;
    notification_type: StandardEnum;
    content: MobilePushContent;
    /**
     * The key-value pairs to be sent with the push notification
     */
    kv_pairs?: {
        [key: string]: unknown;
    } | null;
    options?: MobilePushOptions;
};

export type SilentEnum = 'silent';

export type MobilePushMessageSilentDefinition = {
    channel: MobilePushEnum;
    notification_type: SilentEnum;
    /**
     * The key-value pairs to be sent with the push notification
     */
    kv_pairs?: {
        [key: string]: unknown;
    } | null;
};

export type SendTime = {
    /**
     * The datetime that the message is to be sent
     */
    datetime: string;
    /**
     * Whether that datetime is to be a local datetime for the recipient
     */
    is_local: boolean;
};

export type ImageEnum = 'image';

export type CampaignMessageResponseObjectResource = {
    type: CampaignMessageEnum;
    /**
     * The message ID
     */
    id: string;
    attributes: {
        definition?: EmailMessageDefinition | SmsMessageDefinition | MobilePushMessageStandardDefinition | MobilePushMessageSilentDefinition | null;
        /**
         * The list of appropriate Send Time Sub-objects associated with the message
         */
        send_times?: Array<SendTime> | null;
        /**
         * The datetime when the message was created
         */
        created_at?: string | null;
        /**
         * The datetime when the message was last updated
         */
        updated_at?: string | null;
    };
    links: ObjectLinks;
};

export type Audiences = {
    /**
     * A list of included audiences
     */
    included: Array<string>;
    /**
     * An optional list of excluded audiences
     */
    excluded?: Array<string> | null;
};

export type EmailSendOptions = {
    /**
     * Use smart sending.
     */
    use_smart_sending?: boolean | null;
};

export type SmsSendOptions = {
    /**
     * Use smart sending.
     */
    use_smart_sending?: boolean | null;
};

export type PushSendOptions = {
    /**
     * Use smart sending.
     */
    use_smart_sending?: boolean | null;
};

export type DynamicEnum = 'dynamic';

export type DynamicTrackingParam = {
    type: DynamicEnum;
    /**
     * The value of the tracking parameter
     */
    value: 'campaign_id' | 'campaign_name' | 'campaign_name_id' | 'campaign_name_send_day' | 'email_subject' | 'group_id' | 'group_name' | 'group_name_id' | 'link_alt_text' | 'message_type' | 'profile_external_id' | 'profile_id';
    /**
     * Name of the tracking param
     */
    name: string;
};

export type StaticEnum = 'static';

export type StaticTrackingParam = {
    type: StaticEnum;
    /**
     * The value of the tracking parameter
     */
    value: string;
    /**
     * Name of the tracking param
     */
    name: string;
};

export type CampaignsEmailTrackingOptions = {
    /**
     * Whether the campaign needs custom tracking parameters. If set to False, tracking params will not be used.
     */
    add_tracking_params?: boolean | null;
    /**
     * A list of custom tracking parameters. If an empty list is given and add_tracking_params is True, uses company defaults.
     */
    custom_tracking_params?: Array<DynamicTrackingParam | StaticTrackingParam> | null;
    /**
     * Whether the campaign is tracking click events. If not specified, uses company defaults.
     */
    is_tracking_clicks?: boolean | null;
    /**
     * Whether the campaign is tracking open events. If not specified, uses company defaults.
     */
    is_tracking_opens?: boolean | null;
};

export type CampaignsSmsTrackingOptions = {
    /**
     * Whether the campaign needs custom tracking parameters. If set to False, tracking params will not be used.
     */
    add_tracking_params?: boolean | null;
    /**
     * A list of custom tracking parameters. If an empty list is given and add_tracking_params is True, uses company defaults.
     */
    custom_tracking_params?: Array<DynamicTrackingParam | StaticTrackingParam> | null;
};

export type LocalStaticSend = {
    /**
     * Whether the campaign should be sent with local recipient timezone send (requires UTC time) or statically sent at the given time.
     */
    is_local: true;
    /**
     * Determines if we should send to local recipient timezone if the given time has passed. Only applicable to local sends.
     */
    send_past_recipients_immediately?: boolean;
};

export type NonLocalStaticSend = {
    /**
     * Whether the campaign should be sent with local recipient timezone send (requires UTC time) or statically sent at the given time.
     */
    is_local: false;
};

export type StaticSendStrategy = {
    method: StaticEnum;
    /**
     * The time to send at
     */
    datetime: string;
    /**
     * If the campaign should be sent with local recipient timezone send (requires UTC time) or statically sent at the given time.
     */
    options?: LocalStaticSend | NonLocalStaticSend | null;
};

export type ThrottledEnum = 'throttled';

export type ThrottledSendStrategy = {
    method: ThrottledEnum;
    /**
     * The time to send at
     */
    datetime: string;
    /**
     * The percentage of recipients per hour to send to.
     */
    throttle_percentage: 10 | 11 | 13 | 14 | 17 | 20 | 25 | 33 | 50;
};

export type ImmediateEnum = 'immediate';

export type ImmediateSendStrategy = {
    method: ImmediateEnum;
};

export type SmartSendTimeEnum = 'smart_send_time';

export type SmartSendTimeStrategy = {
    method: SmartSendTimeEnum;
    /**
     * The day to send on
     */
    date: string;
};

export type AbTestCampaignEnum = 'ab_test_campaign';

export type AbTestSendStrategy = {
    method: AbTestCampaignEnum;
};

export type UnsupportedEnum = 'unsupported';

export type UnsupportedSendStrategy = {
    method: UnsupportedEnum;
};

export type CampaignResponseObjectResource = {
    type: CampaignEnum;
    /**
     * The campaign ID
     */
    id: string;
    attributes: {
        /**
         * The campaign name
         */
        name: string;
        /**
         * The current status of the campaign
         */
        status: 'Adding Recipients' | 'Cancelled' | 'Cancelled: Account Disabled' | 'Cancelled: Internal Error' | 'Cancelled: No Recipients' | 'Cancelled: Smart Sending' | 'Draft' | 'Preparing to schedule' | 'Preparing to send' | 'Queued without Recipients' | 'Scheduled' | 'Sending' | 'Sending Segments' | 'Sent' | 'Unknown' | 'Variations Sent';
        /**
         * Whether the campaign has been archived or not
         */
        archived: boolean;
        audiences: Audiences;
        /**
         * Options to use when sending a campaign
         */
        send_options: EmailSendOptions | SmsSendOptions | PushSendOptions;
        /**
         * The tracking options associated with the campaign
         */
        tracking_options?: CampaignsEmailTrackingOptions | CampaignsSmsTrackingOptions | null;
        /**
         * The send strategy the campaign will send with
         */
        send_strategy: StaticSendStrategy | ThrottledSendStrategy | ImmediateSendStrategy | SmartSendTimeStrategy | AbTestSendStrategy | UnsupportedSendStrategy;
        /**
         * The datetime when the campaign was created
         */
        created_at: string;
        /**
         * The datetime when the campaign was scheduled for future sending
         */
        scheduled_at?: string | null;
        /**
         * The datetime when the campaign was last updated by a user or the system
         */
        updated_at: string;
        /**
         * The datetime when the campaign will be / was sent or None if not yet scheduled by a send_job.
         */
        send_time?: string | null;
    };
    links: ObjectLinks;
};

export type GetCampaignResponseCollectionCompoundDocument = {
    data: Array<CampaignResponseObjectResource & {
        relationships?: {
            'campaign-messages'?: {
                data?: Array<{
                    type: CampaignMessageEnum;
                    /**
                     * The message(s) associated with the campaign
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<CampaignMessageResponseObjectResource | TagResponseObjectResource>;
};

export type GetCampaignResponseCompoundDocument = {
    data: CampaignResponseObjectResource & {
        relationships?: {
            'campaign-messages'?: {
                data?: Array<{
                    type: CampaignMessageEnum;
                    /**
                     * The message(s) associated with the campaign
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CampaignMessageResponseObjectResource | TagResponseObjectResource>;
};

export type ImageResponseObjectResource = {
    type: ImageEnum;
    /**
     * The ID of the image
     */
    id: string;
    attributes: {
        name: string;
        image_url: string;
        format: string;
        size: number;
        hidden: boolean;
        updated_at: string;
    };
    links: ObjectLinks;
};

export type GetCampaignMessageResponseCompoundDocument = {
    data: CampaignMessageResponseObjectResource & {
        relationships?: {
            campaign?: {
                data?: {
                    type: CampaignEnum;
                    /**
                     * The parent campaign id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            template?: {
                data?: {
                    type: TemplateEnum;
                    /**
                     * The associated template id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            image?: {
                data?: {
                    type: ImageEnum;
                    /**
                     * The associated image id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CampaignResponseObjectResource | ImageResponseObjectResource | TemplateResponseObjectResource>;
};

export type GetCampaignResponse = {
    data: CampaignResponseObjectResource & {
        relationships?: {
            'campaign-messages'?: {
                links?: RelationshipLinks;
            };
            tags?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type GetCampaignMessageCampaignRelationshipResponse = {
    data: {
        type: CampaignEnum;
        /**
         * The campaign ID
         */
        id: string;
    };
};

export type GetCampaignMessageTemplateRelationshipResponse = {
    data: {
        type: TemplateEnum;
        /**
         * The ID of template
         */
        id: string;
    };
};

export type GetImageResponse = {
    data: ImageResponseObjectResource;
};

export type GetCampaignMessageImageRelationshipResponse = {
    data: {
        type: ImageEnum;
        /**
         * The ID of the image
         */
        id: string;
    };
};

export type GetCampaignTagsRelationshipsResponseCollection = {
    data: Array<{
        type: TagEnum;
        /**
         * The Tag ID
         */
        id: string;
    }>;
};

export type GetCampaignMessageResponseCollectionCompoundDocument = {
    data: Array<CampaignMessageResponseObjectResource & {
        relationships?: {
            campaign?: {
                data?: {
                    type: CampaignEnum;
                    /**
                     * The parent campaign id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            template?: {
                data?: {
                    type: TemplateEnum;
                    /**
                     * The associated template id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            image?: {
                data?: {
                    type: ImageEnum;
                    /**
                     * The associated image id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<CampaignResponseObjectResource | ImageResponseObjectResource | TemplateResponseObjectResource>;
};

export type GetCampaignMessagesRelationshipsResponseCollection = {
    data: Array<{
        type: CampaignMessageEnum;
        /**
         * The message ID
         */
        id: string;
    }>;
};

export type CampaignSendJobEnum = 'campaign-send-job';

export type CampaignSendJobResponseObjectResource = {
    type: CampaignSendJobEnum;
    /**
     * The ID of the campaign to send
     */
    id: string;
    attributes: {
        /**
         * The status of the send job
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
    };
    links: ObjectLinks;
};

export type GetCampaignSendJobResponse = {
    data: CampaignSendJobResponseObjectResource;
};

export type CampaignRecipientEstimationJobEnum = 'campaign-recipient-estimation-job';

export type CampaignRecipientEstimationJobResponseObjectResource = {
    type: CampaignRecipientEstimationJobEnum;
    /**
     * The ID of the campaign used for estimating recipients
     */
    id: string;
    attributes: {
        /**
         * The status of the recipient estimation job
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
    };
    links: ObjectLinks;
};

export type GetCampaignRecipientEstimationJobResponse = {
    data: CampaignRecipientEstimationJobResponseObjectResource;
};

export type CampaignRecipientEstimationEnum = 'campaign-recipient-estimation';

export type CampaignRecipientEstimationResponseObjectResource = {
    type: CampaignRecipientEstimationEnum;
    /**
     * The ID of the campaign for which to get the estimated number of recipients
     */
    id: string;
    attributes: {
        /**
         * The estimated number of unique recipients the campaign will send to
         */
        estimated_recipient_count: number;
    };
    links: ObjectLinks;
};

export type GetCampaignRecipientEstimationResponse = {
    data: CampaignRecipientEstimationResponseObjectResource;
};

export type GetTemplateResponseCollection = {
    data: Array<TemplateResponseObjectResource>;
    links?: CollectionLinks;
};

export type CatalogItemBulkCreateJobEnum = 'catalog-item-bulk-create-job';

export type CatalogItemCreateJobResponseObjectResource = {
    type: CatalogItemBulkCreateJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogItemCreateJobResponseCollectionCompoundDocument = {
    data: Array<CatalogItemCreateJobResponseObjectResource & {
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    /**
                     * IDs of the created catalog items.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogItemCreateJobResponseCompoundDocument = {
    data: CatalogItemCreateJobResponseObjectResource & {
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    /**
                     * IDs of the created catalog items.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CatalogItemResponseObjectResource>;
};

export type CatalogItemBulkUpdateJobEnum = 'catalog-item-bulk-update-job';

export type CatalogItemUpdateJobResponseObjectResource = {
    type: CatalogItemBulkUpdateJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogItemUpdateJobResponseCollectionCompoundDocument = {
    data: Array<CatalogItemUpdateJobResponseObjectResource & {
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    /**
                     * IDs of the updated catalog items.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogItemUpdateJobResponseCompoundDocument = {
    data: CatalogItemUpdateJobResponseObjectResource & {
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    /**
                     * IDs of the updated catalog items.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CatalogItemResponseObjectResource>;
};

export type CatalogItemBulkDeleteJobEnum = 'catalog-item-bulk-delete-job';

export type CatalogItemDeleteJobResponseObjectResource = {
    type: CatalogItemBulkDeleteJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogItemDeleteJobResponseCollection = {
    data: Array<CatalogItemDeleteJobResponseObjectResource & {
        relationships?: {
            items?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogItemDeleteJobResponse = {
    data: CatalogItemDeleteJobResponseObjectResource & {
        relationships?: {
            items?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type CatalogVariantBulkCreateJobEnum = 'catalog-variant-bulk-create-job';

export type CatalogVariantCreateJobResponseObjectResource = {
    type: CatalogVariantBulkCreateJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogVariantCreateJobResponseCollectionCompoundDocument = {
    data: Array<CatalogVariantCreateJobResponseObjectResource & {
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    /**
                     * IDs of the created catalog variants.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogVariantCreateJobResponseCompoundDocument = {
    data: CatalogVariantCreateJobResponseObjectResource & {
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    /**
                     * IDs of the created catalog variants.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CatalogVariantResponseObjectResource>;
};

export type CatalogVariantBulkUpdateJobEnum = 'catalog-variant-bulk-update-job';

export type CatalogVariantUpdateJobResponseObjectResource = {
    type: CatalogVariantBulkUpdateJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogVariantUpdateJobResponseCollectionCompoundDocument = {
    data: Array<CatalogVariantUpdateJobResponseObjectResource & {
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    /**
                     * IDs of the updated catalog variants.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogVariantUpdateJobResponseCompoundDocument = {
    data: CatalogVariantUpdateJobResponseObjectResource & {
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    /**
                     * IDs of the updated catalog variants.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CatalogVariantResponseObjectResource>;
};

export type CatalogVariantBulkDeleteJobEnum = 'catalog-variant-bulk-delete-job';

export type CatalogVariantDeleteJobResponseObjectResource = {
    type: CatalogVariantBulkDeleteJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogVariantDeleteJobResponseCollection = {
    data: Array<CatalogVariantDeleteJobResponseObjectResource & {
        relationships?: {
            variants?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogVariantDeleteJobResponse = {
    data: CatalogVariantDeleteJobResponseObjectResource & {
        relationships?: {
            variants?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type CatalogCategoryBulkCreateJobEnum = 'catalog-category-bulk-create-job';

export type CatalogCategoryCreateJobResponseObjectResource = {
    type: CatalogCategoryBulkCreateJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogCategoryCreateJobResponseCollectionCompoundDocument = {
    data: Array<CatalogCategoryCreateJobResponseObjectResource & {
        relationships?: {
            categories?: {
                data?: Array<{
                    type: CatalogCategoryEnum;
                    /**
                     * IDs of the created catalog categories.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogCategoryCreateJobResponseCompoundDocument = {
    data: CatalogCategoryCreateJobResponseObjectResource & {
        relationships?: {
            categories?: {
                data?: Array<{
                    type: CatalogCategoryEnum;
                    /**
                     * IDs of the created catalog categories.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CatalogCategoryResponseObjectResource>;
};

export type CatalogCategoryBulkUpdateJobEnum = 'catalog-category-bulk-update-job';

export type CatalogCategoryUpdateJobResponseObjectResource = {
    type: CatalogCategoryBulkUpdateJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogCategoryUpdateJobResponseCollectionCompoundDocument = {
    data: Array<CatalogCategoryUpdateJobResponseObjectResource & {
        relationships?: {
            categories?: {
                data?: Array<{
                    type: CatalogCategoryEnum;
                    /**
                     * IDs of the updated catalog categories.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogCategoryUpdateJobResponseCompoundDocument = {
    data: CatalogCategoryUpdateJobResponseObjectResource & {
        relationships?: {
            categories?: {
                data?: Array<{
                    type: CatalogCategoryEnum;
                    /**
                     * IDs of the updated catalog categories.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<CatalogCategoryResponseObjectResource>;
};

export type CatalogCategoryBulkDeleteJobEnum = 'catalog-category-bulk-delete-job';

export type CatalogCategoryDeleteJobResponseObjectResource = {
    type: CatalogCategoryBulkDeleteJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * The total number of operations that have failed as part of the job.
         */
        failed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * Array of errors encountered during the processing of the job.
         */
        errors?: Array<ApiJobErrorPayload> | null;
        /**
         * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        expires_at?: string | null;
    };
    links: ObjectLinks;
};

export type GetCatalogCategoryDeleteJobResponseCollection = {
    data: Array<CatalogCategoryDeleteJobResponseObjectResource & {
        relationships?: {
            categories?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCatalogCategoryDeleteJobResponse = {
    data: CatalogCategoryDeleteJobResponseObjectResource & {
        relationships?: {
            categories?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type TagGroupResponseObjectResource = {
    type: TagGroupEnum;
    /**
     * The Tag Group ID
     */
    id: string;
    attributes: {
        /**
         * The Tag Group name
         */
        name: string;
        /**
         * If a tag group is non-exclusive, any given related resource (campaign, flow, etc.) can be linked to multiple tags from that tag group. If a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.
         */
        exclusive: boolean;
        /**
         * Every company automatically has one Default Tag Group. The Default Tag Group cannot be deleted, and no other Default Tag Groups can be created. This value is true for the Default Tag Group and false for all other Tag Groups.
         */
        default: boolean;
    };
    links: ObjectLinks;
};

export type GetTagResponseCollectionCompoundDocument = {
    data: Array<TagResponseObjectResource & {
        relationships?: {
            'tag-group'?: {
                data?: {
                    type: TagGroupEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
            campaigns?: {
                links?: RelationshipLinks;
            };
            flows?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<TagGroupResponseObjectResource>;
};

export type GetTagResponseCompoundDocument = {
    data: TagResponseObjectResource & {
        relationships?: {
            'tag-group'?: {
                data?: {
                    type: TagGroupEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
            campaigns?: {
                links?: RelationshipLinks;
            };
            flows?: {
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<TagGroupResponseObjectResource>;
};

export type GetTagGroupResponseCollection = {
    data: Array<TagGroupResponseObjectResource & {
        relationships?: {
            tags?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetTagGroupResponse = {
    data: TagGroupResponseObjectResource & {
        relationships?: {
            tags?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type GetTagFlowRelationshipsResponseCollection = {
    data: Array<{
        type: FlowEnum;
        /**
         * The IDs of all flows that are associated with the Tag
         */
        id: string;
    }>;
};

export type GetTagCampaignRelationshipsResponseCollection = {
    data: Array<{
        type: CampaignEnum;
        /**
         * The IDs of all campaigns that are associated with the Tag
         */
        id: string;
    }>;
};

export type GetTagListRelationshipsResponseCollection = {
    data: Array<{
        type: ListEnum;
        /**
         * The IDs of all lists that are associated with the Tag
         */
        id: string;
    }>;
};

export type GetTagSegmentRelationshipsResponseCollection = {
    data: Array<{
        type: SegmentEnum;
        /**
         * The IDs of all segments that are associated with the Tag
         */
        id: string;
    }>;
};

export type GetTagGroupRelationshipResponse = {
    data: {
        type: TagGroupEnum;
        /**
         * The Tag Group ID
         */
        id: string;
    };
};

export type GetTagGroupTagsRelationshipsResponseCollection = {
    data: Array<{
        type: TagEnum;
        /**
         * The Tag ID
         */
        id: string;
    }>;
};

export type WebhookTopicEnum = 'webhook-topic';

export type WebhookTopicResponseObjectResource = {
    type: WebhookTopicEnum;
    /**
     * The ID of the webhook topic.
     */
    id: string;
    links: ObjectLinks;
};

export type WebhookEnum = 'webhook';

export type WebhookResponseObjectResource = {
    type: WebhookEnum;
    /**
     * The ID of the webhook.
     */
    id: string;
    attributes: {
        /**
         * A name for the webhook.
         */
        name: string;
        /**
         * A description for the webhook.
         */
        description?: string | null;
        /**
         * The url to send webhook requests to, truncated for security.
         */
        endpoint_url: string;
        /**
         * Is the webhook enabled.
         */
        enabled: boolean;
        /**
         * Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created_at: string;
        /**
         * Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated_at: string;
    };
    links: ObjectLinks;
};

export type GetWebhookResponseCollectionCompoundDocument = {
    data: Array<WebhookResponseObjectResource & {
        relationships?: {
            'webhook-topics'?: {
                data?: Array<{
                    type: WebhookTopicEnum;
                    /**
                     * A topic the webhook is subscribed to.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<WebhookTopicResponseObjectResource>;
};

export type GetWebhookResponseCompoundDocument = {
    data: WebhookResponseObjectResource & {
        relationships?: {
            'webhook-topics'?: {
                data?: Array<{
                    type: WebhookTopicEnum;
                    /**
                     * A topic the webhook is subscribed to.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<WebhookTopicResponseObjectResource>;
};

export type GetWebhookTopicResponseCollection = {
    data: Array<WebhookTopicResponseObjectResource>;
    links?: CollectionLinks;
};

export type GetWebhookTopicResponse = {
    data: WebhookTopicResponseObjectResource;
};

export type ProfileSuppressionBulkCreateJobEnum = 'profile-suppression-bulk-create-job';

export type BulkProfileSuppressionsCreateJobResponseObjectResource = {
    type: ProfileSuppressionBulkCreateJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * The total number of profiles that have been skipped as part of the job.
         */
        skipped_count?: number | null;
    };
    links: ObjectLinks;
};

export type GetBulkProfileSuppressionsCreateJobResponseCollection = {
    data: Array<BulkProfileSuppressionsCreateJobResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetBulkProfileSuppressionsCreateJobResponse = {
    data: BulkProfileSuppressionsCreateJobResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type ProfileSuppressionBulkDeleteJobEnum = 'profile-suppression-bulk-delete-job';

export type BulkProfileSuppressionsRemoveJobResponseObjectResource = {
    type: ProfileSuppressionBulkDeleteJobEnum;
    /**
     * Unique identifier for retrieving the job. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Status of the asynchronous job.
         */
        status: 'cancelled' | 'complete' | 'processing' | 'queued';
        /**
         * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        created_at: string;
        /**
         * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
         */
        total_count: number;
        /**
         * The total number of operations that have been completed by the job.
         */
        completed_count?: number | null;
        /**
         * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         */
        completed_at?: string | null;
        /**
         * The total number of profiles that have been skipped as part of the job.
         */
        skipped_count?: number | null;
    };
    links: ObjectLinks;
};

export type GetBulkProfileSuppressionsRemoveJobResponseCollection = {
    data: Array<BulkProfileSuppressionsRemoveJobResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetBulkProfileSuppressionsRemoveJobResponse = {
    data: BulkProfileSuppressionsRemoveJobResponseObjectResource & {
        relationships?: {
            lists?: {
                links?: RelationshipLinks;
            };
            segments?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type AccountEnum = 'account';

export type StreetAddress = {
    address1?: string | null;
    address2?: string | null;
    city: string;
    /**
     * State, province, or region.
     */
    region?: string | null;
    /**
     * Two-letter [ISO country code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)
     */
    country?: string | null;
    zip?: string | null;
};

export type ContactInformation = {
    /**
     * This field is used to auto-populate the default sender name on flow and campaign emails.
     */
    default_sender_name: string;
    /**
     * This field is used to auto-populate the default sender email address on flow and campaign emails.
     */
    default_sender_email: string;
    website_url?: string | null;
    organization_name: string;
    street_address: StreetAddress;
};

export type AccountResponseObjectResource = {
    type: AccountEnum;
    id: string;
    attributes: {
        /**
         * Indicates if the account is a test account. Test accounts are not a separate testing engineering environment. Test accounts use the same production environment as normal Klaviyo accounts. This feature is primarily UI based to reduce human errors
         */
        test_account: boolean;
        contact_information: ContactInformation;
        /**
         * The kind of business and/or types of goods that the business sells. This is leveraged in Klaviyo analytics and guidance.
         */
        industry?: string | null;
        /**
         * The account's timezone is used when displaying dates and times. This is an IANA timezone. See [the full list here ](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
         */
        timezone: string;
        /**
         * The preferred currency for the account. This is the currency used for currency-based metrics in dashboards, analytics, coupons, and templates.
         */
        preferred_currency: string;
        /**
         * The Public API Key can be used for client-side API calls. [More info here](https://developers.klaviyo.com/en/docs/retrieve_api_credentials).
         */
        public_api_key: string;
        /**
         * The account's locale is used to determine the region and language for the account.
         */
        locale: string;
    };
    links: ObjectLinks;
};

export type GetAccountResponseCollection = {
    data: Array<AccountResponseObjectResource>;
    links?: CollectionLinks;
};

export type GetAccountResponse = {
    data: AccountResponseObjectResource;
};

export type GetPushTokenResponseCollectionCompoundDocument = {
    data: Array<PushTokenResponseObjectResource & {
        relationships?: {
            profile?: {
                data?: {
                    type: ProfileEnum;
                    /**
                     * The profile associated with the push token
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<ProfileResponseObjectResource>;
};

export type GetPushTokenResponseCompoundDocument = {
    data: PushTokenResponseObjectResource & {
        relationships?: {
            profile?: {
                data?: {
                    type: ProfileEnum;
                    /**
                     * The profile associated with the push token
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<ProfileResponseObjectResource>;
};

export type GetPushTokenProfileRelationshipResponse = {
    data: {
        type: ProfileEnum;
        /**
         * Primary key that uniquely identifies this profile. Generated by Klaviyo.
         */
        id: string;
    };
};

export type GetImageResponseCollection = {
    data: Array<ImageResponseObjectResource>;
    links?: CollectionLinks;
};

export type TemplateUniversalContentEnum = 'template-universal-content';

export type BlockEnum = 'block';

export type ButtonEnum = 'button';

export type ButtonBlock = {
    content_type: BlockEnum;
    type: ButtonEnum;
    data: unknown;
};

export type DropShadowEnum = 'drop_shadow';

export type DropShadowBlock = {
    content_type: BlockEnum;
    type: DropShadowEnum;
    data: unknown;
};

export type HeaderEnum = 'header';

export type HeaderBlock = {
    content_type: BlockEnum;
    type: HeaderEnum;
    data: string | null;
};

export type HorizontalRuleEnum = 'horizontal_rule';

export type HorizontalRuleBlock = {
    content_type: BlockEnum;
    type: HorizontalRuleEnum;
    data: unknown;
};

export type HtmlEnum = 'html';

export type ContentRepeat = {
    repeat_for: string;
    item_alias: string;
};

export type BlockDisplayOptions = {
    /**
     * Show on.
     */
    show_on?: 'all' | 'desktop' | 'mobile';
    visible_check?: string | null;
    content_repeat?: ContentRepeat;
};

export type HtmlBlockData = {
    content: string;
    display_options: BlockDisplayOptions;
};

export type HtmlBlock = {
    content_type: BlockEnum;
    type: HtmlEnum;
    data: HtmlBlockData;
};

export type ImageBlock = {
    content_type: BlockEnum;
    type: ImageEnum;
    data: unknown;
};

export type ProductEnum = 'product';

export type ProductBlock = {
    content_type: BlockEnum;
    type: ProductEnum;
    data: string | null;
};

export type ReviewEnum = 'review';

export type ReviewBlock = {
    content_type: BlockEnum;
    type: ReviewEnum;
    data: string | null;
};

export type SocialEnum = 'social';

export type SocialBlock = {
    content_type: BlockEnum;
    type: SocialEnum;
    data: string | null;
};

export type SpacerEnum = 'spacer';

export type SpacerBlock = {
    content_type: BlockEnum;
    type: SpacerEnum;
    data: unknown;
};

export type SplitBlock = {
    content_type: BlockEnum;
    type: SplitEnum;
    data: string | null;
};

export type TableEnum = 'table';

export type TableBlock = {
    content_type: BlockEnum;
    type: TableEnum;
    data: string | null;
};

export type TextEnum = 'text';

export type TextBlockStyles = {
    background_color?: string | null;
    block_background_color?: string | null;
    block_border_color?: string | null;
    /**
     * Border style.
     */
    block_border_style?: 'dashed' | 'dotted' | 'groove' | 'inset' | 'none' | 'outset' | 'ridge' | 'solid';
    block_border_width?: number | null;
    block_padding_bottom?: number | null;
    block_padding_left?: number | null;
    block_padding_right?: number | null;
    block_padding_top?: number | null;
    color?: string | null;
    extra_css_class?: string | null;
    font_family?: string | null;
    font_size?: number | null;
    /**
     * Font style.
     */
    font_style?: 'italic' | 'normal';
    font_weight?: string | null;
    inner_padding_bottom?: number | null;
    inner_padding_left?: number | null;
    inner_padding_right?: number | null;
    inner_padding_top?: number | null;
    letter_spacing?: number | null;
    line_height?: number | null;
    mobile_stretch_content?: boolean | null;
    /**
     * Text Alignment.
     */
    text_align?: 'center' | 'left' | 'right';
    text_decoration?: string | null;
    /**
     * Text table layout.
     */
    text_table_layout?: 'auto' | 'fixed' | 'inherit' | 'initial';
};

export type TextBlockData = {
    content: string;
    display_options: BlockDisplayOptions;
    styles: TextBlockStyles;
};

export type TextBlock = {
    content_type: BlockEnum;
    type: TextEnum;
    data: TextBlockData;
};

export type UnsupportedBlock = {
    content_type: BlockEnum;
    type: UnsupportedEnum;
    data: string | null;
};

export type VideoEnum = 'video';

export type VideoBlock = {
    content_type: BlockEnum;
    type: VideoEnum;
    data: string | null;
};

export type SectionEnum = 'section';

export type Section = {
    content_type: SectionEnum;
    type: SectionEnum;
    data: string | null;
};

export type UniversalContentResponseObjectResource = {
    type: TemplateUniversalContentEnum;
    /**
     * The ID of the universal content
     */
    id: string;
    attributes: {
        /**
         * The name for this universal content
         */
        name: string;
        definition?: ButtonBlock | DropShadowBlock | HeaderBlock | HorizontalRuleBlock | HtmlBlock | ImageBlock | ProductBlock | ReviewBlock | SocialBlock | SpacerBlock | SplitBlock | TableBlock | TextBlock | UnsupportedBlock | VideoBlock | Section | null;
        /**
         * The datetime when this universal content was created
         */
        created: string;
        /**
         * The datetime when this universal content was updated
         */
        updated: string;
        /**
         * The status of a universal content screenshot.
         */
        screenshot_status: 'completed' | 'failed' | 'generating' | 'never_generated' | 'not_renderable' | 'stale';
        screenshot_url: string;
    };
    links: ObjectLinks;
};

export type GetUniversalContentResponseCollection = {
    data: Array<UniversalContentResponseObjectResource>;
    links?: CollectionLinks;
};

export type GetUniversalContentResponse = {
    data: UniversalContentResponseObjectResource;
};

export type RejectedEnum = 'rejected';

export type OtherEnum = 'other';

export type RejectReasonOther = {
    reason: OtherEnum;
    /**
     * If review reject reason is other, we can provide further explanation
     */
    status_explanation?: string | null;
};

export type FakeEnum = 'fake';

export type RejectReasonFake = {
    reason: FakeEnum;
};

export type FalseOrMisleadingEnum = 'false_or_misleading';

export type RejectReasonMisleading = {
    reason: FalseOrMisleadingEnum;
};

export type PrivateInformationEnum = 'private_information';

export type RejectReasonPrivateInformation = {
    reason: PrivateInformationEnum;
};

export type ProfanityOrInappropriateEnum = 'profanity_or_inappropriate';

export type RejectReasonProfanity = {
    reason: ProfanityOrInappropriateEnum;
};

export type UnrelatedEnum = 'unrelated';

export type RejectReasonUnrelated = {
    reason: UnrelatedEnum;
};

export type ReviewStatusRejected = {
    value: RejectedEnum;
    /**
     * The updated status intended for the review with this ID
     */
    rejection_reason: RejectReasonOther | RejectReasonFake | RejectReasonMisleading | RejectReasonPrivateInformation | RejectReasonProfanity | RejectReasonUnrelated;
};

export type FeaturedEnum = 'featured';

export type ReviewStatusFeatured = {
    value: FeaturedEnum;
};

export type PublishedEnum = 'published';

export type ReviewStatusPublished = {
    value: PublishedEnum;
};

export type UnpublishedEnum = 'unpublished';

export type ReviewStatusUnpublished = {
    value: UnpublishedEnum;
};

export type PendingEnum = 'pending';

export type ReviewStatusPending = {
    value: PendingEnum;
};

export type ReviewProductDto = {
    /**
     * The URL of the product
     */
    url: string;
    /**
     * The name of the product
     */
    name: string;
    /**
     * The URL of the product image
     */
    image_url?: string | null;
    /**
     * The external ID of the product
     */
    external_id?: string | null;
};

export type ReviewPublicReply = {
    /**
     * The content of the public reply
     */
    content: string;
    /**
     * The author of the public reply
     */
    author: string;
    /**
     * The datetime when this public reply was updated
     */
    updated: string;
};

export type ReviewResponseDtoObjectResource = {
    type: ReviewEnum;
    /**
     * The ID of the review
     */
    id: string;
    attributes: {
        /**
         * The email of the author of this review
         */
        email?: string | null;
        /**
         * The status of this review
         */
        status?: ReviewStatusRejected | ReviewStatusFeatured | ReviewStatusPublished | ReviewStatusUnpublished | ReviewStatusPending | null;
        /**
         * The verification status of this review (aka whether or not we have confirmation that the customer bought the product)
         */
        verified: boolean;
        /**
         * The type of this review — either a review, question, or rating
         */
        review_type: 'question' | 'rating' | 'review' | 'store';
        /**
         * The datetime when this review was created
         */
        created: string;
        /**
         * The datetime when this review was updated
         */
        updated: string;
        /**
         * The list of images submitted with this review (represented as a list of urls). If there are no images, this field will be an empty list.
         */
        images: Array<string>;
        product?: ReviewProductDto;
        /**
         * The rating of this review on a scale from 1-5. If the review type is "question", this field will be null.
         */
        rating?: number | null;
        /**
         * The author of this review
         */
        author?: string | null;
        /**
         * The content of this review
         */
        content?: string | null;
        /**
         * The title of this review
         */
        title?: string | null;
        /**
         * A quote from this review that summarizes the content
         */
        smart_quote?: string | null;
        public_reply?: ReviewPublicReply;
    };
    links: ObjectLinks;
};

export type GetReviewResponseDtoCollectionCompoundDocument = {
    data: Array<ReviewResponseDtoObjectResource & {
        relationships?: {
            events?: {
                data?: Array<{
                    type: EventEnum;
                    /**
                     * Related Events
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            item?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<EventResponseObjectResource>;
};

export type GetReviewResponseDtoCompoundDocument = {
    data: ReviewResponseDtoObjectResource & {
        relationships?: {
            events?: {
                data?: Array<{
                    type: EventEnum;
                    /**
                     * Related Events
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            item?: {
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<EventResponseObjectResource>;
};

export type FormVersionAbTest = {
    /**
     * This is the name of the AB test variation.
     */
    variation_name: string;
};

export type FormVersionEnum = 'form-version';

export type FormVersionResponseObjectResource = {
    type: FormVersionEnum;
    /**
     * ID of the form version. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * The type of form.
         */
        form_type: 'banner' | 'embed' | 'flyout' | 'full_page' | 'popup';
        ab_test?: FormVersionAbTest;
        /**
         * Status of the form version. "live" means it's live on site.
         */
        status: 'draft' | 'live';
        /**
         * ISO8601 timestamp when the form version was created.
         */
        created_at: string;
        /**
         * ISO8601 timestamp when the form version was last updated.
         */
        updated_at: string;
    };
    links: ObjectLinks;
};

export type FormResponseObjectResource = {
    type: FormEnum;
    /**
     * ID of the form. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Name of the form.
         */
        name: string;
        /**
         * Status of the form. A live form with an in-progress draft is considered "live".
         */
        status: 'draft' | 'live';
        /**
         * Whether the form has an A/B test configured, regardless of its status.
         */
        ab_test: boolean;
        /**
         * ISO8601 timestamp when the form was created.
         */
        created_at: string;
        /**
         * ISO8601 timestamp when the form was last updated.
         */
        updated_at: string;
    };
    links: ObjectLinks;
};

export type GetFormResponseCollectionCompoundDocument = {
    data: Array<FormResponseObjectResource & {
        relationships?: {
            'form-versions'?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetFormResponseCompoundDocument = {
    data: FormResponseObjectResource & {
        relationships?: {
            'form-versions'?: {
                data?: Array<{
                    type: FormVersionEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<FormVersionResponseObjectResource>;
};

export type MetricPropertyResponseObjectResource = {
    type: MetricPropertyEnum;
    /**
     * The ID of the metric property
     */
    id: string;
    attributes: {
        /**
         * The label for this metric property
         */
        label: string;
        /**
         * The property for this metric property
         */
        property: string;
        /**
         * Inferred type for this metric property
         */
        inferred_type: string;
    };
    links: ObjectLinks;
};

export type GetMetricPropertyResponseCompoundDocument = {
    data: MetricPropertyResponseObjectResource & {
        relationships?: {
            metric?: {
                data?: {
                    type: MetricEnum;
                    /**
                     * Related Metric
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: MetricPropertyEnum;
        attributes?: {
            sample_values?: Array<string> | null;
        };
    };
    included?: Array<MetricResponseObjectResource>;
};

export type GetMetricPropertyResponseCollection = {
    data: Array<MetricPropertyResponseObjectResource & {
        relationships?: {
            metric?: {
                links?: RelationshipLinks;
            };
        };
    } & {
        type?: MetricPropertyEnum;
        attributes?: {
            sample_values?: Array<string> | null;
        };
    }>;
    links?: CollectionLinks;
};

export type GetMetricPropertiesRelationshipsResponseCollection = {
    data: Array<{
        type: MetricPropertyEnum;
        /**
         * The ID of the metric property
         */
        id: string;
    }>;
};

export type GetMetricPropertyMetricRelationshipResponse = {
    data: {
        type: MetricEnum;
        /**
         * The Metric ID
         */
        id: string;
    };
};

export type GetFormVersionResponseCollection = {
    data: Array<FormVersionResponseObjectResource>;
    links?: CollectionLinks;
};

export type GetFormVersionsRelationshipsResponseCollection = {
    data: Array<{
        type: FormVersionEnum;
        /**
         * ID of the form version. Generated by Klaviyo.
         */
        id: string;
    }>;
};

export type GetFormResponse = {
    data: FormResponseObjectResource & {
        relationships?: {
            'form-versions'?: {
                links?: RelationshipLinks;
            };
        };
    };
};

export type GetFormVersionFormRelationshipResponse = {
    data: {
        type: FormEnum;
        /**
         * ID of the form. Generated by Klaviyo.
         */
        id: string;
    };
};

export type GetFormVersionResponse = {
    data: FormVersionResponseObjectResource;
};

export type TrackingSettingEnum = 'tracking-setting';

export type FlowTrackingSettingDynamicParam = {
    type: DynamicEnum;
    /**
     * The value of the tracking parameter
     */
    value: 'email_subject' | 'flow_id' | 'flow_name' | 'link_alt_text' | 'message_name' | 'message_name_id' | 'message_type' | 'profile_external_id' | 'profile_id';
};

export type FlowTrackingSettingStaticParam = {
    type: StaticEnum;
    /**
     * The value of the tracking parameter
     */
    value: string;
};

export type CampaignTrackingSettingDynamicParam = {
    type: DynamicEnum;
    /**
     * The value of the tracking parameter
     */
    value: 'campaign_id' | 'campaign_name' | 'campaign_name_id' | 'campaign_name_send_day' | 'email_subject' | 'group_id' | 'group_name' | 'group_name_id' | 'link_alt_text' | 'message_type' | 'profile_external_id' | 'profile_id';
};

export type CampaignTrackingSettingStaticParam = {
    type: StaticEnum;
    /**
     * The value of the tracking parameter
     */
    value: string;
};

export type TrackingParamDto = {
    /**
     * The value of the tracking parameter when applied to a flow.
     */
    flow?: FlowTrackingSettingDynamicParam | FlowTrackingSettingStaticParam | null;
    /**
     * The value of the tracking parameter when applied to a campaign.
     */
    campaign?: CampaignTrackingSettingDynamicParam | CampaignTrackingSettingStaticParam | null;
};

export type CustomTrackingParamDto = {
    /**
     * The value of the tracking parameter when applied to a flow.
     */
    flow?: FlowTrackingSettingDynamicParam | FlowTrackingSettingStaticParam | null;
    /**
     * The value of the tracking parameter when applied to a campaign.
     */
    campaign?: CampaignTrackingSettingDynamicParam | CampaignTrackingSettingStaticParam | null;
    /**
     * The name of the custom tracking parameter
     */
    name: string;
};

export type TrackingSettingResponseObjectResource = {
    type: TrackingSettingEnum;
    /**
     * The id of the tracking setting (account ID).
     */
    id: string;
    attributes: {
        /**
         * Whether tracking parameters are automatically added to campaigns and flows.
         */
        auto_add_parameters: boolean;
        utm_source: TrackingParamDto;
        utm_medium: TrackingParamDto;
        utm_campaign?: TrackingParamDto;
        utm_id?: TrackingParamDto;
        utm_term?: TrackingParamDto;
        /**
         * Additional custom tracking parameters.
         */
        custom_parameters?: Array<CustomTrackingParamDto> | null;
    };
    links: ObjectLinks;
};

export type GetTrackingSettingResponseCollection = {
    data: Array<TrackingSettingResponseObjectResource>;
    links?: CollectionLinks;
};

export type GetTrackingSettingResponse = {
    data: TrackingSettingResponseObjectResource;
};

export type WebFeedEnum = 'web-feed';

export type WebFeedResponseObjectResource = {
    type: WebFeedEnum;
    /**
     * Primary key that uniquely identifies this web feed. Generated by Klaviyo
     */
    id: string;
    attributes: {
        /**
         * The name of this web feed
         */
        name: string;
        /**
         * The URL of the web feed
         */
        url: string;
        /**
         * The HTTP method for requesting the web feed
         */
        request_method: 'get' | 'post';
        /**
         * The content-type of the web feed
         */
        content_type: 'json' | 'xml';
        /**
         * Date and time when the web feed was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        created: string;
        /**
         * Date and time when the web feed was updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
         */
        updated: string;
        /**
         * The cache status of this web feed if it exists
         */
        status?: 'critical_nightly_refresh_timeout' | 'disabled' | 'ok' | 'warning_nightly_refresh_timeout' | 'warning_periodic_refresh_timeout';
    };
    links: ObjectLinks;
};

export type GetWebFeedResponseCollection = {
    data: Array<WebFeedResponseObjectResource>;
    links?: CollectionLinks;
};

export type GetWebFeedResponse = {
    data: WebFeedResponseObjectResource;
};

export type CustomMetricEnum = 'custom-metric';

export type StringInArrayFilter = {
    operator: InEnum;
    value: Array<string>;
    type: StringEnum;
};

export type ListRegexOperatorContainsFilter = {
    type: ListEnum;
    /**
     * Operators for list regex filters.
     */
    operator: 'contains-ends-with' | 'contains-starts-with' | 'not-contains-ends-with' | 'not-contains-starts-with';
    value: number | string | null;
};

export type CustomMetricCondition = {
    property: string;
    filter: NumericOperatorFilter | StringInArrayFilter | ExistenceOperatorFilter | BooleanFilter | StringOperatorFilter | ListContainsOperatorFilter | ListRegexOperatorContainsFilter | ListSubstringFilter;
};

export type CustomMetricGroup = {
    /**
     * The ID of the metric that composes the custom metric.
     */
    metric_id: string;
    /**
     * An optional array of objects for filtering on properties of the metric.
     */
    metric_filters?: Array<CustomMetricCondition> | null;
    /**
     *
     * If the custom metric has a `value` aggregation method, the `value_property` of each `metric_group` of the `definition` should specify the property to calculate the conversion value. If null, the default `$value` property will be used.
     *
     */
    value_property?: string | null;
};

export type CustomMetricDefinition = {
    /**
     * Method of aggregation for custom metric measurements. If a metric has a `value` aggregation method, it will be treated as a revenue metric, such as a Placed Order metric. If a metric has a `count` aggregation method, it will only be able to report on conversions like an Active on Site metric.
     *
     */
    aggregation_method: 'count' | 'value';
    metric_groups: Array<CustomMetricGroup>;
};

export type CustomMetricResponseObjectResource = {
    type: CustomMetricEnum;
    /**
     * The ID of the custom metric
     */
    id: string;
    attributes: {
        /**
         * The name for this custom metric. Names must be unique across the account.         Attempting to create a metric with a duplicate name will return a 400 status code.
         */
        name: string;
        /**
         * The datetime when this custom metric was created.
         */
        created: string;
        /**
         * The datetime when this custom metric was updated.
         */
        updated: string;
        definition: CustomMetricDefinition;
    };
    links: ObjectLinks;
};

export type GetCustomMetricResponseCollectionCompoundDocument = {
    data: Array<CustomMetricResponseObjectResource & {
        relationships?: {
            metrics?: {
                data?: Array<{
                    type: MetricEnum;
                    /**
                     * Related metrics
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
    included?: Array<MetricResponseObjectResource>;
};

export type GetCustomMetricResponseCompoundDocument = {
    data: CustomMetricResponseObjectResource & {
        relationships?: {
            metrics?: {
                data?: Array<{
                    type: MetricEnum;
                    /**
                     * Related metrics
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
    included?: Array<MetricResponseObjectResource>;
};

export type GetMetricResponseCollection = {
    data: Array<MetricResponseObjectResource & {
        relationships?: {
            'flow-triggers'?: {
                links?: RelationshipLinks;
            };
        };
    }>;
    links?: CollectionLinks;
};

export type GetCustomMetricMetricsRelationshipsResponseCollection = {
    data: Array<{
        type: MetricEnum;
        /**
         * The Metric ID
         */
        id: string;
    }>;
};

export type ReviewValuesReportEnum = 'review-values-report';

export type GroupingProduct = {
    /**
     * The ID of the product
     */
    product_id: string;
};

export type GroupingCompany = {
    [key: string]: unknown;
};

export type StatisticsDto = {
    /**
     * The average rating
     */
    average_rating?: number | null;
    /**
     * The total number of reviews
     */
    total_reviews?: number | null;
    /**
     * The total number of questions
     */
    total_questions?: number | null;
    /**
     * The total number of ratings
     */
    total_ratings?: number | null;
    /**
     * The total number of store reviews
     */
    total_store_reviews?: number | null;
    /**
     * The average rating of store reviews
     */
    average_store_rating?: number | null;
};

export type ReviewValueReportGrouping = {
    /**
     * Grouping details, either by product or company
     */
    groupings: GroupingProduct | GroupingCompany;
    statistics: StatisticsDto;
};

export type ReviewValuesReportResponseObjectResource = {
    type: ReviewValuesReportEnum;
    /**
     * The unique identifier for the reviews values report
     */
    id: string;
    attributes: {
        /**
         * The list of groupings and their corresponding statistics in the reviews values report
         */
        results: Array<ReviewValueReportGrouping>;
    };
    links: ObjectLinks;
};

export type GetReviewValuesReportResponseCollection = {
    data: Array<ReviewValuesReportResponseObjectResource>;
    links?: CollectionLinks;
};

export type ClientReviewResponseDtoObjectResource = {
    type: ReviewEnum;
    /**
     * The ID of the review
     */
    id: string;
    attributes: {
        /**
         * The status of this review
         */
        status?: ReviewStatusRejected | ReviewStatusFeatured | ReviewStatusPublished | ReviewStatusUnpublished | ReviewStatusPending | null;
        /**
         * The verification status of this review (aka whether or not we have confirmation that the customer bought the product)
         */
        verified: boolean;
        /**
         * The type of this review — either a review, question, or rating
         */
        review_type: 'question' | 'rating' | 'review' | 'store';
        /**
         * The datetime when this review was created
         */
        created: string;
        /**
         * The datetime when this review was updated
         */
        updated: string;
        /**
         * The list of images submitted with this review (represented as a list of urls). If there are no images, this field will be an empty list.
         */
        images: Array<string>;
        product?: ReviewProductDto;
        /**
         * The rating of this review on a scale from 1-5. If the review type is "question", this field will be null.
         */
        rating?: number | null;
        /**
         * The author of this review
         */
        author?: string | null;
        /**
         * The content of this review
         */
        content?: string | null;
        /**
         * The title of this review
         */
        title?: string | null;
        /**
         * A quote from this review that summarizes the content
         */
        smart_quote?: string | null;
        public_reply?: ReviewPublicReply;
    };
    links: ObjectLinks;
};

export type GetClientReviewResponseDtoCollection = {
    data: Array<ClientReviewResponseDtoObjectResource>;
    links?: CollectionLinks;
};

export type CouponCreateQueryResourceObject = {
    type: CouponEnum;
    attributes: {
        /**
         * This is the id that is stored in an integration such as Shopify or Magento.
         */
        external_id: string;
        /**
         * A description of the coupon.
         */
        description?: string | null;
    };
};

export type CouponCreateQuery = {
    data: CouponCreateQueryResourceObject;
};

export type PostCouponResponse = {
    data: {
        type: CouponEnum;
        /**
         * The internal id of a Coupon is equivalent to its external id stored within an integration.
         */
        id: string;
        attributes: {
            /**
             * This is the id that is stored in an integration such as Shopify or Magento.
             */
            external_id: string;
            /**
             * A description of the coupon.
             */
            description?: string | null;
        };
        links: ObjectLinks;
    };
};

export type CouponCodeCreateQueryResourceObject = {
    type: CouponCodeEnum;
    attributes: {
        /**
         * This is a unique string that will be or is assigned to each customer/profile and is associated with a coupon.
         */
        unique_code: string;
        /**
         * The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.
         */
        expires_at?: string | null;
    };
    relationships: {
        coupon: {
            data?: {
                type: CouponEnum;
                id: string;
            };
        };
    };
};

export type CouponCodeCreateQuery = {
    data: CouponCodeCreateQueryResourceObject;
};

export type PostCouponCodeResponse = {
    data: {
        type: CouponCodeEnum;
        /**
         * The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.
         */
        id: string;
        attributes: {
            /**
             * This is a unique string that will be or is assigned to each customer/profile and is associated with a coupon.
             */
            unique_code?: string | null;
            /**
             * The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.
             */
            expires_at?: string | null;
            /**
             * The current status of the coupon code.
             */
            status?: 'ASSIGNED_TO_PROFILE' | 'DELETING' | 'PROCESSING' | 'UNASSIGNED' | 'USED' | 'VERSION_NOT_ACTIVE';
        };
        relationships?: {
            coupon?: {
                data?: {
                    type: CouponEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            profile?: {
                data?: {
                    type: ProfileEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogItemCreateQueryResourceObject = {
    type: CatalogItemEnum;
    attributes: {
        /**
         * The ID of the catalog item in an external system.
         */
        external_id: string;
        /**
         * The integration type. Currently only "$custom" is supported.
         */
        integration_type?: '$custom';
        /**
         * The title of the catalog item.
         */
        title: string;
        /**
         * This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).
         */
        price?: number | null;
        /**
         * The type of catalog. Currently only "$default" is supported.
         */
        catalog_type?: string | null;
        /**
         * A description of the catalog item.
         */
        description: string;
        /**
         * URL pointing to the location of the catalog item on your website.
         */
        url: string;
        /**
         * URL pointing to the location of a full image of the catalog item.
         */
        image_full_url?: string | null;
        /**
         * URL pointing to the location of an image thumbnail of the catalog item
         */
        image_thumbnail_url?: string | null;
        /**
         * List of URLs pointing to the locations of images of the catalog item.
         */
        images?: Array<string> | null;
        /**
         * Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.
         */
        custom_metadata?: {
            [key: string]: unknown;
        } | null;
        /**
         * Boolean value indicating whether the catalog item is published.
         */
        published?: boolean | null;
    };
    relationships?: {
        categories?: {
            data?: Array<{
                type: CatalogCategoryEnum;
                /**
                 * A list of catalog category IDs representing the categories the item is in
                 */
                id: string;
            }>;
        };
    };
};

export type CatalogItemCreateQuery = {
    data: CatalogItemCreateQueryResourceObject;
};

export type PostCatalogItemResponse = {
    data: {
        type: CatalogItemEnum;
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
        attributes: {
            /**
             * The ID of the catalog item in an external system.
             */
            external_id?: string | null;
            /**
             * The title of the catalog item.
             */
            title?: string | null;
            /**
             * A description of the catalog item.
             */
            description?: string | null;
            /**
             * This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).
             */
            price?: number | null;
            /**
             * URL pointing to the location of the catalog item on your website.
             */
            url?: string | null;
            /**
             * URL pointing to the location of a full image of the catalog item.
             */
            image_full_url?: string | null;
            /**
             * URL pointing to the location of an image thumbnail of the catalog item
             */
            image_thumbnail_url?: string | null;
            /**
             * List of URLs pointing to the locations of images of the catalog item.
             */
            images?: Array<string> | null;
            /**
             * Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.
             */
            custom_metadata?: {
                [key: string]: unknown;
            } | null;
            /**
             * Boolean value indicating whether the catalog item is published.
             */
            published?: boolean | null;
            /**
             * Date and time when the catalog item was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created?: string | null;
            /**
             * Date and time when the catalog item was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            updated?: string | null;
        };
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogCategoryItemOp = {
    data: Array<{
        type: CatalogItemEnum;
        /**
         * A list of catalog item IDs that are in the given category.
         */
        id: string;
    }>;
};

export type CatalogVariantCreateQueryResourceObject = {
    type: CatalogVariantEnum;
    attributes: {
        /**
         * The ID of the catalog item variant in an external system.
         */
        external_id: string;
        /**
         * The type of catalog. Currently only "$default" is supported.
         */
        catalog_type?: string | null;
        /**
         * The integration type. Currently only "$custom" is supported.
         */
        integration_type?: '$custom';
        /**
         * The title of the catalog item variant.
         */
        title: string;
        /**
         * A description of the catalog item variant.
         */
        description: string;
        /**
         * The SKU of the catalog item variant.
         */
        sku: string;
        /**
         * This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:
         * `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.
         * `0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.
         */
        inventory_policy?: 0 | 1 | 2;
        /**
         * The quantity of the catalog item variant currently in stock.
         */
        inventory_quantity: number;
        /**
         * This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).
         */
        price: number;
        /**
         * URL pointing to the location of the catalog item variant on your website.
         */
        url: string;
        /**
         * URL pointing to the location of a full image of the catalog item variant.
         */
        image_full_url?: string | null;
        /**
         * URL pointing to the location of an image thumbnail of the catalog item variant.
         */
        image_thumbnail_url?: string | null;
        /**
         * List of URLs pointing to the locations of images of the catalog item variant.
         */
        images?: Array<string> | null;
        /**
         * Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.
         */
        custom_metadata?: {
            [key: string]: unknown;
        } | null;
        /**
         * Boolean value indicating whether the catalog item variant is published.
         */
        published?: boolean | null;
    };
    relationships: {
        item: {
            data?: {
                type: CatalogItemEnum;
                /**
                 * The original catalog item ID for which this is a variant.
                 */
                id: string;
            };
        };
    };
};

export type CatalogVariantCreateQuery = {
    data: CatalogVariantCreateQueryResourceObject;
};

export type PostCatalogVariantResponse = {
    data: {
        type: CatalogVariantEnum;
        /**
         * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
        attributes: {
            /**
             * The ID of the catalog item variant in an external system.
             */
            external_id?: string | null;
            /**
             * The title of the catalog item variant.
             */
            title?: string | null;
            /**
             * A description of the catalog item variant.
             */
            description?: string | null;
            /**
             * The SKU of the catalog item variant.
             */
            sku?: string | null;
            /**
             * This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:
             * `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.
             * `0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.
             */
            inventory_policy?: 0 | 1 | 2;
            /**
             * The quantity of the catalog item variant currently in stock.
             */
            inventory_quantity?: number | null;
            /**
             * This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).
             */
            price?: number | null;
            /**
             * URL pointing to the location of the catalog item variant on your website.
             */
            url?: string | null;
            /**
             * URL pointing to the location of a full image of the catalog item variant.
             */
            image_full_url?: string | null;
            /**
             * URL pointing to the location of an image thumbnail of the catalog item variant.
             */
            image_thumbnail_url?: string | null;
            /**
             * List of URLs pointing to the locations of images of the catalog item variant.
             */
            images?: Array<string> | null;
            /**
             * Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.
             */
            custom_metadata?: {
                [key: string]: unknown;
            } | null;
            /**
             * Boolean value indicating whether the catalog item variant is published.
             */
            published?: boolean | null;
            /**
             * Date and time when the catalog item  variant was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created?: string | null;
            /**
             * Date and time when the catalog item variant was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            updated?: string | null;
        };
        relationships?: {
            item?: {
                data?: {
                    type: CatalogItemEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogCategoryCreateQueryResourceObject = {
    type: CatalogCategoryEnum;
    attributes: {
        /**
         * The ID of the catalog category in an external system.
         */
        external_id: string;
        /**
         * The name of the catalog category.
         */
        name: string;
        /**
         * The integration type. Currently only "$custom" is supported.
         */
        integration_type?: '$custom';
        /**
         * The type of catalog. Currently only "$default" is supported.
         */
        catalog_type?: string | null;
    };
    relationships?: {
        items?: {
            data?: Array<{
                type: CatalogItemEnum;
                /**
                 * A list of catalog item IDs that are in the given category.
                 */
                id: string;
            }>;
        };
    };
};

export type CatalogCategoryCreateQuery = {
    data: CatalogCategoryCreateQueryResourceObject;
};

export type PostCatalogCategoryResponse = {
    data: {
        type: CatalogCategoryEnum;
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
        attributes: {
            /**
             * The ID of the catalog category in an external system.
             */
            external_id?: string | null;
            /**
             * The name of the catalog category.
             */
            name?: string | null;
            /**
             * Date and time when the catalog category was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            updated?: string | null;
        };
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CouponCodeCreateJobCreateQueryResourceObject = {
    type: CouponCodeBulkCreateJobEnum;
    attributes: {
        /**
         * Array of coupon codes to create.
         */
        'coupon-codes': {
            data: Array<CouponCodeCreateQueryResourceObject>;
        };
    };
};

export type CouponCodeCreateJobCreateQuery = {
    data: CouponCodeCreateJobCreateQueryResourceObject;
};

export type PostCouponCodeCreateJobResponse = {
    data: {
        type: CouponCodeBulkCreateJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            'coupon-codes'?: {
                data?: Array<{
                    type: CouponCodeEnum;
                    /**
                     * IDs of the created coupon codes.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogItemCategoryOp = {
    data: Array<{
        type: CatalogCategoryEnum;
        /**
         * A list of catalog category IDs representing the categories the item is in
         */
        id: string;
    }>;
};

export type ProfileIdentifierDtoResourceObject = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        anonymous_id?: string | null;
    };
};

export type BackInStockSubscriptionEnum = 'back-in-stock-subscription';

export type ServerBisSubscriptionCreateQueryResourceObject = {
    type: BackInStockSubscriptionEnum;
    attributes: {
        /**
         * The channel(s) through which the profile would like to receive the back in stock notification. This can be leveraged within a back in stock flow to notify the subscriber through their preferred channel(s).
         */
        channels: Array<'EMAIL' | 'PUSH' | 'SMS'>;
        profile?: {
            data: ProfileIdentifierDtoResourceObject;
        } | null;
    };
    relationships: {
        variant: {
            data?: {
                type: CatalogVariantEnum;
                /**
                 * The catalog variant ID for which the profile is subscribing to back in stock notifications. This ID is made up of the integration type, catalog ID, and and the external ID of the variant like so: `integrationType:::catalogId:::externalId`. If the integration you are using is not set up for multi-catalog storage, the 'catalogId' will be `$default`. For Shopify `$shopify:::$default:::33001893429341`
                 */
                id: string;
            };
        };
    };
};

export type ServerBisSubscriptionCreateQuery = {
    data: ServerBisSubscriptionCreateQueryResourceObject;
};

export type MetricCreateQueryResourceObject = {
    type: MetricEnum;
    attributes: {
        /**
         * Name of the event. Must be less than 128 characters.
         */
        name: string;
        /**
         * This is for advanced usage. For api requests, this should use the default, which is set to api.
         */
        service?: string | null;
    };
};

export type ProfileMetaPatchProperties = {
    /**
     * Append a simple value or values to this property array
     */
    append?: {
        [key: string]: unknown;
    } | null;
    /**
     * Remove a simple value or values from this property array
     */
    unappend?: {
        [key: string]: unknown;
    } | null;
    /**
     * Remove a key or keys (and their values) completely from properties
     */
    unset?: string | Array<string> | null;
};

export type OnsiteProfileMeta = {
    patch_properties?: ProfileMetaPatchProperties;
};

export type EventProfileCreateQueryResourceObject = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        anonymous_id?: string | null;
        /**
         * Also known as the `exchange_id`, this is an encrypted identifier used for identifying a
         * profile by Klaviyo's web tracking.
         *
         * You can use this field as a filter when retrieving profiles via the Get Profiles endpoint.
         */
        _kx?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
        meta?: OnsiteProfileMeta;
    };
};

export type EventCreateQueryV2ResourceObject = {
    type: EventEnum;
    attributes: {
        /**
         * Properties of this event. Any top level property (that are not objects) can be
         * used to create segments. The $extra property is a special property. This records any
         * non-segmentable values that can be referenced later. For example, HTML templates are
         * useful on a segment but are not used to create a segment. There are limits
         * placed onto the size of the data present. This must not exceed 5 MB. This must not
         * exceed 300 event properties. A single string cannot be larger than 100 KB. The maximum allowed sum of profile strings is 100KB. Each array
         * must not exceed 4000 elements. The properties cannot contain more than 10 nested levels.
         */
        properties: {
            [key: string]: unknown;
        };
        /**
         * When this event occurred. By default, the time the request was received will be used.
         * The time is truncated to the second. The time must be after the year 2000 and can only
         * be up to 1 year in the future.
         */
        time?: string | null;
        /**
         * A numeric, monetary value to associate with this event. For example, the dollar amount of a purchase.
         */
        value?: number | null;
        /**
         * The ISO 4217 currency code of the value associated with the event.
         */
        value_currency?: string | null;
        /**
         * A unique identifier for an event. If the unique_id is repeated for the same
         * profile and metric, only the first processed event will be recorded. If this is not
         * present, this will use the time to the second. Using the default, this limits only one
         * event per profile per second.
         */
        unique_id?: string | null;
        metric: {
            data: MetricCreateQueryResourceObject;
        };
        profile: {
            data: EventProfileCreateQueryResourceObject;
        };
    };
};

export type EventCreateQueryV2 = {
    data: EventCreateQueryV2ResourceObject;
};

export type OnsiteProfileCreateQueryResourceObject = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        anonymous_id?: string | null;
        /**
         * Also known as the `exchange_id`, this is an encrypted identifier used for identifying a
         * profile by Klaviyo's web tracking.
         *
         * You can use this field as a filter when retrieving profiles via the Get Profiles endpoint.
         */
        _kx?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
    };
    meta?: OnsiteProfileMeta;
};

export type BaseEventCreateQueryBulkEntryResourceObject = {
    type: EventEnum;
    attributes: {
        /**
         * Properties of this event. Any top level property (that are not objects) can be
         * used to create segments. The $extra property is a special property. This records any
         * non-segmentable values that can be referenced later. For example, HTML templates are
         * useful on a segment but are not used to create a segment. There are limits
         * placed onto the size of the data present. This must not exceed 5 MB. This must not
         * exceed 300 event properties. A single string cannot be larger than 100 KB. The maximum allowed sum of profile strings is 100KB. Each array
         * must not exceed 4000 elements. The properties cannot contain more than 10 nested levels.
         */
        properties: {
            [key: string]: unknown;
        };
        /**
         * When this event occurred. By default, the time the request was received will be used.
         * The time is truncated to the second. The time must be after the year 2000 and can only
         * be up to 1 year in the future.
         */
        time?: string | null;
        /**
         * A numeric, monetary value to associate with this event. For example, the dollar amount of a purchase.
         */
        value?: number | null;
        /**
         * The ISO 4217 currency code of the value associated with the event.
         */
        value_currency?: string | null;
        metric: {
            data: MetricCreateQueryResourceObject;
        };
        /**
         * A unique identifier for an event. If a unique_id is repeated for the same profile and metric,
         * the request will fail and no events will be processed. If this field is not
         * present, this field will use the time to the second. Using the default, this limits only one
         * event per profile per second.
         */
        unique_id?: string | null;
    };
};

export type EventBulkCreateEnum = 'event-bulk-create';

export type EventsBulkCreateQueryResourceObject = {
    type: EventBulkCreateEnum;
    attributes: {
        profile: {
            data: OnsiteProfileCreateQueryResourceObject;
        };
        events: {
            data: Array<BaseEventCreateQueryBulkEntryResourceObject>;
        };
    };
};

export type EventBulkCreateJobEnum = 'event-bulk-create-job';

export type EventsBulkCreateJobResourceObject = {
    type: EventBulkCreateJobEnum;
    attributes: {
        'events-bulk-create': {
            data: Array<EventsBulkCreateQueryResourceObject>;
        };
    };
};

export type EventsBulkCreateJob = {
    data: EventsBulkCreateJobResourceObject;
};

export type MetricAggregateEnum = 'metric-aggregate';

export type MetricAggregateQueryResourceObject = {
    type: MetricAggregateEnum;
    attributes: {
        /**
         * The metric ID used in the aggregation.
         */
        metric_id: string;
        /**
         * Optional pagination cursor to iterate over large result sets
         */
        page_cursor?: string;
        /**
         * Measurement key, e.g. `unique`, `sum_value`, `count`
         */
        measurements: Array<'count' | 'sum_value' | 'unique'>;
        /**
         * Aggregation interval, e.g. "hour", "day", "week", "month"
         */
        interval?: 'day' | 'hour' | 'month' | 'week';
        /**
         * Alter the maximum number of returned rows in a single page of aggregation results
         */
        page_size?: number | null;
        /**
         * Optional attribute(s) used for partitioning by the aggregation function
         */
        by?: Array<'$attributed_channel' | '$attributed_flow' | '$attributed_message' | '$attributed_variation' | '$campaign_channel' | '$flow' | '$flow_channel' | '$message' | '$message_send_cohort' | '$value_currency' | '$variation' | '$variation_send_cohort' | 'Bot Click' | 'Bounce Type' | 'Campaign Name' | 'Client Canonical' | 'Client Name' | 'Client Type' | 'Email Domain' | 'Failure Source' | 'Failure Type' | 'From Number' | 'From Phone Region' | 'Inbox Provider' | 'List' | 'Message Name' | 'Message Type' | 'Method' | 'Subject' | 'To Number' | 'To Phone Region' | 'URL' | 'form_id'> | null;
        /**
         * Provide fields to limit the returned data
         */
        return_fields?: Array<string> | null;
        /**
         * List of filters, must include time range using ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
         * These filters follow a similar format to those in `GET` requests, the primary difference is that this endpoint asks for a list.
         * The time range can be filtered by providing a `greater-or-equal` and a `less-than` filter on the `datetime` field.
         */
        filter: Array<string>;
        /**
         * The timezone used for processing the query, e.g. `'America/New_York'`.
         * This field is validated against a list of common timezones from the [IANA Time Zone Database](https://www.iana.org/time-zones).
         * While most are supported, a few notable exceptions are `Factory`, `Europe/Kyiv` and `Pacific/Kanton`. This field is case-sensitive.
         */
        timezone?: string | null;
        /**
         * Provide a sort key (e.g. -$message)
         */
        sort?: '$attributed_channel' | '-$attributed_channel' | '$attributed_flow' | '-$attributed_flow' | '$attributed_message' | '-$attributed_message' | '$attributed_variation' | '-$attributed_variation' | '$campaign_channel' | '-$campaign_channel' | '$flow' | '-$flow' | '$flow_channel' | '-$flow_channel' | '$message' | '-$message' | '$message_send_cohort' | '-$message_send_cohort' | '$value_currency' | '-$value_currency' | '$variation' | '-$variation' | '$variation_send_cohort' | '-$variation_send_cohort' | 'Bot Click' | '-Bot Click' | 'Bounce Type' | '-Bounce Type' | 'Campaign Name' | '-Campaign Name' | 'Client Canonical' | '-Client Canonical' | 'Client Name' | '-Client Name' | 'Client Type' | '-Client Type' | 'Email Domain' | '-Email Domain' | 'Failure Source' | '-Failure Source' | 'Failure Type' | '-Failure Type' | 'From Number' | '-From Number' | 'From Phone Region' | '-From Phone Region' | 'Inbox Provider' | '-Inbox Provider' | 'List' | '-List' | 'Message Name' | '-Message Name' | 'Message Type' | '-Message Type' | 'Method' | '-Method' | 'Subject' | '-Subject' | 'To Number' | '-To Number' | 'To Phone Region' | '-To Phone Region' | 'URL' | '-URL' | 'count' | '-count' | 'form_id' | '-form_id' | 'sum_value' | '-sum_value' | 'unique' | '-unique';
    };
};

export type MetricAggregateQuery = {
    data: MetricAggregateQueryResourceObject;
};

export type MetricAggregateRowDto = {
    /**
     * List of dimensions associated with this set of measurements
     */
    dimensions: Array<string>;
    /**
     * Dictionary of measurement_key, values
     */
    measurements: {
        [key: string]: unknown;
    };
};

export type PostMetricAggregateResponse = {
    data: {
        type: MetricAggregateEnum;
        /**
         * Ephemeral ID associated with the aggregation query
         */
        id: string;
        attributes: {
            /**
             * The dates of the query range
             */
            dates: Array<string>;
            /**
             * Aggregation result data
             */
            data: Array<MetricAggregateRowDto>;
        };
        links: ObjectLinks;
    };
};

export type ListCreateQueryResourceObject = {
    type: ListEnum;
    attributes: {
        /**
         * A helpful name to label the list
         */
        name: string;
    };
};

export type ListCreateQuery = {
    data: ListCreateQueryResourceObject;
};

export type PostListCreateResponse = {
    data: {
        type: ListEnum;
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * A helpful name to label the list
             */
            name?: string | null;
            /**
             * Date and time when the list was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created?: string | null;
            /**
             * Date and time when the list was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated?: string | null;
            /**
             * The opt-in process for this list.  Could be either 'single_opt_in' or 'double_opt_in'.
             */
            opt_in_process?: 'double_opt_in' | 'single_opt_in';
        };
        relationships?: {
            profiles?: {
                data?: Array<{
                    type: ProfileEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ListMembersAddQuery = {
    data: Array<{
        type: ProfileEnum;
        id: string;
    }>;
};

export type SegmentCreateQueryResourceObject = {
    type: SegmentEnum;
    attributes: {
        name: string;
        definition: SegmentDefinition;
        is_starred?: boolean | null;
    };
};

export type SegmentCreateQuery = {
    data: SegmentCreateQueryResourceObject;
};

export type PostSegmentCreateResponse = {
    data: {
        type: SegmentEnum;
        id: string;
        attributes: {
            /**
             * A helpful name to label the segment
             */
            name?: string | null;
            definition?: SegmentDefinition;
            /**
             * Date and time when the segment was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created?: string | null;
            /**
             * Date and time when the segment was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated?: string | null;
            is_active: boolean;
            is_processing: boolean;
            is_starred: boolean;
        };
        relationships?: {
            profiles?: {
                data?: Array<{
                    type: ProfileEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ProfileCreateQueryResourceObject = {
    type: ProfileEnum;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
    };
};

export type ProfileCreateQuery = {
    data: ProfileCreateQueryResourceObject;
};

export type PostProfileResponse = {
    data: {
        type: ProfileEnum;
        /**
         * Primary key that uniquely identifies this profile. Generated by Klaviyo.
         */
        id?: string | null;
        attributes: {
            /**
             * Individual's email address
             */
            email?: string | null;
            /**
             * Individual's phone number in E.164 format
             */
            phone_number?: string | null;
            /**
             * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
             */
            external_id?: string | null;
            /**
             * Individual's first name
             */
            first_name?: string | null;
            /**
             * Individual's last name
             */
            last_name?: string | null;
            /**
             * Name of the company or organization within the company for whom the individual works
             */
            organization?: string | null;
            /**
             * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
             */
            locale?: string | null;
            /**
             * Individual's job title
             */
            title?: string | null;
            /**
             * URL pointing to the location of a profile image
             */
            image?: string | null;
            /**
             * Date and time when the profile was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created?: string | null;
            /**
             * Date and time when the profile was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated?: string | null;
            /**
             * Date and time of the most recent event the triggered an update to the profile, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            last_event_date?: string | null;
            location?: ProfileLocation;
            /**
             * An object containing key/value pairs for any custom properties assigned to this profile
             */
            properties?: {
                [key: string]: unknown;
            } | null;
            subscriptions?: Subscriptions;
            predictive_analytics?: PredictiveAnalytics;
        };
        relationships?: {
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            segments?: {
                data?: Array<{
                    type: SegmentEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'push-tokens'?: {
                data?: Array<{
                    type: PushTokenEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ProfileMeta = {
    patch_properties?: ProfileMetaPatchProperties;
};

export type ProfileUpsertQueryResourceObject = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        /**
         * Id that can be used to identify a profile when other identifiers are not available
         */
        anonymous_id?: string | null;
        /**
         * Also known as the `exchange_id`, this is an encrypted identifier used for identifying a
         * profile by Klaviyo's web tracking.
         *
         * You can use this field as a filter when retrieving profiles via the Get Profiles endpoint.
         */
        _kx?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
    };
    meta?: ProfileMeta;
};

export type ProfileImportJobCreateQueryResourceObject = {
    type: ProfileBulkImportJobEnum;
    attributes: {
        /**
         * Array of profiles to create or update
         */
        profiles: {
            data: Array<ProfileUpsertQueryResourceObject>;
        };
    };
    relationships?: {
        lists?: {
            data?: Array<{
                type: ListEnum;
                /**
                 * Optional list to add the profiles to
                 */
                id: string;
            }>;
        };
    };
};

export type ProfileImportJobCreateQuery = {
    data: ProfileImportJobCreateQueryResourceObject;
};

export type PostProfileImportJobResponse = {
    data: {
        type: ProfileBulkImportJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
            /**
             * Date and time the job started processing in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            started_at?: string | null;
        };
        relationships?: {
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    /**
                     * List to add the profiles to
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            profiles?: {
                data?: Array<{
                    type: ProfileEnum;
                    /**
                     * IDs of the created/updated profiles
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'import-errors'?: {
                data?: Array<{
                    type: ImportErrorEnum;
                    /**
                     * Errors encountering during import
                     */
                    id: string;
                }>;
                links?: OnlyRelatedLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ProfileUpsertQuery = {
    data: ProfileUpsertQueryResourceObject;
};

export type ProfileMergeEnum = 'profile-merge';

export type ProfileMergeQueryResourceObject = {
    type: ProfileMergeEnum;
    /**
     * The ID of the destination profile to merge into
     */
    id: string;
    relationships: {
        profiles: {
            data?: Array<{
                type: ProfileEnum;
                /**
                 * The ID of a source profile to merge into the destination profile
                 */
                id: string;
            }>;
        };
    };
};

export type ProfileMergeQuery = {
    data: ProfileMergeQueryResourceObject;
};

export type PostProfileMergeResponse = {
    data: {
        type: ProfileEnum;
        /**
         * The ID of the destination profile that was merged into
         */
        id: string;
        links: ObjectLinks;
    };
};

export type FlowCreateQueryResourceObject = {
    type: FlowEnum;
    attributes: {
        /**
         * The name of the Flow
         */
        name: string;
        definition: FlowDefinition;
    };
};

export type FlowCreateQuery = {
    data: FlowCreateQueryResourceObject;
};

export type PostFlowV2Response = {
    data: {
        type: FlowEnum;
        id: string;
        attributes: {
            name?: string | null;
            status?: string | null;
            archived?: boolean | null;
            created?: string | null;
            updated?: string | null;
            /**
             * Corresponds to the object which triggered the flow.
             */
            trigger_type?: 'Added to List' | 'Date Based' | 'Low Inventory' | 'Metric' | 'Price Drop' | 'Unconfigured';
            definition?: FlowDefinition;
        };
        relationships?: {
            'flow-actions'?: {
                data?: Array<{
                    type: FlowActionEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type SmsContentCreate = {
    /**
     * The message body
     */
    body?: string | null;
};

export type SmsMessageDefinitionCreate = {
    channel: SmsEnum;
    content?: SmsContentCreate;
    render_options?: RenderOptions;
};

export type MobilePushContentCreate = {
    /**
     * The title of the message
     */
    title?: string | null;
    /**
     * The message body
     */
    body: string;
    /**
     * The dynamic image to be used in the push notification
     */
    dynamic_image?: string | null;
};

export type MobilePushMessageStandardDefinitionCreate = {
    channel: MobilePushEnum;
    content: MobilePushContentCreate;
    /**
     * The key-value pairs to be sent with the push notification
     */
    kv_pairs?: {
        [key: string]: unknown;
    } | null;
    options?: MobilePushOptions;
    notification_type?: StandardEnum;
};

export type MobilePushMessageSilentDefinitionCreate = {
    channel: MobilePushEnum;
    /**
     * The key-value pairs to be sent with the push notification
     */
    kv_pairs?: {
        [key: string]: unknown;
    } | null;
    notification_type?: SilentEnum;
};

export type CampaignMessageCreateQueryResourceObject = {
    type: CampaignMessageEnum;
    attributes: {
        definition: EmailMessageDefinition | SmsMessageDefinitionCreate | MobilePushMessageStandardDefinitionCreate | MobilePushMessageSilentDefinitionCreate;
    };
    relationships?: {
        image?: {
            data?: {
                type: ImageEnum;
                /**
                 * The associated image for mobile_push messages
                 */
                id: string;
            };
        };
    };
};

export type CampaignCreateQueryResourceObject = {
    type: CampaignEnum;
    attributes: {
        /**
         * The campaign name
         */
        name: string;
        audiences: Audiences;
        /**
         * The send strategy the campaign will send with. Defaults to 'Immediate' send strategy.
         */
        send_strategy?: StaticSendStrategy | ThrottledSendStrategy | ImmediateSendStrategy | SmartSendTimeStrategy | null;
        /**
         * Options to use when sending a campaign
         */
        send_options?: EmailSendOptions | SmsSendOptions | PushSendOptions | null;
        /**
         * The tracking options associated with the campaign
         */
        tracking_options?: CampaignsEmailTrackingOptions | CampaignsSmsTrackingOptions | null;
        /**
         * The message(s) associated with the campaign
         */
        'campaign-messages': {
            data: Array<CampaignMessageCreateQueryResourceObject>;
        };
    };
};

export type CampaignCreateQuery = {
    data: CampaignCreateQueryResourceObject;
};

export type PostCampaignResponse = {
    data: {
        type: CampaignEnum;
        /**
         * The campaign ID
         */
        id: string;
        attributes: {
            /**
             * The campaign name
             */
            name: string;
            /**
             * The current status of the campaign
             */
            status: 'Adding Recipients' | 'Cancelled' | 'Cancelled: Account Disabled' | 'Cancelled: Internal Error' | 'Cancelled: No Recipients' | 'Cancelled: Smart Sending' | 'Draft' | 'Preparing to schedule' | 'Preparing to send' | 'Queued without Recipients' | 'Scheduled' | 'Sending' | 'Sending Segments' | 'Sent' | 'Unknown' | 'Variations Sent';
            /**
             * Whether the campaign has been archived or not
             */
            archived: boolean;
            audiences: Audiences;
            /**
             * Options to use when sending a campaign
             */
            send_options: EmailSendOptions | SmsSendOptions | PushSendOptions;
            /**
             * The tracking options associated with the campaign
             */
            tracking_options?: CampaignsEmailTrackingOptions | CampaignsSmsTrackingOptions | null;
            /**
             * The send strategy the campaign will send with
             */
            send_strategy: StaticSendStrategy | ThrottledSendStrategy | ImmediateSendStrategy | SmartSendTimeStrategy | AbTestSendStrategy | UnsupportedSendStrategy;
            /**
             * The datetime when the campaign was created
             */
            created_at: string;
            /**
             * The datetime when the campaign was scheduled for future sending
             */
            scheduled_at?: string | null;
            /**
             * The datetime when the campaign was last updated by a user or the system
             */
            updated_at: string;
            /**
             * The datetime when the campaign will be / was sent or None if not yet scheduled by a send_job.
             */
            send_time?: string | null;
        };
        relationships?: {
            'campaign-messages'?: {
                data?: Array<{
                    type: CampaignMessageEnum;
                    /**
                     * The message(s) associated with the campaign
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CampaignCloneQueryResourceObject = {
    type: CampaignEnum;
    /**
     * The campaign ID to be cloned
     */
    id: string;
    attributes: {
        /**
         * The name for the new cloned campaign
         */
        new_name?: string | null;
    };
};

export type CampaignCloneQuery = {
    data: CampaignCloneQueryResourceObject;
};

export type CampaignMessageAssignTemplateQueryResourceObject = {
    type: CampaignMessageEnum;
    /**
     * The message ID to be assigned to
     */
    id: string;
    relationships: {
        template: {
            data?: {
                type: TemplateEnum;
                /**
                 * The template ID to assign
                 */
                id: string;
            };
        };
    };
};

export type CampaignMessageAssignTemplateQuery = {
    data: CampaignMessageAssignTemplateQueryResourceObject;
};

export type EmailContentSubObject = {
    /**
     * The subject of the message
     */
    subject?: string | null;
    /**
     * Preview text associated with the message
     */
    preview_text?: string | null;
    /**
     * The email the message should be sent from
     */
    from_email?: string | null;
    /**
     * The label associated with the from_email
     */
    from_label?: string | null;
    /**
     * Optional Reply-To email address
     */
    reply_to_email?: string | null;
    /**
     * Optional CC email address
     */
    cc_email?: string | null;
    /**
     * Optional BCC email address
     */
    bcc_email?: string | null;
};

export type SmsContentSubObject = {
    /**
     * The message body
     */
    body?: string | null;
    /**
     * URL for included media
     */
    media_url?: string | null;
};

export type SendTimeSubObject = {
    /**
     * The datetime that the message is to be sent
     */
    datetime: string;
    /**
     * Whether that datetime is to be a local datetime for the recipient
     */
    is_local: boolean;
};

export type RenderOptionsSubObject = {
    shorten_links?: boolean | null;
    add_org_prefix?: boolean | null;
    add_info_link?: boolean | null;
    add_opt_out_language?: boolean | null;
};

export type PostCampaignMessageResponse = {
    data: {
        type: CampaignMessageEnum;
        /**
         * The message ID
         */
        id: string;
        attributes: {
            /**
             * The label or name on the message
             */
            label: string;
            /**
             * The channel the message is to be sent on
             */
            channel: string;
            /**
             * Additional attributes relating to the content of the message
             */
            content: EmailContentSubObject | SmsContentSubObject;
            /**
             * The list of appropriate Send Time Sub-objects associated with the message
             */
            send_times?: Array<SendTimeSubObject> | null;
            render_options?: RenderOptionsSubObject;
            /**
             * The datetime when the message was created
             */
            created_at?: string | null;
            /**
             * The datetime when the message was last updated
             */
            updated_at?: string | null;
        };
        relationships?: {
            campaign?: {
                data?: {
                    type: CampaignEnum;
                    /**
                     * The parent campaign id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            template?: {
                data?: {
                    type: TemplateEnum;
                    /**
                     * The associated template id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CampaignSendJobCreateQueryResourceObject = {
    type: CampaignSendJobEnum;
    /**
     * The ID of the campaign to send
     */
    id: string;
};

export type CampaignSendJobCreateQuery = {
    data: CampaignSendJobCreateQueryResourceObject;
};

export type PostCampaignSendJobResponse = {
    data: {
        type: CampaignSendJobEnum;
        /**
         * The ID of the campaign to send
         */
        id: string;
        attributes: {
            /**
             * The status of the send job
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
        };
        links: ObjectLinks;
    };
};

export type CampaignRecipientEstimationJobCreateQueryResourceObject = {
    type: CampaignRecipientEstimationJobEnum;
    /**
     * The ID of the campaign to perform recipient estimation
     */
    id: string;
};

export type CampaignRecipientEstimationJobCreateQuery = {
    data: CampaignRecipientEstimationJobCreateQueryResourceObject;
};

export type PostCampaignRecipientEstimationJobResponse = {
    data: {
        type: CampaignRecipientEstimationJobEnum;
        /**
         * The ID of the campaign used for estimating recipients
         */
        id: string;
        attributes: {
            /**
             * The status of the recipient estimation job
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
        };
        links: ObjectLinks;
    };
};

export type TemplateCreateQueryResourceObject = {
    type: TemplateEnum;
    attributes: {
        /**
         * The name of the template
         */
        name: string;
        /**
         * Restricted to CODE and USER_DRAGGABLE
         */
        editor_type: string;
        /**
         * The HTML contents of the template
         */
        html?: string | null;
        /**
         * The plaintext version of the template
         */
        text?: string | null;
        /**
         * The AMP version of the template. Requires AMP Email to be enabled to access in-app. Refer to the AMP Email setup guide at https://developers.klaviyo.com/en/docs/send_amp_emails_in_klaviyo
         */
        amp?: string | null;
    };
};

export type TemplateCreateQuery = {
    data: TemplateCreateQueryResourceObject;
};

export type PostTemplateResponse = {
    data: {
        type: TemplateEnum;
        /**
         * The ID of template
         */
        id: string;
        attributes: {
            /**
             * The name of the template
             */
            name: string;
            /**
             * `editor_type` has a fixed set of values:
             * * SYSTEM_DRAGGABLE: indicates a drag-and-drop editor template
             * * SIMPLE: A rich text editor template
             * * CODE: A custom HTML template
             * * USER_DRAGGABLE: A hybrid template, using custom HTML in the drag-and-drop editor
             */
            editor_type: string;
            /**
             * The rendered HTML of the template
             */
            html: string;
            /**
             * The template plain_text
             */
            text?: string | null;
            /**
             * The AMP version of the template. Requires AMP Email to be enabled to access in-app. Refer to the AMP Email setup guide at https://developers.klaviyo.com/en/docs/send_amp_emails_in_klaviyo
             */
            amp?: string | null;
            /**
             * The date the template was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created?: string | null;
            /**
             * The date the template was updated in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated?: string | null;
        };
        links: ObjectLinks;
    };
};

export type TemplateRenderQueryResourceObject = {
    type: TemplateEnum;
    /**
     * The ID of template
     */
    id: string;
    attributes: {
        /**
         * The context for the template render. This must be a JSON object which has values for any tags used in the template. See [this doc](https://help.klaviyo.com/hc/en-us/articles/4408802648731) for more details.
         */
        context: {
            [key: string]: unknown;
        };
    };
};

export type TemplateRenderQuery = {
    data: TemplateRenderQueryResourceObject;
};

export type TemplateCloneQueryResourceObject = {
    type: TemplateEnum;
    /**
     * The ID of template to be cloned
     */
    id: string;
    attributes: {
        /**
         * The name of the template
         */
        name?: string | null;
    };
};

export type TemplateCloneQuery = {
    data: TemplateCloneQueryResourceObject;
};

export type CatalogItemCreateJobCreateQueryResourceObject = {
    type: CatalogItemBulkCreateJobEnum;
    attributes: {
        /**
         * Array of catalog items to create.
         */
        items: {
            data: Array<CatalogItemCreateQueryResourceObject>;
        };
    };
};

export type CatalogItemCreateJobCreateQuery = {
    data: CatalogItemCreateJobCreateQueryResourceObject;
};

export type PostCatalogItemCreateJobResponse = {
    data: {
        type: CatalogItemBulkCreateJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    /**
                     * IDs of the created catalog items.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogItemUpdateQueryResourceObject = {
    type: CatalogItemEnum;
    /**
     * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
    attributes: {
        /**
         * The title of the catalog item.
         */
        title?: string | null;
        /**
         * This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).
         */
        price?: number | null;
        /**
         * A description of the catalog item.
         */
        description?: string | null;
        /**
         * URL pointing to the location of the catalog item on your website.
         */
        url?: string | null;
        /**
         * URL pointing to the location of a full image of the catalog item.
         */
        image_full_url?: string | null;
        /**
         * URL pointing to the location of an image thumbnail of the catalog item
         */
        image_thumbnail_url?: string | null;
        /**
         * List of URLs pointing to the locations of images of the catalog item.
         */
        images?: Array<string> | null;
        /**
         * Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.
         */
        custom_metadata?: {
            [key: string]: unknown;
        } | null;
        /**
         * Boolean value indicating whether the catalog item is published.
         */
        published?: boolean | null;
    };
    relationships?: {
        categories?: {
            data?: Array<{
                type: CatalogCategoryEnum;
                /**
                 * A list of catalog category IDs representing the categories the item is in
                 */
                id: string;
            }>;
        };
    };
};

export type CatalogItemUpdateJobCreateQueryResourceObject = {
    type: CatalogItemBulkUpdateJobEnum;
    attributes: {
        /**
         * Array of catalog items to update.
         */
        items: {
            data: Array<CatalogItemUpdateQueryResourceObject>;
        };
    };
};

export type CatalogItemUpdateJobCreateQuery = {
    data: CatalogItemUpdateJobCreateQueryResourceObject;
};

export type PostCatalogItemUpdateJobResponse = {
    data: {
        type: CatalogItemBulkUpdateJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    /**
                     * IDs of the updated catalog items.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogItemDeleteQueryResourceObject = {
    type: CatalogItemEnum;
    /**
     * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
};

export type CatalogItemDeleteJobCreateQueryResourceObject = {
    type: CatalogItemBulkDeleteJobEnum;
    attributes: {
        /**
         * Array of catalog items to delete.
         */
        items: {
            data: Array<CatalogItemDeleteQueryResourceObject>;
        };
    };
};

export type CatalogItemDeleteJobCreateQuery = {
    data: CatalogItemDeleteJobCreateQueryResourceObject;
};

export type PostCatalogItemDeleteJobResponse = {
    data: {
        type: CatalogItemBulkDeleteJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    /**
                     * IDs of the deleted catalog items.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogVariantCreateJobCreateQueryResourceObject = {
    type: CatalogVariantBulkCreateJobEnum;
    attributes: {
        /**
         * Array of catalog variants to create.
         */
        variants: {
            data: Array<CatalogVariantCreateQueryResourceObject>;
        };
    };
};

export type CatalogVariantCreateJobCreateQuery = {
    data: CatalogVariantCreateJobCreateQueryResourceObject;
};

export type PostCatalogVariantCreateJobResponse = {
    data: {
        type: CatalogVariantBulkCreateJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    /**
                     * IDs of the created catalog variants.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogVariantUpdateQueryResourceObject = {
    type: CatalogVariantEnum;
    /**
     * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
    attributes: {
        /**
         * The title of the catalog item variant.
         */
        title?: string | null;
        /**
         * A description of the catalog item variant.
         */
        description?: string | null;
        /**
         * The SKU of the catalog item variant.
         */
        sku?: string | null;
        /**
         * This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:
         * `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.
         * `0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.
         */
        inventory_policy?: 0 | 1 | 2;
        /**
         * The quantity of the catalog item variant currently in stock.
         */
        inventory_quantity?: number | null;
        /**
         * This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).
         */
        price?: number | null;
        /**
         * URL pointing to the location of the catalog item variant on your website.
         */
        url?: string | null;
        /**
         * URL pointing to the location of a full image of the catalog item variant.
         */
        image_full_url?: string | null;
        /**
         * URL pointing to the location of an image thumbnail of the catalog item variant.
         */
        image_thumbnail_url?: string | null;
        /**
         * List of URLs pointing to the locations of images of the catalog item variant.
         */
        images?: Array<string> | null;
        /**
         * Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.
         */
        custom_metadata?: {
            [key: string]: unknown;
        } | null;
        /**
         * Boolean value indicating whether the catalog item variant is published.
         */
        published?: boolean | null;
    };
};

export type CatalogVariantUpdateJobCreateQueryResourceObject = {
    type: CatalogVariantBulkUpdateJobEnum;
    attributes: {
        /**
         * Array of catalog variants to update.
         */
        variants: {
            data: Array<CatalogVariantUpdateQueryResourceObject>;
        };
    };
};

export type CatalogVariantUpdateJobCreateQuery = {
    data: CatalogVariantUpdateJobCreateQueryResourceObject;
};

export type PostCatalogVariantUpdateJobResponse = {
    data: {
        type: CatalogVariantBulkUpdateJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    /**
                     * IDs of the updated catalog variants.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogVariantDeleteQueryResourceObject = {
    type: CatalogVariantEnum;
    /**
     * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
};

export type CatalogVariantDeleteJobCreateQueryResourceObject = {
    type: CatalogVariantBulkDeleteJobEnum;
    attributes: {
        /**
         * Array of catalog variants to delete.
         */
        variants: {
            data: Array<CatalogVariantDeleteQueryResourceObject>;
        };
    };
};

export type CatalogVariantDeleteJobCreateQuery = {
    data: CatalogVariantDeleteJobCreateQueryResourceObject;
};

export type PostCatalogVariantDeleteJobResponse = {
    data: {
        type: CatalogVariantBulkDeleteJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    /**
                     * IDs of the deleted catalog variants.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogCategoryCreateJobCreateQueryResourceObject = {
    type: CatalogCategoryBulkCreateJobEnum;
    attributes: {
        /**
         * Array of catalog categories to create.
         */
        categories: {
            data: Array<CatalogCategoryCreateQueryResourceObject>;
        };
    };
};

export type CatalogCategoryCreateJobCreateQuery = {
    data: CatalogCategoryCreateJobCreateQueryResourceObject;
};

export type PostCatalogCategoryCreateJobResponse = {
    data: {
        type: CatalogCategoryBulkCreateJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            categories?: {
                data?: Array<{
                    type: CatalogCategoryEnum;
                    /**
                     * IDs of the created catalog categories.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogCategoryUpdateQueryResourceObject = {
    type: CatalogCategoryEnum;
    /**
     * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
    attributes: {
        /**
         * The name of the catalog category.
         */
        name?: string | null;
    };
    relationships?: {
        items?: {
            data?: Array<{
                type: CatalogItemEnum;
                /**
                 * A list of catalog item IDs that are in the given category.
                 */
                id: string;
            }>;
        };
    };
};

export type CatalogCategoryUpdateJobCreateQueryResourceObject = {
    type: CatalogCategoryBulkUpdateJobEnum;
    attributes: {
        /**
         * Array of catalog categories to update.
         */
        categories: {
            data: Array<CatalogCategoryUpdateQueryResourceObject>;
        };
    };
};

export type CatalogCategoryUpdateJobCreateQuery = {
    data: CatalogCategoryUpdateJobCreateQueryResourceObject;
};

export type PostCatalogCategoryUpdateJobResponse = {
    data: {
        type: CatalogCategoryBulkUpdateJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            categories?: {
                data?: Array<{
                    type: CatalogCategoryEnum;
                    /**
                     * IDs of the updated catalog categories.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogCategoryDeleteQueryResourceObject = {
    type: CatalogCategoryEnum;
    /**
     * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
     */
    id: string;
};

export type CatalogCategoryDeleteJobCreateQueryResourceObject = {
    type: CatalogCategoryBulkDeleteJobEnum;
    attributes: {
        /**
         * Array of catalog categories to delete.
         */
        categories: {
            data: Array<CatalogCategoryDeleteQueryResourceObject>;
        };
    };
};

export type CatalogCategoryDeleteJobCreateQuery = {
    data: CatalogCategoryDeleteJobCreateQueryResourceObject;
};

export type PostCatalogCategoryDeleteJobResponse = {
    data: {
        type: CatalogCategoryBulkDeleteJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * The total number of operations that have failed as part of the job.
             */
            failed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * Array of errors encountered during the processing of the job.
             */
            errors?: Array<ApiJobErrorPayload> | null;
            /**
             * Date and time the job expires in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            expires_at?: string | null;
        };
        relationships?: {
            categories?: {
                data?: Array<{
                    type: CatalogCategoryEnum;
                    /**
                     * IDs of the deleted catalog categories.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type TagCreateQueryResourceObject = {
    type: TagEnum;
    attributes: {
        /**
         * The Tag name
         */
        name: string;
    };
    relationships?: {
        'tag-group'?: {
            data?: {
                type: TagGroupEnum;
                /**
                 * The ID of the Tag Group to associate the Tag with. If this field is not specified, the Tag will be associated with the company's Default Tag Group.
                 */
                id: string;
            };
        };
    };
};

export type TagCreateQuery = {
    data: TagCreateQueryResourceObject;
};

export type PostTagResponse = {
    data: {
        type: TagEnum;
        /**
         * The Tag ID
         */
        id: string;
        attributes: {
            /**
             * The Tag name
             */
            name: string;
        };
        relationships?: {
            'tag-group'?: {
                data?: {
                    type: TagGroupEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            segments?: {
                data?: Array<{
                    type: SegmentEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            campaigns?: {
                data?: Array<{
                    type: CampaignEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            flows?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type TagGroupCreateQueryResourceObject = {
    type: TagGroupEnum;
    attributes: {
        /**
         * The Tag Group name
         */
        name: string;
        exclusive?: boolean | null;
    };
};

export type TagGroupCreateQuery = {
    data: TagGroupCreateQueryResourceObject;
};

export type PostTagGroupResponse = {
    data: {
        type: TagGroupEnum;
        /**
         * The Tag Group ID
         */
        id: string;
        attributes: {
            /**
             * The Tag Group name
             */
            name: string;
            /**
             * If a tag group is non-exclusive, any given related resource (campaign, flow, etc.) can be linked to multiple tags from that tag group. If a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.
             */
            exclusive: boolean;
            /**
             * Every company automatically has one Default Tag Group. The Default Tag Group cannot be deleted, and no other Default Tag Groups can be created. This value is true for the Default Tag Group and false for all other Tag Groups.
             */
            default: boolean;
        };
        relationships?: {
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type TagFlowOp = {
    data: Array<{
        type: FlowEnum;
        /**
         * The IDs of the flows to link or unlink with the given Tag ID
         */
        id: string;
    }>;
};

export type TagCampaignOp = {
    data: Array<{
        type: CampaignEnum;
        /**
         * The IDs of the campaigns to link or unlink with the given Tag ID
         */
        id: string;
    }>;
};

export type TagListOp = {
    data: Array<{
        type: ListEnum;
        /**
         * The IDs of the lists to link or unlink with the given Tag ID
         */
        id: string;
    }>;
};

export type TagSegmentOp = {
    data: Array<{
        type: SegmentEnum;
        /**
         * The IDs of the segments to link or unlink with the given Tag ID
         */
        id: string;
    }>;
};

export type WebhookCreateQueryResourceObject = {
    type: WebhookEnum;
    attributes: {
        /**
         * A name for the webhook.
         */
        name: string;
        /**
         * A description for the webhook.
         */
        description?: string | null;
        /**
         * A url to send webhook calls to. Must be https.
         */
        endpoint_url: string;
        /**
         * A secret key, that will be used for webhook request signing.
         */
        secret_key: string;
    };
    relationships: {
        'webhook-topics': {
            data?: Array<{
                type: WebhookTopicEnum;
                /**
                 * A list of topics to subscribe to.
                 */
                id: string;
            }>;
        };
    };
};

export type WebhookCreateQuery = {
    data: WebhookCreateQueryResourceObject;
};

export type PostWebhookResponse = {
    data: {
        type: WebhookEnum;
        /**
         * The ID of the webhook.
         */
        id: string;
        attributes: {
            /**
             * A name for the webhook.
             */
            name: string;
            /**
             * A description for the webhook.
             */
            description?: string | null;
            /**
             * The url to send webhook requests to, truncated for security.
             */
            endpoint_url: string;
            /**
             * Is the webhook enabled.
             */
            enabled: boolean;
            /**
             * Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created_at: string;
            /**
             * Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated_at: string;
        };
        relationships?: {
            'webhook-topics'?: {
                data?: Array<{
                    type: WebhookTopicEnum;
                    /**
                     * A topic the webhook is subscribed to.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ProfileSuppressionCreateQueryResourceObject = {
    type: ProfileEnum;
    attributes: {
        /**
         * The email of the profile to suppress.
         */
        email: string;
    };
};

export type SuppressionCreateJobCreateQueryResourceObject = {
    type: ProfileSuppressionBulkCreateJobEnum;
    attributes: {
        /**
         * The profile(s) to create suppressions for.
         */
        profiles?: {
            data: Array<ProfileSuppressionCreateQueryResourceObject>;
        } | null;
    };
    relationships?: {
        list?: {
            data?: {
                type: ListEnum;
                /**
                 * Suppress all profiles in this list
                 */
                id: string;
            };
        };
        segment?: {
            data?: {
                type: SegmentEnum;
                /**
                 * Suppress all profiles in this segment
                 */
                id: string;
            };
        };
    };
};

export type SuppressionCreateJobCreateQuery = {
    data: SuppressionCreateJobCreateQueryResourceObject;
};

export type PostBulkProfileSuppressionsCreateJobResponse = {
    data: {
        type: ProfileSuppressionBulkCreateJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * The total number of profiles that have been skipped as part of the job.
             */
            skipped_count?: number | null;
        };
        relationships?: {
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    /**
                     * Suppress/Unsuppress all profiles in this list
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            segments?: {
                data?: Array<{
                    type: SegmentEnum;
                    /**
                     * Suppress/Unsuppress all profiles in this segment
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ProfileSuppressionDeleteQueryResourceObject = {
    type: ProfileEnum;
    attributes: {
        /**
         * The email of the profile to unsuppress.
         */
        email: string;
    };
};

export type SuppressionDeleteJobCreateQueryResourceObject = {
    type: ProfileSuppressionBulkDeleteJobEnum;
    attributes: {
        /**
         * The profile(s) to remove suppressions for.
         */
        profiles?: {
            data: Array<ProfileSuppressionDeleteQueryResourceObject>;
        } | null;
    };
    relationships?: {
        list?: {
            data?: {
                type: ListEnum;
                /**
                 * The list to pull the profiles to remove suppressions from
                 */
                id: string;
            };
        };
        segment?: {
            data?: {
                type: SegmentEnum;
                /**
                 * The segment to pull the profiles to remove suppressions from
                 */
                id: string;
            };
        };
    };
};

export type SuppressionDeleteJobCreateQuery = {
    data: SuppressionDeleteJobCreateQueryResourceObject;
};

export type PostBulkProfileSuppressionsRemoveJobResponse = {
    data: {
        type: ProfileSuppressionBulkDeleteJobEnum;
        /**
         * Unique identifier for retrieving the job. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * Status of the asynchronous job.
             */
            status: 'cancelled' | 'complete' | 'processing' | 'queued';
            /**
             * The date and time the job was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created_at: string;
            /**
             * The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
             */
            total_count: number;
            /**
             * The total number of operations that have been completed by the job.
             */
            completed_count?: number | null;
            /**
             * Date and time the job was completed in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            completed_at?: string | null;
            /**
             * The total number of profiles that have been skipped as part of the job.
             */
            skipped_count?: number | null;
        };
        relationships?: {
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    /**
                     * Suppress/Unsuppress all profiles in this list
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            segments?: {
                data?: Array<{
                    type: SegmentEnum;
                    /**
                     * Suppress/Unsuppress all profiles in this segment
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type SubscriptionParameters = {
    /**
     * The Consent status to be set as part of the subscribe call. Currently supports "SUBSCRIBED".
     */
    consent: 'SUBSCRIBED';
    /**
     * The timestamp of when the profile's consent was gathered. This should only be used when syncing over historical consent info to Klaviyo; if the `historical_import` flag is not included, providing any value for this field will raise an error.
     */
    consented_at?: string | null;
};

export type EmailSubscriptionParameters = {
    marketing: SubscriptionParameters;
};

export type SmsSubscriptionParameters = {
    marketing?: SubscriptionParameters;
    transactional?: SubscriptionParameters;
};

export type SubscriptionChannels = {
    email?: EmailSubscriptionParameters;
    sms?: SmsSubscriptionParameters;
};

export type ProfileSubscriptionCreateQueryResourceObject = {
    type: ProfileEnum;
    /**
     * The ID of the profile to subscribe. If provided, this will be used to perform the lookup.
     */
    id?: string | null;
    attributes: {
        /**
         * The email address relating to the email subscription included in `subscriptions`. If the email channel is omitted from `subscriptions`, this will be set on the profile.
         */
        email?: string | null;
        /**
         * The phone number relating to the SMS subscription included in `subscriptions`. If the SMS channel is omitted from `subscriptions`, this will be set on the profile. This must be in E.164 format.
         */
        phone_number?: string | null;
        subscriptions: SubscriptionChannels;
        /**
         * The profile's date of birth. This field is required to update SMS consent for accounts using age-gating: https://help.klaviyo.com/hc/en-us/articles/17252552814875
         */
        age_gated_date_of_birth?: string | null;
    };
};

export type ProfileSubscriptionBulkCreateJobEnum = 'profile-subscription-bulk-create-job';

export type SubscriptionCreateJobCreateQueryResourceObject = {
    type: ProfileSubscriptionBulkCreateJobEnum;
    attributes: {
        /**
         * A custom method detail or source to store on the consent records.
         */
        custom_source?: string | null;
        /**
         * The profile(s) to subscribe
         */
        profiles: {
            data: Array<ProfileSubscriptionCreateQueryResourceObject>;
        };
        /**
         * Whether this subscription is part of a historical import. If true, the consented_at field must be provided for each profile.
         */
        historical_import?: boolean | null;
    };
    relationships?: {
        list?: {
            data?: {
                type: ListEnum;
                /**
                 * The list to add the newly subscribed profiles to
                 */
                id: string;
            };
        };
    };
};

export type SubscriptionCreateJobCreateQuery = {
    data: SubscriptionCreateJobCreateQueryResourceObject;
};

export type UnsubscriptionParameters = {
    /**
     * The Consent status to be set as part of the unsubscribe call. Currently supports "UNSUBSCRIBED".
     */
    consent: 'UNSUBSCRIBED';
};

export type EmailUnsubscriptionParameters = {
    marketing: UnsubscriptionParameters;
};

export type SmsUnsubscriptionParameters = {
    marketing?: UnsubscriptionParameters;
    transactional?: UnsubscriptionParameters;
};

export type UnsubscriptionChannels = {
    email?: EmailUnsubscriptionParameters;
    sms?: SmsUnsubscriptionParameters;
};

export type ProfileSubscriptionDeleteQueryResourceObject = {
    type: ProfileEnum;
    attributes: {
        /**
         * The email address to unsubscribe.
         */
        email?: string | null;
        /**
         * The phone number to unsubscribe. This must be in E.164 format.
         */
        phone_number?: string | null;
        subscriptions: UnsubscriptionChannels;
    };
};

export type ProfileSubscriptionBulkDeleteJobEnum = 'profile-subscription-bulk-delete-job';

export type SubscriptionDeleteJobCreateQueryResourceObject = {
    type: ProfileSubscriptionBulkDeleteJobEnum;
    attributes: {
        /**
         * The profile(s) to unsubscribe
         */
        profiles: {
            data: Array<ProfileSubscriptionDeleteQueryResourceObject>;
        };
    };
    relationships?: {
        list?: {
            data?: {
                type: ListEnum;
                /**
                 * The list to remove the profiles from
                 */
                id: string;
            };
        };
    };
};

export type SubscriptionDeleteJobCreateQuery = {
    data: SubscriptionDeleteJobCreateQueryResourceObject;
};

export type DataPrivacyProfileQueryResourceObject = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
    };
};

export type DataPrivacyDeletionJobEnum = 'data-privacy-deletion-job';

export type DataPrivacyCreateDeletionJobQueryResourceObject = {
    type: DataPrivacyDeletionJobEnum;
    attributes: {
        profile: {
            data: DataPrivacyProfileQueryResourceObject;
        };
    };
};

export type DataPrivacyCreateDeletionJobQuery = {
    data: DataPrivacyCreateDeletionJobQueryResourceObject;
};

export type PushProfileUpsertQueryResourceObject = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        /**
         * Id that can be used to identify a profile when other identifiers are not available
         */
        anonymous_id?: string | null;
        /**
         * Also known as the `exchange_id`, this is an encrypted identifier used for identifying a
         * profile by Klaviyo's web tracking.
         *
         * You can use this field as a filter when retrieving profiles via the Get Profiles endpoint.
         */
        _kx?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
        meta?: ProfileMeta;
        /**
         * Individual's email address
         */
        email?: string | null;
    };
};

export type PushTokenCreateQueryResourceObject = {
    type: PushTokenEnum;
    attributes: {
        /**
         * A push token from APNS or FCM.
         */
        token: string;
        /**
         * The platform on which the push token was created.
         */
        platform: 'android' | 'ios';
        /**
         * This is the enablement status for the individual push token.
         */
        enablement_status?: 'AUTHORIZED' | 'DENIED' | 'NOT_DETERMINED' | 'PROVISIONAL' | 'UNAUTHORIZED';
        /**
         * The vendor of the push token.
         */
        vendor: 'apns' | 'fcm';
        /**
         * The background state of the push token.
         */
        background?: 'AVAILABLE' | 'DENIED' | 'RESTRICTED';
        device_metadata?: DeviceMetadata;
        /**
         * The profile associated with the push token to create/update
         */
        profile: {
            data: PushProfileUpsertQueryResourceObject;
        };
    };
};

export type PushTokenCreateQuery = {
    data: PushTokenCreateQueryResourceObject;
};

export type ImageCreateQueryResourceObject = {
    type: ImageEnum;
    attributes: {
        /**
         * A name for the image.  Defaults to the filename if not provided.  If the name matches an existing image, a suffix will be added.
         */
        name?: string | null;
        /**
         * An existing image url to import the image from. Alternatively, you may specify a base-64 encoded data-uri (`data:image/...`). Supported image formats: jpeg,png,gif. Maximum image size: 5MB.
         */
        import_from_url: string;
        /**
         * If true, this image is not shown in the asset library.
         */
        hidden?: boolean | null;
    };
};

export type ImageCreateQuery = {
    data: ImageCreateQueryResourceObject;
};

export type PostImageResponse = {
    data: {
        type: ImageEnum;
        /**
         * The ID of the image
         */
        id: string;
        attributes: {
            name: string;
            image_url: string;
            format: string;
            size: number;
            hidden: boolean;
            updated_at: string;
        };
        links: ObjectLinks;
    };
};

export type Timeframe = {
    /**
     * Pre-defined key that represents a set timeframe
     */
    key: 'last_12_months' | 'last_30_days' | 'last_365_days' | 'last_3_months' | 'last_7_days' | 'last_90_days' | 'last_month' | 'last_week' | 'last_year' | 'this_month' | 'this_week' | 'this_year' | 'today' | 'yesterday';
};

export type CustomTimeframe = {
    start: string;
    end: string;
};

export type CampaignValuesReportEnum = 'campaign-values-report';

export type CampaignValuesRequestDtoResourceObject = {
    type: CampaignValuesReportEnum;
    attributes: {
        /**
         * List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
         */
        statistics: Array<'average_order_value' | 'bounce_rate' | 'bounced' | 'bounced_or_failed' | 'bounced_or_failed_rate' | 'click_rate' | 'click_to_open_rate' | 'clicks' | 'clicks_unique' | 'conversion_rate' | 'conversion_uniques' | 'conversion_value' | 'conversions' | 'delivered' | 'delivery_rate' | 'failed' | 'failed_rate' | 'open_rate' | 'opens' | 'opens_unique' | 'recipients' | 'revenue_per_recipient' | 'spam_complaint_rate' | 'spam_complaints' | 'unsubscribe_rate' | 'unsubscribe_uniques' | 'unsubscribes'>;
        /**
         * The timeframe to query for data within. The max length a timeframe can be is 1 year
         */
        timeframe: Timeframe | CustomTimeframe;
        /**
         * ID of the metric to be used for conversion statistics
         */
        conversion_metric_id: string;
        /**
         * API filter string used to filter the query.
         * Allowed filters are send_channel, campaign_id, campaign_message_id.
         * Allowed operators are equals, contains-any.
         * Only one filter can be used per attribute, only AND can be used as a combination operator.
         * Max of 100 messages per ANY filter.
         * When filtering on send_channel, allowed values are email, sms, push-notification.
         */
        filter?: string | null;
    };
};

export type CampaignValuesRequestDto = {
    data: CampaignValuesRequestDtoResourceObject;
};

export type ValuesData = {
    /**
     * Applied groupings and the values for this object
     */
    groupings: {
        [key: string]: unknown;
    };
    /**
     * Requested statistics and their values results
     */
    statistics: {
        [key: string]: unknown;
    };
};

export type PostCampaignValuesResponseDto = {
    data: {
        type: CampaignValuesReportEnum;
        attributes: {
            /**
             * An array of all the returned values data.
             * Each object in the array represents one unique grouping and the results for that grouping.
             */
            results: Array<ValuesData>;
        };
        relationships?: {
            campaigns?: {
                data?: Array<{
                    type: CampaignEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
};

export type FlowValuesReportEnum = 'flow-values-report';

export type FlowValuesRequestDtoResourceObject = {
    type: FlowValuesReportEnum;
    attributes: {
        /**
         * List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
         */
        statistics: Array<'average_order_value' | 'bounce_rate' | 'bounced' | 'bounced_or_failed' | 'bounced_or_failed_rate' | 'click_rate' | 'click_to_open_rate' | 'clicks' | 'clicks_unique' | 'conversion_rate' | 'conversion_uniques' | 'conversion_value' | 'conversions' | 'delivered' | 'delivery_rate' | 'failed' | 'failed_rate' | 'open_rate' | 'opens' | 'opens_unique' | 'recipients' | 'revenue_per_recipient' | 'spam_complaint_rate' | 'spam_complaints' | 'unsubscribe_rate' | 'unsubscribe_uniques' | 'unsubscribes'>;
        /**
         * The timeframe to query for data within. The max length a timeframe can be is 1 year
         */
        timeframe: Timeframe | CustomTimeframe;
        /**
         * ID of the metric to be used for conversion statistics
         */
        conversion_metric_id: string;
        /**
         * API filter string used to filter the query.
         * Allowed filters are flow_id, send_channel, flow_message_id.
         * Allowed operators are equals, contains-any.
         * Only one filter can be used per attribute, only AND can be used as a combination operator.
         * Max of 100 messages per ANY filter.
         * When filtering on send_channel, allowed values are email, sms, push-notification.
         */
        filter?: string | null;
    };
};

export type FlowValuesRequestDto = {
    data: FlowValuesRequestDtoResourceObject;
};

export type PostFlowValuesResponseDto = {
    data: {
        type: FlowValuesReportEnum;
        attributes: {
            /**
             * An array of all the returned values data.
             * Each object in the array represents one unique grouping and the results for that grouping.
             */
            results: Array<ValuesData>;
        };
        relationships?: {
            flows?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-messages'?: {
                data?: Array<{
                    type: FlowMessageEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
};

export type FlowSeriesReportEnum = 'flow-series-report';

export type FlowSeriesRequestDtoResourceObject = {
    type: FlowSeriesReportEnum;
    attributes: {
        /**
         * List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
         */
        statistics: Array<'average_order_value' | 'bounce_rate' | 'bounced' | 'bounced_or_failed' | 'bounced_or_failed_rate' | 'click_rate' | 'click_to_open_rate' | 'clicks' | 'clicks_unique' | 'conversion_rate' | 'conversion_uniques' | 'conversion_value' | 'conversions' | 'delivered' | 'delivery_rate' | 'failed' | 'failed_rate' | 'open_rate' | 'opens' | 'opens_unique' | 'recipients' | 'revenue_per_recipient' | 'spam_complaint_rate' | 'spam_complaints' | 'unsubscribe_rate' | 'unsubscribe_uniques' | 'unsubscribes'>;
        /**
         * The timeframe to query for data within. The max length a timeframe can be is 1 year
         */
        timeframe: Timeframe | CustomTimeframe;
        /**
         * The interval used to aggregate data within the series request.
         * If hourly is used, the timeframe cannot be longer than 7 days.
         * If daily is used, the timeframe cannot be longer than 60 days.
         * If monthly is used, the timeframe cannot be longer than 52 weeks.
         */
        interval: 'daily' | 'hourly' | 'monthly' | 'weekly';
        /**
         * ID of the metric to be used for conversion statistics
         */
        conversion_metric_id: string;
        /**
         * API filter string used to filter the query.
         * Allowed filters are flow_id, send_channel, flow_message_id.
         * Allowed operators are equals, contains-any.
         * Only one filter can be used per attribute, only AND can be used as a combination operator.
         * Max of 100 messages per ANY filter.
         * When filtering on send_channel, allowed values are email, sms, push-notification.
         */
        filter?: string | null;
    };
};

export type FlowSeriesRequestDto = {
    data: FlowSeriesRequestDtoResourceObject;
};

export type SeriesData = {
    /**
     * Applied groupings and the values for this object
     */
    groupings: {
        [key: string]: unknown;
    };
    /**
     * Requested statistics and their series result
     */
    statistics: {
        [key: string]: unknown;
    };
};

export type PostFlowSeriesResponseDto = {
    data: {
        type: FlowSeriesReportEnum;
        attributes: {
            /**
             * An array of all the returned values data.
             * Each object in the array represents one unique grouping and the results for that grouping.
             * Each value in the results array corresponds to the date time at the same index.
             */
            results: Array<SeriesData>;
            /**
             * An array of date times which correspond to the equivalent index in the results data.
             */
            date_times: Array<string>;
        };
        relationships?: {
            flows?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-messages'?: {
                data?: Array<{
                    type: FlowMessageEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
    };
};

export type FormValuesReportEnum = 'form-values-report';

export type FormValuesRequestDtoResourceObject = {
    type: FormValuesReportEnum;
    attributes: {
        /**
         * List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
         */
        statistics: Array<'closed_form' | 'closed_form_uniques' | 'qualified_form' | 'qualified_form_uniques' | 'submit_rate' | 'submits' | 'submitted_form_step' | 'submitted_form_step_uniques' | 'viewed_form' | 'viewed_form_step' | 'viewed_form_step_uniques' | 'viewed_form_uniques'>;
        /**
         * The timeframe to query for data within. The max length a timeframe can be is 1 year
         */
        timeframe: Timeframe | CustomTimeframe;
        /**
         * List of attributes to group the data by.
         * Allowed group-bys are form_id, form_version_id.
         * If not passed in, the data will be grouped by form_id.
         * If a group by has prerequisites, they must be passed in together. The prerequisites for form_version_id is form_id
         */
        group_by?: Array<'form_id' | 'form_version_id'> | null;
        /**
         * API filter string used to filter the query.
         * Allowed filters are form_id, form_version_id.
         * Allowed operators are equals, any.
         * Only one filter can be used per attribute, only AND can be used as a combination operator.
         * Max of 100 messages per ANY filter.
         */
        filter?: string | null;
    };
};

export type FormValuesRequestDto = {
    data: FormValuesRequestDtoResourceObject;
};

export type PostFormValuesResponseDto = {
    data: {
        type: FormValuesReportEnum;
        attributes: {
            /**
             * An array of all the returned values data.
             * Each object in the array represents one unique grouping and the results for that grouping.
             */
            results: Array<ValuesData>;
        };
    };
};

export type FormSeriesReportEnum = 'form-series-report';

export type FormSeriesRequestDtoResourceObject = {
    type: FormSeriesReportEnum;
    attributes: {
        /**
         * List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
         */
        statistics: Array<'closed_form' | 'closed_form_uniques' | 'qualified_form' | 'qualified_form_uniques' | 'submit_rate' | 'submits' | 'submitted_form_step' | 'submitted_form_step_uniques' | 'viewed_form' | 'viewed_form_step' | 'viewed_form_step_uniques' | 'viewed_form_uniques'>;
        /**
         * The timeframe to query for data within. The max length a timeframe can be is 1 year
         */
        timeframe: Timeframe | CustomTimeframe;
        /**
         * The interval used to aggregate data within the series request.
         * If hourly is used, the timeframe cannot be longer than 7 days.
         * If daily is used, the timeframe cannot be longer than 60 days.
         * If monthly is used, the timeframe cannot be longer than 52 weeks.
         */
        interval: 'daily' | 'hourly' | 'monthly' | 'weekly';
        /**
         * List of attributes to group the data by.
         * Allowed group-bys are form_id, form_version_id.
         * If not passed in, the data will be grouped by form_id.
         * If a group by has prerequisites, they must be passed in together. The prerequisites for form_version_id is form_id
         */
        group_by?: Array<'form_id' | 'form_version_id'> | null;
        /**
         * API filter string used to filter the query.
         * Allowed filters are form_id, form_version_id.
         * Allowed operators are equals, any.
         * Only one filter can be used per attribute, only AND can be used as a combination operator.
         * Max of 100 messages per ANY filter.
         */
        filter?: string | null;
    };
};

export type FormSeriesRequestDto = {
    data: FormSeriesRequestDtoResourceObject;
};

export type PostFormSeriesResponseDto = {
    data: {
        type: FormSeriesReportEnum;
        attributes: {
            /**
             * An array of all the returned values data.
             * Each object in the array represents one unique grouping and the results for that grouping.
             * Each value in the results array corresponds to the date time at the same index.
             */
            results: Array<SeriesData>;
            /**
             * An array of date times which correspond to the equivalent index in the results data.
             */
            date_times: Array<string>;
        };
    };
};

export type SegmentValuesReportEnum = 'segment-values-report';

export type SegmentValuesRequestDtoResourceObject = {
    type: SegmentValuesReportEnum;
    attributes: {
        /**
         * List of statistics to query for.
         */
        statistics: Array<'members_added' | 'members_removed' | 'net_members_changed' | 'total_members'>;
        /**
         * The timeframe to query for data within. Data is unavailable before June 1st, 2023. Please use a timeframe after this date. The max length a timeframe can be is 1 year
         */
        timeframe: Timeframe | CustomTimeframe;
        /**
         * API filter string used to filter the query.
         * Allowed filters are segment_id.
         * Allowed operators are equals, any.
         * Only one filter can be used per attribute.
         * Max of 100 messages per ANY filter.
         */
        filter?: string | null;
    };
};

export type SegmentValuesRequestDto = {
    data: SegmentValuesRequestDtoResourceObject;
};

export type PostSegmentValuesResponseDto = {
    data: {
        type: SegmentValuesReportEnum;
        attributes: {
            /**
             * An array of all the returned values data.
             * Each object in the array represents one unique grouping and the results for that grouping.
             */
            results: Array<ValuesData>;
        };
    };
};

export type SegmentSeriesReportEnum = 'segment-series-report';

export type SegmentSeriesRequestDtoResourceObject = {
    type: SegmentSeriesReportEnum;
    attributes: {
        /**
         * List of statistics to query for.
         */
        statistics: Array<'members_added' | 'members_removed' | 'net_members_changed' | 'total_members'>;
        /**
         * The timeframe to query for data within. Data is unavailable before June 1st, 2023. Please use a timeframe after this date. The max length a timeframe can be is 1 year
         */
        timeframe: Timeframe | CustomTimeframe;
        /**
         * The interval used to aggregate data within the series request.
         * If hourly is used, the timeframe cannot be longer than 7 days.
         * If daily is used, the timeframe cannot be longer than 60 days.
         * If monthly is used, the timeframe cannot be longer than 52 weeks.
         */
        interval: 'daily' | 'hourly' | 'monthly' | 'weekly';
        /**
         * API filter string used to filter the query.
         * Allowed filters are segment_id.
         * Allowed operators are equals, any.
         * Only one filter can be used per attribute.
         * Max of 100 messages per ANY filter.
         */
        filter?: string | null;
    };
};

export type SegmentSeriesRequestDto = {
    data: SegmentSeriesRequestDtoResourceObject;
};

export type PostSegmentSeriesResponseDto = {
    data: {
        type: SegmentSeriesReportEnum;
        attributes: {
            /**
             * An array of all the returned values data.
             * Each object in the array represents one unique grouping and the results for that grouping.
             * Each value in the results array corresponds to the date time at the same index.
             */
            results: Array<SeriesData>;
            /**
             * An array of date times which correspond to the equivalent index in the results data.
             */
            date_times: Array<string>;
        };
    };
};

export type UniversalContentCreateQueryResourceObject = {
    type: TemplateUniversalContentEnum;
    attributes: {
        /**
         * The name for this universal content
         */
        name: string;
        definition: ButtonBlock | DropShadowBlock | HorizontalRuleBlock | HtmlBlock | ImageBlock | SpacerBlock | TextBlock;
    };
};

export type UniversalContentCreateQuery = {
    data: UniversalContentCreateQueryResourceObject;
};

export type PostUniversalContentResponse = {
    data: {
        type: TemplateUniversalContentEnum;
        /**
         * The ID of the universal content
         */
        id: string;
        attributes: {
            /**
             * The name for this universal content
             */
            name: string;
            definition?: ButtonBlock | DropShadowBlock | HeaderBlock | HorizontalRuleBlock | HtmlBlock | ImageBlock | ProductBlock | ReviewBlock | SocialBlock | SpacerBlock | SplitBlock | TableBlock | TextBlock | UnsupportedBlock | VideoBlock | Section | null;
            /**
             * The datetime when this universal content was created
             */
            created: string;
            /**
             * The datetime when this universal content was updated
             */
            updated: string;
            /**
             * The status of a universal content screenshot.
             */
            screenshot_status: 'completed' | 'failed' | 'generating' | 'never_generated' | 'not_renderable' | 'stale';
            screenshot_url: string;
        };
        links: ObjectLinks;
    };
};

export type WebFeedCreateQueryResourceObject = {
    type: WebFeedEnum;
    attributes: {
        /**
         * The name for this web feed
         */
        name: string;
        /**
         * The URL of the web feed
         */
        url: string;
        /**
         * The HTTP method for requesting the web feed
         */
        request_method: 'get' | 'post';
        /**
         * The content-type of the web feed
         */
        content_type: 'json' | 'xml';
    };
};

export type WebFeedCreateQuery = {
    data: WebFeedCreateQueryResourceObject;
};

export type PostWebFeedResponse = {
    data: {
        type: WebFeedEnum;
        /**
         * Primary key that uniquely identifies this web feed. Generated by Klaviyo
         */
        id: string;
        attributes: {
            /**
             * The name of this web feed
             */
            name: string;
            /**
             * The URL of the web feed
             */
            url: string;
            /**
             * The HTTP method for requesting the web feed
             */
            request_method: 'get' | 'post';
            /**
             * The content-type of the web feed
             */
            content_type: 'json' | 'xml';
            /**
             * Date and time when the web feed was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created: string;
            /**
             * Date and time when the web feed was updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated: string;
            /**
             * The cache status of this web feed if it exists
             */
            status?: 'critical_nightly_refresh_timeout' | 'disabled' | 'ok' | 'warning_nightly_refresh_timeout' | 'warning_periodic_refresh_timeout';
        };
        links: ObjectLinks;
    };
};

export type CustomMetricCreateQueryResourceObject = {
    type: CustomMetricEnum;
    attributes: {
        /**
         * The name for this custom metric. Names must be unique across the account.         Attempting to create a metric with a duplicate name will return a 400 status code.
         */
        name: string;
        definition: CustomMetricDefinition;
    };
};

export type CustomMetricCreateQuery = {
    data: CustomMetricCreateQueryResourceObject;
};

export type PostCustomMetricResponse = {
    data: {
        type: CustomMetricEnum;
        /**
         * The ID of the custom metric
         */
        id: string;
        attributes: {
            /**
             * The name for this custom metric. Names must be unique across the account.         Attempting to create a metric with a duplicate name will return a 400 status code.
             */
            name: string;
            /**
             * The datetime when this custom metric was created.
             */
            created: string;
            /**
             * The datetime when this custom metric was updated.
             */
            updated: string;
            definition: CustomMetricDefinition;
        };
        relationships?: {
            metrics?: {
                data?: Array<{
                    type: MetricEnum;
                    /**
                     * Related metrics
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ProfileUpsertQueryWithSubscriptionsResourceObject = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id?: string | null;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        /**
         * Id that can be used to identify a profile when other identifiers are not available
         */
        anonymous_id?: string | null;
        /**
         * Also known as the `exchange_id`, this is an encrypted identifier used for identifying a
         * profile by Klaviyo's web tracking.
         *
         * You can use this field as a filter when retrieving profiles via the Get Profiles endpoint.
         */
        _kx?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
        meta?: ProfileMeta;
        subscriptions?: SubscriptionChannels;
    };
};

export type SubscriptionEnum = 'subscription';

export type OnsiteSubscriptionCreateQueryResourceObject = {
    type: SubscriptionEnum;
    attributes: {
        /**
         * A custom method detail or source to store on the consent records for this subscription.
         */
        custom_source?: string | null;
        profile: {
            data: ProfileUpsertQueryWithSubscriptionsResourceObject;
        };
    };
    relationships: {
        list: {
            data?: {
                type: ListEnum;
                /**
                 * The list ID to add the newly subscribed profile to.
                 */
                id: string;
            };
        };
    };
};

export type OnsiteSubscriptionCreateQuery = {
    data: OnsiteSubscriptionCreateQueryResourceObject;
};

export type PushTokenUnregisterEnum = 'push-token-unregister';

export type PushTokenUnregisterQueryResourceObject = {
    type: PushTokenUnregisterEnum;
    attributes: {
        /**
         * A push token from APNS or FCM.
         */
        token: string;
        /**
         * The platform on which the push token was created.
         */
        platform: 'android' | 'ios';
        /**
         * The vendor of the push token.
         */
        vendor?: 'apns' | 'fcm';
        /**
         * The profile associated with the push token to create/update
         */
        profile: {
            data: ProfileUpsertQueryResourceObject;
        };
    };
};

export type PushTokenUnregisterQuery = {
    data: PushTokenUnregisterQueryResourceObject;
};

export type OnsiteProfileCreateQuery = {
    data: OnsiteProfileCreateQueryResourceObject;
};

export type EventsBulkCreateQuery = {
    data: EventsBulkCreateQueryResourceObject;
};

export type ClientBisSubscriptionCreateQueryResourceObject = {
    type: BackInStockSubscriptionEnum;
    attributes: {
        /**
         * The channel(s) through which the profile would like to receive the back in stock notification. This can be leveraged within a back in stock flow to notify the subscriber through their preferred channel(s).
         */
        channels: Array<'EMAIL' | 'PUSH' | 'SMS'>;
        profile: {
            data: ProfileIdentifierDtoResourceObject;
        };
    };
    relationships: {
        variant: {
            data?: {
                type: CatalogVariantEnum;
                /**
                 * The catalog variant ID for which the profile is subscribing to back in stock notifications. This ID is made up of the integration type, catalog ID, and and the external ID of the variant like so: `integrationType:::catalogId:::externalId`. If the integration you are using is not set up for multi-catalog storage, the 'catalogId' will be `$default`. For Shopify `$shopify:::$default:::33001893429341`
                 */
                id: string;
            };
        };
    };
};

export type ClientBisSubscriptionCreateQuery = {
    data: ClientBisSubscriptionCreateQueryResourceObject;
};

export type ReviewProductExternalId = {
    /**
     * The external ID of the product
     */
    external_id: string;
    /**
     * The integration key of the product in lowercase
     */
    integration_key: 'shopify' | 'woocommerce';
};

export type CustomQuestionDto = {
    /**
     * The ID of the custom question
     */
    id: string;
    /**
     * The answers to the custom question
     */
    answers: Array<string>;
};

export type OrderEnum = 'order';

export type ReviewCreateDtoResourceObject = {
    type: ReviewEnum;
    attributes: {
        /**
         * The type of this review -- either a review or a question
         */
        review_type: 'question' | 'rating' | 'review' | 'store';
        /**
         * The email of the author of this review
         */
        email: string;
        /**
         * The author of this review
         */
        author: string;
        /**
         * The content of this review
         */
        content: string;
        /**
         * The incentive type for the review
         */
        incentive_type?: 'coupon_or_discount' | 'employee_review' | 'free_product' | 'loyalty_points' | 'other' | 'paid_promotion' | 'sweepstakes_entry';
        product?: ReviewProductExternalId;
        /**
         * The rating of this review on a scale from 1-5. If the review type is "question", this field will be null.
         */
        rating?: 1 | 2 | 3 | 4 | 5;
        /**
         * The title of this review
         */
        title?: string | null;
        /**
         * Custom question and answers for the review
         */
        custom_questions?: Array<CustomQuestionDto> | null;
        /**
         * The list of images submitted with this review (represented as a list of urls or base-64 encoded data-uri). If there are no images, this field will be an empty list.
         */
        images?: Array<string> | null;
    };
    relationships?: {
        order?: {
            data?: {
                type: OrderEnum;
                /**
                 * The Order ID related to the review
                 */
                id: string;
            };
        };
    };
};

export type ReviewCreateDto = {
    data: ReviewCreateDtoResourceObject;
};

export type CouponUpdateQueryResourceObject = {
    type: CouponEnum;
    /**
     * The internal id of a Coupon is equivalent to its external id stored within an integration.
     */
    id: string;
    attributes: {
        /**
         * A description of the coupon.
         */
        description?: string | null;
    };
};

export type CouponUpdateQuery = {
    data: CouponUpdateQueryResourceObject;
};

export type PatchCouponResponse = {
    data: {
        type: CouponEnum;
        /**
         * The internal id of a Coupon is equivalent to its external id stored within an integration.
         */
        id: string;
        attributes: {
            /**
             * This is the id that is stored in an integration such as Shopify or Magento.
             */
            external_id: string;
            /**
             * A description of the coupon.
             */
            description?: string | null;
        };
        links: ObjectLinks;
    };
};

export type CouponCodeUpdateQueryResourceObject = {
    type: CouponCodeEnum;
    /**
     * The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.
     */
    id: string;
    attributes: {
        /**
         * The API status of our coupon codes.
         */
        status?: 'ASSIGNED_TO_PROFILE' | 'DELETING' | 'PROCESSING' | 'UNASSIGNED' | 'USED' | 'VERSION_NOT_ACTIVE';
        /**
         * The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.
         */
        expires_at?: string | null;
    };
};

export type CouponCodeUpdateQuery = {
    data: CouponCodeUpdateQueryResourceObject;
};

export type PatchCouponCodeResponse = {
    data: {
        type: CouponCodeEnum;
        /**
         * The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.
         */
        id: string;
        attributes: {
            /**
             * This is a unique string that will be or is assigned to each customer/profile and is associated with a coupon.
             */
            unique_code?: string | null;
            /**
             * The datetime when this coupon code will expire. If not specified or set to null, it will be automatically set to 1 year.
             */
            expires_at?: string | null;
            /**
             * The current status of the coupon code.
             */
            status?: 'ASSIGNED_TO_PROFILE' | 'DELETING' | 'PROCESSING' | 'UNASSIGNED' | 'USED' | 'VERSION_NOT_ACTIVE';
        };
        relationships?: {
            coupon?: {
                data?: {
                    type: CouponEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
            profile?: {
                data?: {
                    type: ProfileEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogItemUpdateQuery = {
    data: CatalogItemUpdateQueryResourceObject;
};

export type PatchCatalogItemResponse = {
    data: {
        type: CatalogItemEnum;
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
        attributes: {
            /**
             * The ID of the catalog item in an external system.
             */
            external_id?: string | null;
            /**
             * The title of the catalog item.
             */
            title?: string | null;
            /**
             * A description of the catalog item.
             */
            description?: string | null;
            /**
             * This field can be used to set the price on the catalog item, which is what gets displayed for the item when included in emails. For most price-update use cases, you will also want to update the `price` on any child variants, using the [Update Catalog Variant Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_variant).
             */
            price?: number | null;
            /**
             * URL pointing to the location of the catalog item on your website.
             */
            url?: string | null;
            /**
             * URL pointing to the location of a full image of the catalog item.
             */
            image_full_url?: string | null;
            /**
             * URL pointing to the location of an image thumbnail of the catalog item
             */
            image_thumbnail_url?: string | null;
            /**
             * List of URLs pointing to the locations of images of the catalog item.
             */
            images?: Array<string> | null;
            /**
             * Flat JSON blob to provide custom metadata about the catalog item. May not exceed 100kb.
             */
            custom_metadata?: {
                [key: string]: unknown;
            } | null;
            /**
             * Boolean value indicating whether the catalog item is published.
             */
            published?: boolean | null;
            /**
             * Date and time when the catalog item was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created?: string | null;
            /**
             * Date and time when the catalog item was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            updated?: string | null;
        };
        relationships?: {
            variants?: {
                data?: Array<{
                    type: CatalogVariantEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogVariantUpdateQuery = {
    data: CatalogVariantUpdateQueryResourceObject;
};

export type PatchCatalogVariantResponse = {
    data: {
        type: CatalogVariantEnum;
        /**
         * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
        attributes: {
            /**
             * The ID of the catalog item variant in an external system.
             */
            external_id?: string | null;
            /**
             * The title of the catalog item variant.
             */
            title?: string | null;
            /**
             * A description of the catalog item variant.
             */
            description?: string | null;
            /**
             * The SKU of the catalog item variant.
             */
            sku?: string | null;
            /**
             * This field controls the visibility of this catalog item variant in product feeds/blocks. This field supports the following values:
             * `1`: a product will not appear in dynamic product recommendation feeds and blocks if it is out of stock.
             * `0` or `2`: a product can appear in dynamic product recommendation feeds and blocks regardless of inventory quantity.
             */
            inventory_policy?: 0 | 1 | 2;
            /**
             * The quantity of the catalog item variant currently in stock.
             */
            inventory_quantity?: number | null;
            /**
             * This field can be used to set the price on the catalog item variant, which is what gets displayed for the item variant when included in emails. For most price-update use cases, you will also want to update the `price` on any parent items using the [Update Catalog Item Endpoint](https://developers.klaviyo.com/en/reference/update_catalog_item).
             */
            price?: number | null;
            /**
             * URL pointing to the location of the catalog item variant on your website.
             */
            url?: string | null;
            /**
             * URL pointing to the location of a full image of the catalog item variant.
             */
            image_full_url?: string | null;
            /**
             * URL pointing to the location of an image thumbnail of the catalog item variant.
             */
            image_thumbnail_url?: string | null;
            /**
             * List of URLs pointing to the locations of images of the catalog item variant.
             */
            images?: Array<string> | null;
            /**
             * Flat JSON blob to provide custom metadata about the catalog item variant. May not exceed 100kb.
             */
            custom_metadata?: {
                [key: string]: unknown;
            } | null;
            /**
             * Boolean value indicating whether the catalog item variant is published.
             */
            published?: boolean | null;
            /**
             * Date and time when the catalog item  variant was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            created?: string | null;
            /**
             * Date and time when the catalog item variant was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            updated?: string | null;
        };
        relationships?: {
            item?: {
                data?: {
                    type: CatalogItemEnum;
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CatalogCategoryUpdateQuery = {
    data: CatalogCategoryUpdateQueryResourceObject;
};

export type PatchCatalogCategoryResponse = {
    data: {
        type: CatalogCategoryEnum;
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
        attributes: {
            /**
             * The ID of the catalog category in an external system.
             */
            external_id?: string | null;
            /**
             * The name of the catalog category.
             */
            name?: string | null;
            /**
             * Date and time when the catalog category was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
             */
            updated?: string | null;
        };
        relationships?: {
            items?: {
                data?: Array<{
                    type: CatalogItemEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ListPartialUpdateQueryResourceObject = {
    type: ListEnum;
    /**
     * Primary key that uniquely identifies this list. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * A helpful name to label the list
         */
        name: string;
    };
};

export type ListPartialUpdateQuery = {
    data: ListPartialUpdateQueryResourceObject;
};

export type PatchListPartialUpdateResponse = {
    data: {
        type: ListEnum;
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
        attributes: {
            /**
             * A helpful name to label the list
             */
            name?: string | null;
            /**
             * Date and time when the list was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created?: string | null;
            /**
             * Date and time when the list was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated?: string | null;
            /**
             * The opt-in process for this list.  Could be either 'single_opt_in' or 'double_opt_in'.
             */
            opt_in_process?: 'double_opt_in' | 'single_opt_in';
        };
        relationships?: {
            profiles?: {
                data?: Array<{
                    type: ProfileEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type SegmentPartialUpdateQueryResourceObject = {
    type: SegmentEnum;
    id: string;
    attributes: {
        definition?: SegmentDefinition;
        name?: string | null;
        is_starred?: boolean | null;
    };
};

export type SegmentPartialUpdateQuery = {
    data: SegmentPartialUpdateQueryResourceObject;
};

export type PatchSegmentPartialUpdateResponse = {
    data: {
        type: SegmentEnum;
        id: string;
        attributes: {
            /**
             * A helpful name to label the segment
             */
            name?: string | null;
            definition?: SegmentDefinition;
            /**
             * Date and time when the segment was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created?: string | null;
            /**
             * Date and time when the segment was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated?: string | null;
            is_active: boolean;
            is_processing: boolean;
            is_starred: boolean;
        };
        relationships?: {
            profiles?: {
                data?: Array<{
                    type: ProfileEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'flow-triggers'?: {
                data?: Array<{
                    type: FlowEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ProfilePartialUpdateQueryResourceObject = {
    type: ProfileEnum;
    /**
     * Primary key that uniquely identifies this profile. Generated by Klaviyo.
     */
    id: string;
    attributes: {
        /**
         * Individual's email address
         */
        email?: string | null;
        /**
         * Individual's phone number in E.164 format
         */
        phone_number?: string | null;
        /**
         * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
         */
        external_id?: string | null;
        anonymous_id?: string | null;
        /**
         * Individual's first name
         */
        first_name?: string | null;
        /**
         * Individual's last name
         */
        last_name?: string | null;
        /**
         * Name of the company or organization within the company for whom the individual works
         */
        organization?: string | null;
        /**
         * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
         */
        locale?: string | null;
        /**
         * Individual's job title
         */
        title?: string | null;
        /**
         * URL pointing to the location of a profile image
         */
        image?: string | null;
        location?: ProfileLocation;
        /**
         * An object containing key/value pairs for any custom properties assigned to this profile
         */
        properties?: {
            [key: string]: unknown;
        } | null;
    };
    meta?: ProfileMeta;
};

export type ProfilePartialUpdateQuery = {
    data: ProfilePartialUpdateQueryResourceObject;
};

export type PatchProfileResponse = {
    data: {
        type: ProfileEnum;
        /**
         * Primary key that uniquely identifies this profile. Generated by Klaviyo.
         */
        id?: string | null;
        attributes: {
            /**
             * Individual's email address
             */
            email?: string | null;
            /**
             * Individual's phone number in E.164 format
             */
            phone_number?: string | null;
            /**
             * A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
             */
            external_id?: string | null;
            /**
             * Individual's first name
             */
            first_name?: string | null;
            /**
             * Individual's last name
             */
            last_name?: string | null;
            /**
             * Name of the company or organization within the company for whom the individual works
             */
            organization?: string | null;
            /**
             * The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
             */
            locale?: string | null;
            /**
             * Individual's job title
             */
            title?: string | null;
            /**
             * URL pointing to the location of a profile image
             */
            image?: string | null;
            /**
             * Date and time when the profile was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created?: string | null;
            /**
             * Date and time when the profile was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated?: string | null;
            /**
             * Date and time of the most recent event the triggered an update to the profile, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            last_event_date?: string | null;
            location?: ProfileLocation;
            /**
             * An object containing key/value pairs for any custom properties assigned to this profile
             */
            properties?: {
                [key: string]: unknown;
            } | null;
            subscriptions?: Subscriptions;
            predictive_analytics?: PredictiveAnalytics;
        };
        relationships?: {
            lists?: {
                data?: Array<{
                    type: ListEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            segments?: {
                data?: Array<{
                    type: SegmentEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            'push-tokens'?: {
                data?: Array<{
                    type: PushTokenEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type FlowUpdateQueryResourceObject = {
    type: FlowEnum;
    /**
     * ID of the Flow to update. Ex: XVTP5Q
     */
    id: string;
    attributes: {
        /**
         * Status you want to update the flow to. ['draft', 'manual', or 'live']
         */
        status: string;
    };
};

export type FlowUpdateQuery = {
    data: FlowUpdateQueryResourceObject;
};

export type PatchFlowResponse = {
    data: {
        type: FlowEnum;
        id: string;
        attributes: {
            name?: string | null;
            status?: string | null;
            archived?: boolean | null;
            created?: string | null;
            updated?: string | null;
            /**
             * Corresponds to the object which triggered the flow.
             */
            trigger_type?: 'Added to List' | 'Date Based' | 'Low Inventory' | 'Metric' | 'Price Drop' | 'Unconfigured';
        };
        relationships?: {
            'flow-actions'?: {
                data?: Array<{
                    type: FlowActionEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type AudiencesUpdate = {
    /**
     * An optional list of included audiences, will override existing included audiences
     */
    included?: Array<string> | null;
    /**
     * An optional list of excluded audiences, will override exising excluded audiences
     */
    excluded?: Array<string> | null;
};

export type CampaignPartialUpdateQueryResourceObject = {
    type: CampaignEnum;
    /**
     * The campaign ID to be retrieved
     */
    id: string;
    attributes: {
        /**
         * The campaign name
         */
        name?: string | null;
        audiences?: AudiencesUpdate;
        /**
         * Options to use when sending a campaign
         */
        send_options?: EmailSendOptions | SmsSendOptions | PushSendOptions | null;
        /**
         * The tracking options associated with the campaign
         */
        tracking_options?: CampaignsEmailTrackingOptions | CampaignsSmsTrackingOptions | null;
        /**
         * The send strategy the campaign will send with
         */
        send_strategy?: StaticSendStrategy | ThrottledSendStrategy | ImmediateSendStrategy | SmartSendTimeStrategy | null;
    };
};

export type CampaignPartialUpdateQuery = {
    data: CampaignPartialUpdateQueryResourceObject;
};

export type PatchCampaignResponse = {
    data: {
        type: CampaignEnum;
        /**
         * The campaign ID
         */
        id: string;
        attributes: {
            /**
             * The campaign name
             */
            name: string;
            /**
             * The current status of the campaign
             */
            status: 'Adding Recipients' | 'Cancelled' | 'Cancelled: Account Disabled' | 'Cancelled: Internal Error' | 'Cancelled: No Recipients' | 'Cancelled: Smart Sending' | 'Draft' | 'Preparing to schedule' | 'Preparing to send' | 'Queued without Recipients' | 'Scheduled' | 'Sending' | 'Sending Segments' | 'Sent' | 'Unknown' | 'Variations Sent';
            /**
             * Whether the campaign has been archived or not
             */
            archived: boolean;
            audiences: Audiences;
            /**
             * Options to use when sending a campaign
             */
            send_options: EmailSendOptions | SmsSendOptions | PushSendOptions;
            /**
             * The tracking options associated with the campaign
             */
            tracking_options?: CampaignsEmailTrackingOptions | CampaignsSmsTrackingOptions | null;
            /**
             * The send strategy the campaign will send with
             */
            send_strategy: StaticSendStrategy | ThrottledSendStrategy | ImmediateSendStrategy | SmartSendTimeStrategy | AbTestSendStrategy | UnsupportedSendStrategy;
            /**
             * The datetime when the campaign was created
             */
            created_at: string;
            /**
             * The datetime when the campaign was scheduled for future sending
             */
            scheduled_at?: string | null;
            /**
             * The datetime when the campaign was last updated by a user or the system
             */
            updated_at: string;
            /**
             * The datetime when the campaign will be / was sent or None if not yet scheduled by a send_job.
             */
            send_time?: string | null;
        };
        relationships?: {
            'campaign-messages'?: {
                data?: Array<{
                    type: CampaignMessageEnum;
                    /**
                     * The message(s) associated with the campaign
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type MobilePushContentUpdate = {
    /**
     * The title of the message
     */
    title?: string | null;
    /**
     * The message body
     */
    body?: string | null;
    /**
     * The dynamic image to be used in the push notification
     */
    dynamic_image?: string | null;
};

export type MobilePushMessageStandardDefinitionUpdate = {
    channel: MobilePushEnum;
    /**
     * The key-value pairs to be sent with the push notification
     */
    kv_pairs?: {
        [key: string]: unknown;
    } | null;
    content?: MobilePushContentUpdate;
    options?: MobilePushOptions;
    notification_type?: StandardEnum;
};

export type MobilePushMessageSilentDefinitionUpdate = {
    channel: MobilePushEnum;
    /**
     * The key-value pairs to be sent with the push notification
     */
    kv_pairs?: {
        [key: string]: unknown;
    };
    notification_type?: SilentEnum;
};

export type CampaignMessagePartialUpdateQueryResourceObject = {
    type: CampaignMessageEnum;
    /**
     * The message ID to be retrieved
     */
    id: string;
    attributes: {
        /**
         * The contents and settings of the campaign message
         */
        definition?: EmailMessageDefinition | SmsMessageDefinitionCreate | MobilePushMessageStandardDefinitionUpdate | MobilePushMessageSilentDefinitionUpdate | null;
    };
    relationships?: {
        image?: {
            data?: {
                type: ImageEnum;
                /**
                 * The associated image for mobile_push messages
                 */
                id: string;
            };
        };
    };
};

export type CampaignMessagePartialUpdateQuery = {
    data: CampaignMessagePartialUpdateQueryResourceObject;
};

export type PatchCampaignMessageResponse = {
    data: {
        type: CampaignMessageEnum;
        /**
         * The message ID
         */
        id: string;
        attributes: {
            definition?: EmailMessageDefinition | SmsMessageDefinition | MobilePushMessageStandardDefinition | MobilePushMessageSilentDefinition | null;
            /**
             * The list of appropriate Send Time Sub-objects associated with the message
             */
            send_times?: Array<SendTime> | null;
            /**
             * The datetime when the message was created
             */
            created_at?: string | null;
            /**
             * The datetime when the message was last updated
             */
            updated_at?: string | null;
        };
        relationships?: {
            campaign?: {
                data?: {
                    type: CampaignEnum;
                    /**
                     * The parent campaign id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            template?: {
                data?: {
                    type: TemplateEnum;
                    /**
                     * The associated template id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
            image?: {
                data?: {
                    type: ImageEnum;
                    /**
                     * The associated image id
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type CampaignMessageImageUpdateQuery = {
    data: {
        type: ImageEnum;
        /**
         * Campaign Message Image
         */
        id: string;
    };
};

export type CampaignSendJobPartialUpdateQueryResourceObject = {
    type: CampaignSendJobEnum;
    /**
     * The ID of the currently sending campaign to cancel or revert
     */
    id: string;
    attributes: {
        /**
         * The action you would like to take with this send job from among 'cancel' and 'revert'
         */
        action: 'cancel' | 'revert';
    };
};

export type CampaignSendJobPartialUpdateQuery = {
    data: CampaignSendJobPartialUpdateQueryResourceObject;
};

export type TemplateUpdateQueryResourceObject = {
    type: TemplateEnum;
    /**
     * The ID of template
     */
    id: string;
    attributes: {
        /**
         * The name of the template
         */
        name?: string | null;
        /**
         * The HTML of the template
         */
        html?: string | null;
        /**
         * The plaintext of the template
         */
        text?: string | null;
        /**
         * The AMP version of the template. Requires AMP Email to be enabled to access in-app. Refer to the AMP Email setup guide at https://developers.klaviyo.com/en/docs/send_amp_emails_in_klaviyo
         */
        amp?: string | null;
    };
};

export type TemplateUpdateQuery = {
    data: TemplateUpdateQueryResourceObject;
};

export type PatchTemplateResponse = {
    data: {
        type: TemplateEnum;
        /**
         * The ID of template
         */
        id: string;
        attributes: {
            /**
             * The name of the template
             */
            name: string;
            /**
             * `editor_type` has a fixed set of values:
             * * SYSTEM_DRAGGABLE: indicates a drag-and-drop editor template
             * * SIMPLE: A rich text editor template
             * * CODE: A custom HTML template
             * * USER_DRAGGABLE: A hybrid template, using custom HTML in the drag-and-drop editor
             */
            editor_type: string;
            /**
             * The rendered HTML of the template
             */
            html: string;
            /**
             * The template plain_text
             */
            text?: string | null;
            /**
             * The AMP version of the template. Requires AMP Email to be enabled to access in-app. Refer to the AMP Email setup guide at https://developers.klaviyo.com/en/docs/send_amp_emails_in_klaviyo
             */
            amp?: string | null;
            /**
             * The date the template was created in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created?: string | null;
            /**
             * The date the template was updated in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated?: string | null;
        };
        links: ObjectLinks;
    };
};

export type TagUpdateQueryResourceObject = {
    type: TagEnum;
    /**
     * The Tag ID
     */
    id: string;
    attributes: {
        /**
         * The Tag name
         */
        name: string;
    };
};

export type TagUpdateQuery = {
    data: TagUpdateQueryResourceObject;
};

export type TagGroupUpdateQueryResourceObject = {
    type: TagGroupEnum;
    /**
     * The Tag Group ID
     */
    id: string;
    attributes: {
        /**
         * The Tag Group name
         */
        name: string;
        return_fields?: Array<string> | null;
    };
};

export type TagGroupUpdateQuery = {
    data: TagGroupUpdateQueryResourceObject;
};

export type PatchTagGroupResponse = {
    data: {
        type: TagGroupEnum;
        /**
         * The Tag Group ID
         */
        id: string;
        attributes: {
            /**
             * The Tag Group name
             */
            name: string;
            /**
             * If a tag group is non-exclusive, any given related resource (campaign, flow, etc.) can be linked to multiple tags from that tag group. If a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.
             */
            exclusive: boolean;
            /**
             * Every company automatically has one Default Tag Group. The Default Tag Group cannot be deleted, and no other Default Tag Groups can be created. This value is true for the Default Tag Group and false for all other Tag Groups.
             */
            default: boolean;
        };
        relationships?: {
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type WebhookPartialUpdateQueryResourceObject = {
    type: WebhookEnum;
    /**
     * The ID of the webhook.
     */
    id: string;
    attributes: {
        /**
         * A name for the webhook.
         */
        name?: string | null;
        /**
         * A description for the webhook.
         */
        description?: string | null;
        /**
         * A url to send webhook calls to. Must be https.
         */
        endpoint_url?: string | null;
        /**
         * A secret key, that will be used for webhook request signing.
         */
        secret_key?: string | null;
        /**
         * Is the webhook enabled.
         */
        enabled?: boolean | null;
    };
    relationships?: {
        'webhook-topics'?: {
            data?: Array<{
                type: WebhookTopicEnum;
                /**
                 * A list of topics to subscribe to.
                 */
                id: string;
            }>;
        };
    };
};

export type WebhookPartialUpdateQuery = {
    data: WebhookPartialUpdateQueryResourceObject;
};

export type PatchWebhookResponse = {
    data: {
        type: WebhookEnum;
        /**
         * The ID of the webhook.
         */
        id: string;
        attributes: {
            /**
             * A name for the webhook.
             */
            name: string;
            /**
             * A description for the webhook.
             */
            description?: string | null;
            /**
             * The url to send webhook requests to, truncated for security.
             */
            endpoint_url: string;
            /**
             * Is the webhook enabled.
             */
            enabled: boolean;
            /**
             * Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created_at: string;
            /**
             * Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated_at: string;
        };
        relationships?: {
            'webhook-topics'?: {
                data?: Array<{
                    type: WebhookTopicEnum;
                    /**
                     * A topic the webhook is subscribed to.
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ImagePartialUpdateQueryResourceObject = {
    type: ImageEnum;
    /**
     * The ID of the image
     */
    id: string;
    attributes: {
        /**
         * A name for the image.
         */
        name?: string | null;
        /**
         * If true, this image is not shown in the asset library.
         */
        hidden?: boolean | null;
    };
};

export type ImagePartialUpdateQuery = {
    data: ImagePartialUpdateQueryResourceObject;
};

export type PatchImageResponse = {
    data: {
        type: ImageEnum;
        /**
         * The ID of the image
         */
        id: string;
        attributes: {
            name: string;
            image_url: string;
            format: string;
            size: number;
            hidden: boolean;
            updated_at: string;
        };
        links: ObjectLinks;
    };
};

export type UniversalContentPartialUpdateQueryResourceObject = {
    type: TemplateUniversalContentEnum;
    /**
     * The ID of the template universal content
     */
    id: string;
    attributes: {
        /**
         * The name for this template universal content
         */
        name?: string | null;
        definition?: ButtonBlock | DropShadowBlock | HorizontalRuleBlock | HtmlBlock | ImageBlock | SpacerBlock | TextBlock | null;
    };
};

export type UniversalContentPartialUpdateQuery = {
    data: UniversalContentPartialUpdateQueryResourceObject;
};

export type PatchUniversalContentResponse = {
    data: {
        type: TemplateUniversalContentEnum;
        /**
         * The ID of the universal content
         */
        id: string;
        attributes: {
            /**
             * The name for this universal content
             */
            name: string;
            definition?: ButtonBlock | DropShadowBlock | HeaderBlock | HorizontalRuleBlock | HtmlBlock | ImageBlock | ProductBlock | ReviewBlock | SocialBlock | SpacerBlock | SplitBlock | TableBlock | TextBlock | UnsupportedBlock | VideoBlock | Section | null;
            /**
             * The datetime when this universal content was created
             */
            created: string;
            /**
             * The datetime when this universal content was updated
             */
            updated: string;
            /**
             * The status of a universal content screenshot.
             */
            screenshot_status: 'completed' | 'failed' | 'generating' | 'never_generated' | 'not_renderable' | 'stale';
            screenshot_url: string;
        };
        links: ObjectLinks;
    };
};

export type ReviewPatchQueryResourceObject = {
    type: ReviewEnum;
    /**
     * The id of the review (review ID).
     */
    id: string;
    attributes: {
        /**
         * The updated status intended for the review with this ID
         */
        status?: ReviewStatusRejected | ReviewStatusFeatured | ReviewStatusPublished | ReviewStatusUnpublished | ReviewStatusPending | null;
    };
};

export type ReviewPatchQuery = {
    data: ReviewPatchQueryResourceObject;
};

export type PatchReviewResponseDto = {
    data: {
        type: ReviewEnum;
        /**
         * The ID of the review
         */
        id: string;
        attributes: {
            /**
             * The email of the author of this review
             */
            email?: string | null;
            /**
             * The status of this review
             */
            status?: ReviewStatusRejected | ReviewStatusFeatured | ReviewStatusPublished | ReviewStatusUnpublished | ReviewStatusPending | null;
            /**
             * The verification status of this review (aka whether or not we have confirmation that the customer bought the product)
             */
            verified: boolean;
            /**
             * The type of this review — either a review, question, or rating
             */
            review_type: 'question' | 'rating' | 'review' | 'store';
            /**
             * The datetime when this review was created
             */
            created: string;
            /**
             * The datetime when this review was updated
             */
            updated: string;
            /**
             * The list of images submitted with this review (represented as a list of urls). If there are no images, this field will be an empty list.
             */
            images: Array<string>;
            product?: ReviewProductDto;
            /**
             * The rating of this review on a scale from 1-5. If the review type is "question", this field will be null.
             */
            rating?: number | null;
            /**
             * The author of this review
             */
            author?: string | null;
            /**
             * The content of this review
             */
            content?: string | null;
            /**
             * The title of this review
             */
            title?: string | null;
            /**
             * A quote from this review that summarizes the content
             */
            smart_quote?: string | null;
            public_reply?: ReviewPublicReply;
        };
        relationships?: {
            events?: {
                data?: Array<{
                    type: EventEnum;
                    /**
                     * Related Events
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
            item?: {
                data?: {
                    type: CatalogItemEnum;
                    /**
                     * Related Catalog Item
                     */
                    id: string;
                };
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type TrackingSettingPartialUpdateQueryResourceObject = {
    type: TrackingSettingEnum;
    /**
     * The id of the tracking setting (account ID).
     */
    id: string;
    attributes: {
        /**
         * Whether tracking parameters are automatically added to campaigns and flows.
         */
        auto_add_parameters?: boolean | null;
        utm_source?: TrackingParamDto;
        utm_medium?: TrackingParamDto;
        utm_campaign?: TrackingParamDto;
        utm_id?: TrackingParamDto;
        utm_term?: TrackingParamDto;
        /**
         * List of custom tracking parameters.
         */
        custom_parameters?: Array<CustomTrackingParamDto> | null;
    };
};

export type TrackingSettingPartialUpdateQuery = {
    data: TrackingSettingPartialUpdateQueryResourceObject;
};

export type PatchTrackingSettingResponse = {
    data: {
        type: TrackingSettingEnum;
        /**
         * The id of the tracking setting (account ID).
         */
        id: string;
        attributes: {
            /**
             * Whether tracking parameters are automatically added to campaigns and flows.
             */
            auto_add_parameters: boolean;
            utm_source: TrackingParamDto;
            utm_medium: TrackingParamDto;
            utm_campaign?: TrackingParamDto;
            utm_id?: TrackingParamDto;
            utm_term?: TrackingParamDto;
            /**
             * Additional custom tracking parameters.
             */
            custom_parameters?: Array<CustomTrackingParamDto> | null;
        };
        links: ObjectLinks;
    };
};

export type WebFeedPartialUpdateQueryResourceObject = {
    type: WebFeedEnum;
    /**
     * The ID of the web feed
     */
    id: string;
    attributes: {
        /**
         * The name of this web feed
         */
        name?: string | null;
        /**
         * The URL of the web feed
         */
        url?: string | null;
        /**
         * The HTTP method for requesting the web feed
         */
        request_method?: 'get' | 'post';
        /**
         * The content-type of the web feed
         */
        content_type?: 'json' | 'xml';
    };
};

export type WebFeedPartialUpdateQuery = {
    data: WebFeedPartialUpdateQueryResourceObject;
};

export type PatchWebFeedResponse = {
    data: {
        type: WebFeedEnum;
        /**
         * Primary key that uniquely identifies this web feed. Generated by Klaviyo
         */
        id: string;
        attributes: {
            /**
             * The name of this web feed
             */
            name: string;
            /**
             * The URL of the web feed
             */
            url: string;
            /**
             * The HTTP method for requesting the web feed
             */
            request_method: 'get' | 'post';
            /**
             * The content-type of the web feed
             */
            content_type: 'json' | 'xml';
            /**
             * Date and time when the web feed was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            created: string;
            /**
             * Date and time when the web feed was updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
             */
            updated: string;
            /**
             * The cache status of this web feed if it exists
             */
            status?: 'critical_nightly_refresh_timeout' | 'disabled' | 'ok' | 'warning_nightly_refresh_timeout' | 'warning_periodic_refresh_timeout';
        };
        links: ObjectLinks;
    };
};

export type CustomMetricPartialUpdateQueryResourceObject = {
    type: CustomMetricEnum;
    /**
     * The ID of the custom metric
     */
    id: string;
    attributes: {
        /**
         * The name for this custom metric. Names must be unique across the account.         Attempting to create a metric with a duplicate name will return a 400 status code.
         */
        name?: string | null;
        definition?: CustomMetricDefinition;
    };
};

export type CustomMetricPartialUpdateQuery = {
    data: CustomMetricPartialUpdateQueryResourceObject;
};

export type PatchCustomMetricResponse = {
    data: {
        type: CustomMetricEnum;
        /**
         * The ID of the custom metric
         */
        id: string;
        attributes: {
            /**
             * The name for this custom metric. Names must be unique across the account.         Attempting to create a metric with a duplicate name will return a 400 status code.
             */
            name: string;
            /**
             * The datetime when this custom metric was created.
             */
            created: string;
            /**
             * The datetime when this custom metric was updated.
             */
            updated: string;
            definition: CustomMetricDefinition;
        };
        relationships?: {
            metrics?: {
                data?: Array<{
                    type: MetricEnum;
                    /**
                     * Related metrics
                     */
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type ListMembersDeleteQuery = {
    data: Array<{
        type: ProfileEnum;
        id: string;
    }>;
};

export type DeleteTagGroupResponse = {
    data: {
        type: TagGroupEnum;
        /**
         * The Tag Group ID
         */
        id: string;
        attributes: {
            /**
             * The Tag Group name
             */
            name: string;
            /**
             * If a tag group is non-exclusive, any given related resource (campaign, flow, etc.) can be linked to multiple tags from that tag group. If a tag group is exclusive, any given related resource can only be linked to one tag from that tag group.
             */
            exclusive: boolean;
            /**
             * Every company automatically has one Default Tag Group. The Default Tag Group cannot be deleted, and no other Default Tag Groups can be created. This value is true for the Default Tag Group and false for all other Tag Groups.
             */
            default: boolean;
        };
        relationships?: {
            tags?: {
                data?: Array<{
                    type: TagEnum;
                    id: string;
                }>;
                links?: RelationshipLinks;
            };
        };
        links: ObjectLinks;
    };
};

export type RelationshipLinks = {
    self: string;
    related: string;
};

export type OnlyRelatedLinks = {
    related: string;
};

export type CollectionLinks = {
    self: string;
    first?: string;
    last?: string;
    prev?: string;
    next?: string;
};

export type ObjectLinks = {
    self: string;
};

export type ImageUploadQuery = {
    /**
     * The image file to upload. Supported image formats: jpeg,png,gif. Maximum image size: 5MB.
     */
    file: Blob | File;
    /**
     * A name for the image.  Defaults to the filename if not provided.  If the name matches an existing image, a suffix will be added.
     */
    name?: string;
    /**
     * If true, this image is not shown in the asset library.
     */
    hidden?: boolean;
};

export type GetAccountsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[account]'?: Array<'test_account' | 'contact_information' | 'contact_information.default_sender_name' | 'contact_information.default_sender_email' | 'contact_information.website_url' | 'contact_information.organization_name' | 'contact_information.street_address' | 'contact_information.street_address.address1' | 'contact_information.street_address.address2' | 'contact_information.street_address.city' | 'contact_information.street_address.region' | 'contact_information.street_address.country' | 'contact_information.street_address.zip' | 'industry' | 'timezone' | 'preferred_currency' | 'public_api_key' | 'locale'>;
    };
    url: '/api/accounts';
};

export type GetAccountsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetAccountsError = GetAccountsErrors[keyof GetAccountsErrors];

export type GetAccountsResponses = {
    /**
     * Success
     */
    200: GetAccountResponseCollection;
};

export type GetAccountsResponse = GetAccountsResponses[keyof GetAccountsResponses];

export type GetAccountData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the account
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[account]'?: Array<'test_account' | 'contact_information' | 'contact_information.default_sender_name' | 'contact_information.default_sender_email' | 'contact_information.website_url' | 'contact_information.organization_name' | 'contact_information.street_address' | 'contact_information.street_address.address1' | 'contact_information.street_address.address2' | 'contact_information.street_address.city' | 'contact_information.street_address.region' | 'contact_information.street_address.country' | 'contact_information.street_address.zip' | 'industry' | 'timezone' | 'preferred_currency' | 'public_api_key' | 'locale'>;
    };
    url: '/api/accounts/{id}';
};

export type GetAccountErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetAccountError = GetAccountErrors[keyof GetAccountErrors];

export type GetAccountResponses = {
    /**
     * Success
     */
    200: GetAccountResponse;
};

export type GetAccountResponse2 = GetAccountResponses[keyof GetAccountResponses];

export type GetCampaignsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign-message]'?: Array<'definition' | 'definition.channel' | 'definition.label' | 'definition.content' | 'definition.content.subject' | 'definition.content.preview_text' | 'definition.content.from_email' | 'definition.content.from_label' | 'definition.content.reply_to_email' | 'definition.content.cc_email' | 'definition.content.bcc_email' | 'definition.content.body' | 'definition.content.media_url' | 'definition.render_options' | 'definition.render_options.shorten_links' | 'definition.render_options.add_org_prefix' | 'definition.render_options.add_info_link' | 'definition.render_options.add_opt_out_language' | 'definition.notification_type' | 'definition.content.title' | 'definition.content.dynamic_image' | 'definition.kv_pairs' | 'definition.options' | 'definition.options.on_open' | 'definition.options.on_open.type' | 'definition.options.on_open.ios_deep_link' | 'definition.options.on_open.android_deep_link' | 'definition.options.badge' | 'definition.options.badge.display' | 'definition.options.badge.badge_options' | 'definition.options.badge.badge_options.badge_config' | 'definition.options.badge.badge_options.value' | 'definition.options.badge.badge_options.set_from_property' | 'definition.options.play_sound' | 'send_times' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign]'?: Array<'name' | 'status' | 'archived' | 'audiences' | 'audiences.included' | 'audiences.excluded' | 'send_options' | 'send_options.use_smart_sending' | 'tracking_options' | 'tracking_options.add_tracking_params' | 'tracking_options.custom_tracking_params' | 'tracking_options.is_tracking_clicks' | 'tracking_options.is_tracking_opens' | 'send_strategy' | 'send_strategy.method' | 'send_strategy.datetime' | 'send_strategy.options' | 'send_strategy.options.is_local' | 'send_strategy.options.send_past_recipients_immediately' | 'send_strategy.throttle_percentage' | 'send_strategy.date' | 'created_at' | 'scheduled_at' | 'updated_at' | 'send_time'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`messages.channel`: `equals`<br>`name`: `contains`<br>`status`: `any`, `equals`<br>`archived`: `equals`<br>`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`scheduled_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'campaign-messages' | 'tags'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created_at' | '-created_at' | 'id' | '-id' | 'name' | '-name' | 'scheduled_at' | '-scheduled_at' | 'updated_at' | '-updated_at';
    };
    url: '/api/campaigns';
};

export type GetCampaignsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignsError = GetCampaignsErrors[keyof GetCampaignsErrors];

export type GetCampaignsResponses = {
    /**
     * Success
     */
    200: GetCampaignResponseCollectionCompoundDocument;
};

export type GetCampaignsResponse = GetCampaignsResponses[keyof GetCampaignsResponses];

export type CreateCampaignData = {
    /**
     * Creates a campaign from parameters
     */
    body: CampaignCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/campaigns';
};

export type CreateCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateCampaignError = CreateCampaignErrors[keyof CreateCampaignErrors];

export type CreateCampaignResponses = {
    /**
     * Success
     */
    201: PostCampaignResponse;
};

export type CreateCampaignResponse = CreateCampaignResponses[keyof CreateCampaignResponses];

export type DeleteCampaignData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The campaign ID to be deleted
         */
        id: string;
    };
    query?: never;
    url: '/api/campaigns/{id}';
};

export type DeleteCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteCampaignError = DeleteCampaignErrors[keyof DeleteCampaignErrors];

export type DeleteCampaignResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteCampaignResponse = DeleteCampaignResponses[keyof DeleteCampaignResponses];

export type GetCampaignData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The campaign ID to be retrieved
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign-message]'?: Array<'definition' | 'definition.channel' | 'definition.label' | 'definition.content' | 'definition.content.subject' | 'definition.content.preview_text' | 'definition.content.from_email' | 'definition.content.from_label' | 'definition.content.reply_to_email' | 'definition.content.cc_email' | 'definition.content.bcc_email' | 'definition.content.body' | 'definition.content.media_url' | 'definition.render_options' | 'definition.render_options.shorten_links' | 'definition.render_options.add_org_prefix' | 'definition.render_options.add_info_link' | 'definition.render_options.add_opt_out_language' | 'definition.notification_type' | 'definition.content.title' | 'definition.content.dynamic_image' | 'definition.kv_pairs' | 'definition.options' | 'definition.options.on_open' | 'definition.options.on_open.type' | 'definition.options.on_open.ios_deep_link' | 'definition.options.on_open.android_deep_link' | 'definition.options.badge' | 'definition.options.badge.display' | 'definition.options.badge.badge_options' | 'definition.options.badge.badge_options.badge_config' | 'definition.options.badge.badge_options.value' | 'definition.options.badge.badge_options.set_from_property' | 'definition.options.play_sound' | 'send_times' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign]'?: Array<'name' | 'status' | 'archived' | 'audiences' | 'audiences.included' | 'audiences.excluded' | 'send_options' | 'send_options.use_smart_sending' | 'tracking_options' | 'tracking_options.add_tracking_params' | 'tracking_options.custom_tracking_params' | 'tracking_options.is_tracking_clicks' | 'tracking_options.is_tracking_opens' | 'send_strategy' | 'send_strategy.method' | 'send_strategy.datetime' | 'send_strategy.options' | 'send_strategy.options.is_local' | 'send_strategy.options.send_past_recipients_immediately' | 'send_strategy.throttle_percentage' | 'send_strategy.date' | 'created_at' | 'scheduled_at' | 'updated_at' | 'send_time'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'campaign-messages' | 'tags'>;
    };
    url: '/api/campaigns/{id}';
};

export type GetCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignError = GetCampaignErrors[keyof GetCampaignErrors];

export type GetCampaignResponses = {
    /**
     * Success
     */
    200: GetCampaignResponseCompoundDocument;
};

export type GetCampaignResponse2 = GetCampaignResponses[keyof GetCampaignResponses];

export type UpdateCampaignData = {
    /**
     * Update a campaign and return it
     */
    body: CampaignPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The campaign ID to be retrieved
         */
        id: string;
    };
    query?: never;
    url: '/api/campaigns/{id}';
};

export type UpdateCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCampaignError = UpdateCampaignErrors[keyof UpdateCampaignErrors];

export type UpdateCampaignResponses = {
    /**
     * Success
     */
    200: PatchCampaignResponse;
};

export type UpdateCampaignResponse = UpdateCampaignResponses[keyof UpdateCampaignResponses];

export type GetCampaignMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The message ID to be retrieved
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign-message]'?: Array<'definition' | 'definition.channel' | 'definition.label' | 'definition.content' | 'definition.content.subject' | 'definition.content.preview_text' | 'definition.content.from_email' | 'definition.content.from_label' | 'definition.content.reply_to_email' | 'definition.content.cc_email' | 'definition.content.bcc_email' | 'definition.content.body' | 'definition.content.media_url' | 'definition.render_options' | 'definition.render_options.shorten_links' | 'definition.render_options.add_org_prefix' | 'definition.render_options.add_info_link' | 'definition.render_options.add_opt_out_language' | 'definition.notification_type' | 'definition.content.title' | 'definition.content.dynamic_image' | 'definition.kv_pairs' | 'definition.options' | 'definition.options.on_open' | 'definition.options.on_open.type' | 'definition.options.on_open.ios_deep_link' | 'definition.options.on_open.android_deep_link' | 'definition.options.badge' | 'definition.options.badge.display' | 'definition.options.badge.badge_options' | 'definition.options.badge.badge_options.badge_config' | 'definition.options.badge.badge_options.value' | 'definition.options.badge.badge_options.set_from_property' | 'definition.options.play_sound' | 'send_times' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign]'?: Array<'name' | 'status' | 'archived' | 'audiences' | 'audiences.included' | 'audiences.excluded' | 'send_options' | 'send_options.use_smart_sending' | 'tracking_options' | 'tracking_options.add_tracking_params' | 'tracking_options.custom_tracking_params' | 'tracking_options.is_tracking_clicks' | 'tracking_options.is_tracking_opens' | 'send_strategy' | 'send_strategy.method' | 'send_strategy.datetime' | 'send_strategy.options' | 'send_strategy.options.is_local' | 'send_strategy.options.send_past_recipients_immediately' | 'send_strategy.throttle_percentage' | 'send_strategy.date' | 'created_at' | 'scheduled_at' | 'updated_at' | 'send_time'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[image]'?: Array<'name' | 'image_url' | 'format' | 'size' | 'hidden' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template]'?: Array<'name' | 'editor_type' | 'html' | 'text' | 'amp' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'campaign' | 'image' | 'template'>;
    };
    url: '/api/campaign-messages/{id}';
};

export type GetCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignMessageError = GetCampaignMessageErrors[keyof GetCampaignMessageErrors];

export type GetCampaignMessageResponses = {
    /**
     * Success
     */
    200: GetCampaignMessageResponseCompoundDocument;
};

export type GetCampaignMessageResponse = GetCampaignMessageResponses[keyof GetCampaignMessageResponses];

export type UpdateCampaignMessageData = {
    /**
     * Update a message and return it
     */
    body: CampaignMessagePartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The message ID to be retrieved
         */
        id: string;
    };
    query?: never;
    url: '/api/campaign-messages/{id}';
};

export type UpdateCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCampaignMessageError = UpdateCampaignMessageErrors[keyof UpdateCampaignMessageErrors];

export type UpdateCampaignMessageResponses = {
    /**
     * Success
     */
    200: PatchCampaignMessageResponse;
};

export type UpdateCampaignMessageResponse = UpdateCampaignMessageResponses[keyof UpdateCampaignMessageResponses];

export type GetCampaignSendJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the campaign to send
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign-send-job]'?: Array<'status'>;
    };
    url: '/api/campaign-send-jobs/{id}';
};

export type GetCampaignSendJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignSendJobError = GetCampaignSendJobErrors[keyof GetCampaignSendJobErrors];

export type GetCampaignSendJobResponses = {
    /**
     * Success
     */
    200: GetCampaignSendJobResponse;
};

export type GetCampaignSendJobResponse2 = GetCampaignSendJobResponses[keyof GetCampaignSendJobResponses];

export type CancelCampaignSendData = {
    /**
     * Permanently cancel the campaign, setting the status to CANCELED or
     * revert the campaign, setting the status back to DRAFT
     */
    body: CampaignSendJobPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the currently sending campaign to cancel or revert
         */
        id: string;
    };
    query?: never;
    url: '/api/campaign-send-jobs/{id}';
};

export type CancelCampaignSendErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CancelCampaignSendError = CancelCampaignSendErrors[keyof CancelCampaignSendErrors];

export type CancelCampaignSendResponses = {
    /**
     * Success
     */
    204: void;
};

export type CancelCampaignSendResponse = CancelCampaignSendResponses[keyof CancelCampaignSendResponses];

export type GetCampaignRecipientEstimationJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the campaign to get recipient estimation status
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign-recipient-estimation-job]'?: Array<'status'>;
    };
    url: '/api/campaign-recipient-estimation-jobs/{id}';
};

export type GetCampaignRecipientEstimationJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignRecipientEstimationJobError = GetCampaignRecipientEstimationJobErrors[keyof GetCampaignRecipientEstimationJobErrors];

export type GetCampaignRecipientEstimationJobResponses = {
    /**
     * Success
     */
    200: GetCampaignRecipientEstimationJobResponse;
};

export type GetCampaignRecipientEstimationJobResponse2 = GetCampaignRecipientEstimationJobResponses[keyof GetCampaignRecipientEstimationJobResponses];

export type GetCampaignRecipientEstimationData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the campaign for which to get the estimated number of recipients
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign-recipient-estimation]'?: Array<'estimated_recipient_count'>;
    };
    url: '/api/campaign-recipient-estimations/{id}';
};

export type GetCampaignRecipientEstimationErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignRecipientEstimationError = GetCampaignRecipientEstimationErrors[keyof GetCampaignRecipientEstimationErrors];

export type GetCampaignRecipientEstimationResponses = {
    /**
     * Success
     */
    200: GetCampaignRecipientEstimationResponse;
};

export type GetCampaignRecipientEstimationResponse2 = GetCampaignRecipientEstimationResponses[keyof GetCampaignRecipientEstimationResponses];

export type CreateCampaignCloneData = {
    /**
     * Clones a campaign from an existing campaign
     */
    body: CampaignCloneQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/campaign-clone';
};

export type CreateCampaignCloneErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateCampaignCloneError = CreateCampaignCloneErrors[keyof CreateCampaignCloneErrors];

export type CreateCampaignCloneResponses = {
    /**
     * Success
     */
    201: PostCampaignResponse;
};

export type CreateCampaignCloneResponse = CreateCampaignCloneResponses[keyof CreateCampaignCloneResponses];

export type AssignTemplateToCampaignMessageData = {
    /**
     * Takes a reusable template, clones it, and assigns the non-reusable clone to the message.
     */
    body: CampaignMessageAssignTemplateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/campaign-message-assign-template';
};

export type AssignTemplateToCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type AssignTemplateToCampaignMessageError = AssignTemplateToCampaignMessageErrors[keyof AssignTemplateToCampaignMessageErrors];

export type AssignTemplateToCampaignMessageResponses = {
    /**
     * Success
     */
    201: PostCampaignMessageResponse;
};

export type AssignTemplateToCampaignMessageResponse = AssignTemplateToCampaignMessageResponses[keyof AssignTemplateToCampaignMessageResponses];

export type SendCampaignData = {
    /**
     * Trigger the campaign to send asynchronously
     */
    body: CampaignSendJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/campaign-send-jobs';
};

export type SendCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type SendCampaignError = SendCampaignErrors[keyof SendCampaignErrors];

export type SendCampaignResponses = {
    /**
     * Success
     */
    202: PostCampaignSendJobResponse;
};

export type SendCampaignResponse = SendCampaignResponses[keyof SendCampaignResponses];

export type RefreshCampaignRecipientEstimationData = {
    /**
     * Trigger an asynchronous job to update the estimated number of recipients
     * for the given campaign ID. Use the `Get Campaign Recipient Estimation
     * Job` endpoint to retrieve the status of this estimation job. Use the
     * `Get Campaign Recipient Estimation` endpoint to retrieve the estimated
     * recipient count for a given campaign.
     */
    body: CampaignRecipientEstimationJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/campaign-recipient-estimation-jobs';
};

export type RefreshCampaignRecipientEstimationErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RefreshCampaignRecipientEstimationError = RefreshCampaignRecipientEstimationErrors[keyof RefreshCampaignRecipientEstimationErrors];

export type RefreshCampaignRecipientEstimationResponses = {
    /**
     * Success
     */
    202: PostCampaignRecipientEstimationJobResponse;
};

export type RefreshCampaignRecipientEstimationResponse = RefreshCampaignRecipientEstimationResponses[keyof RefreshCampaignRecipientEstimationResponses];

export type GetCampaignForCampaignMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign]'?: Array<'name' | 'status' | 'archived' | 'audiences' | 'audiences.included' | 'audiences.excluded' | 'send_options' | 'send_options.use_smart_sending' | 'tracking_options' | 'tracking_options.add_tracking_params' | 'tracking_options.custom_tracking_params' | 'tracking_options.is_tracking_clicks' | 'tracking_options.is_tracking_opens' | 'send_strategy' | 'send_strategy.method' | 'send_strategy.datetime' | 'send_strategy.options' | 'send_strategy.options.is_local' | 'send_strategy.options.send_past_recipients_immediately' | 'send_strategy.throttle_percentage' | 'send_strategy.date' | 'created_at' | 'scheduled_at' | 'updated_at' | 'send_time'>;
    };
    url: '/api/campaign-messages/{id}/campaign';
};

export type GetCampaignForCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignForCampaignMessageError = GetCampaignForCampaignMessageErrors[keyof GetCampaignForCampaignMessageErrors];

export type GetCampaignForCampaignMessageResponses = {
    /**
     * Success
     */
    200: GetCampaignResponse;
};

export type GetCampaignForCampaignMessageResponse = GetCampaignForCampaignMessageResponses[keyof GetCampaignForCampaignMessageResponses];

export type GetCampaignIdForCampaignMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/campaign-messages/{id}/relationships/campaign';
};

export type GetCampaignIdForCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignIdForCampaignMessageError = GetCampaignIdForCampaignMessageErrors[keyof GetCampaignIdForCampaignMessageErrors];

export type GetCampaignIdForCampaignMessageResponses = {
    /**
     * Success
     */
    200: GetCampaignMessageCampaignRelationshipResponse;
};

export type GetCampaignIdForCampaignMessageResponse = GetCampaignIdForCampaignMessageResponses[keyof GetCampaignIdForCampaignMessageResponses];

export type GetTemplateForCampaignMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template]'?: Array<'name' | 'editor_type' | 'html' | 'text' | 'amp' | 'created' | 'updated'>;
    };
    url: '/api/campaign-messages/{id}/template';
};

export type GetTemplateForCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTemplateForCampaignMessageError = GetTemplateForCampaignMessageErrors[keyof GetTemplateForCampaignMessageErrors];

export type GetTemplateForCampaignMessageResponses = {
    /**
     * Success
     */
    200: GetTemplateResponse;
};

export type GetTemplateForCampaignMessageResponse = GetTemplateForCampaignMessageResponses[keyof GetTemplateForCampaignMessageResponses];

export type GetTemplateIdForCampaignMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/campaign-messages/{id}/relationships/template';
};

export type GetTemplateIdForCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTemplateIdForCampaignMessageError = GetTemplateIdForCampaignMessageErrors[keyof GetTemplateIdForCampaignMessageErrors];

export type GetTemplateIdForCampaignMessageResponses = {
    /**
     * Success
     */
    200: GetCampaignMessageTemplateRelationshipResponse;
};

export type GetTemplateIdForCampaignMessageResponse = GetTemplateIdForCampaignMessageResponses[keyof GetTemplateIdForCampaignMessageResponses];

export type GetImageForCampaignMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[image]'?: Array<'name' | 'image_url' | 'format' | 'size' | 'hidden' | 'updated_at'>;
    };
    url: '/api/campaign-messages/{id}/image';
};

export type GetImageForCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetImageForCampaignMessageError = GetImageForCampaignMessageErrors[keyof GetImageForCampaignMessageErrors];

export type GetImageForCampaignMessageResponses = {
    /**
     * Success
     */
    200: GetImageResponse;
};

export type GetImageForCampaignMessageResponse = GetImageForCampaignMessageResponses[keyof GetImageForCampaignMessageResponses];

export type GetImageIdForCampaignMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/campaign-messages/{id}/relationships/image';
};

export type GetImageIdForCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetImageIdForCampaignMessageError = GetImageIdForCampaignMessageErrors[keyof GetImageIdForCampaignMessageErrors];

export type GetImageIdForCampaignMessageResponses = {
    /**
     * Success
     */
    200: GetCampaignMessageImageRelationshipResponse;
};

export type GetImageIdForCampaignMessageResponse = GetImageIdForCampaignMessageResponses[keyof GetImageIdForCampaignMessageResponses];

export type UpdateImageForCampaignMessageData = {
    body: CampaignMessageImageUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/campaign-messages/{id}/relationships/image';
};

export type UpdateImageForCampaignMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateImageForCampaignMessageError = UpdateImageForCampaignMessageErrors[keyof UpdateImageForCampaignMessageErrors];

export type UpdateImageForCampaignMessageResponses = {
    /**
     * Success
     */
    204: void;
};

export type UpdateImageForCampaignMessageResponse = UpdateImageForCampaignMessageResponses[keyof UpdateImageForCampaignMessageResponses];

export type GetTagsForCampaignData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
    };
    url: '/api/campaigns/{id}/tags';
};

export type GetTagsForCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagsForCampaignError = GetTagsForCampaignErrors[keyof GetTagsForCampaignErrors];

export type GetTagsForCampaignResponses = {
    /**
     * Success
     */
    200: GetTagResponseCollection;
};

export type GetTagsForCampaignResponse = GetTagsForCampaignResponses[keyof GetTagsForCampaignResponses];

export type GetTagIdsForCampaignData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/campaigns/{id}/relationships/tags';
};

export type GetTagIdsForCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagIdsForCampaignError = GetTagIdsForCampaignErrors[keyof GetTagIdsForCampaignErrors];

export type GetTagIdsForCampaignResponses = {
    /**
     * Success
     */
    200: GetCampaignTagsRelationshipsResponseCollection;
};

export type GetTagIdsForCampaignResponse = GetTagIdsForCampaignResponses[keyof GetTagIdsForCampaignResponses];

export type GetMessagesForCampaignData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign-message]'?: Array<'definition' | 'definition.channel' | 'definition.label' | 'definition.content' | 'definition.content.subject' | 'definition.content.preview_text' | 'definition.content.from_email' | 'definition.content.from_label' | 'definition.content.reply_to_email' | 'definition.content.cc_email' | 'definition.content.bcc_email' | 'definition.content.body' | 'definition.content.media_url' | 'definition.render_options' | 'definition.render_options.shorten_links' | 'definition.render_options.add_org_prefix' | 'definition.render_options.add_info_link' | 'definition.render_options.add_opt_out_language' | 'definition.notification_type' | 'definition.content.title' | 'definition.content.dynamic_image' | 'definition.kv_pairs' | 'definition.options' | 'definition.options.on_open' | 'definition.options.on_open.type' | 'definition.options.on_open.ios_deep_link' | 'definition.options.on_open.android_deep_link' | 'definition.options.badge' | 'definition.options.badge.display' | 'definition.options.badge.badge_options' | 'definition.options.badge.badge_options.badge_config' | 'definition.options.badge.badge_options.value' | 'definition.options.badge.badge_options.set_from_property' | 'definition.options.play_sound' | 'send_times' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[campaign]'?: Array<'name' | 'status' | 'archived' | 'audiences' | 'audiences.included' | 'audiences.excluded' | 'send_options' | 'send_options.use_smart_sending' | 'tracking_options' | 'tracking_options.add_tracking_params' | 'tracking_options.custom_tracking_params' | 'tracking_options.is_tracking_clicks' | 'tracking_options.is_tracking_opens' | 'send_strategy' | 'send_strategy.method' | 'send_strategy.datetime' | 'send_strategy.options' | 'send_strategy.options.is_local' | 'send_strategy.options.send_past_recipients_immediately' | 'send_strategy.throttle_percentage' | 'send_strategy.date' | 'created_at' | 'scheduled_at' | 'updated_at' | 'send_time'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[image]'?: Array<'name' | 'image_url' | 'format' | 'size' | 'hidden' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template]'?: Array<'name' | 'editor_type' | 'html' | 'text' | 'amp' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'campaign' | 'image' | 'template'>;
    };
    url: '/api/campaigns/{id}/campaign-messages';
};

export type GetMessagesForCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMessagesForCampaignError = GetMessagesForCampaignErrors[keyof GetMessagesForCampaignErrors];

export type GetMessagesForCampaignResponses = {
    /**
     * Success
     */
    200: GetCampaignMessageResponseCollectionCompoundDocument;
};

export type GetMessagesForCampaignResponse = GetMessagesForCampaignResponses[keyof GetMessagesForCampaignResponses];

export type GetMessageIdsForCampaignData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/campaigns/{id}/relationships/campaign-messages';
};

export type GetMessageIdsForCampaignErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMessageIdsForCampaignError = GetMessageIdsForCampaignErrors[keyof GetMessageIdsForCampaignErrors];

export type GetMessageIdsForCampaignResponses = {
    /**
     * Success
     */
    200: GetCampaignMessagesRelationshipsResponseCollection;
};

export type GetMessageIdsForCampaignResponse = GetMessageIdsForCampaignResponses[keyof GetMessageIdsForCampaignResponses];

export type GetCatalogItemsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item]'?: Array<'external_id' | 'title' | 'description' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant]'?: Array<'external_id' | 'title' | 'description' | 'sku' | 'inventory_policy' | 'inventory_quantity' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`category.id`: `equals`<br>`title`: `contains`<br>`published`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'variants'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-items';
};

export type GetCatalogItemsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCatalogItemsError = GetCatalogItemsErrors[keyof GetCatalogItemsErrors];

export type GetCatalogItemsResponses = {
    /**
     * Success
     */
    200: GetCatalogItemResponseCollectionCompoundDocument;
};

export type GetCatalogItemsResponse = GetCatalogItemsResponses[keyof GetCatalogItemsResponses];

export type CreateCatalogItemData = {
    body: CatalogItemCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-items';
};

export type CreateCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateCatalogItemError = CreateCatalogItemErrors[keyof CreateCatalogItemErrors];

export type CreateCatalogItemResponses = {
    /**
     * Success
     */
    201: PostCatalogItemResponse;
};

export type CreateCatalogItemResponse = CreateCatalogItemResponses[keyof CreateCatalogItemResponses];

export type DeleteCatalogItemData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-items/{id}';
};

export type DeleteCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteCatalogItemError = DeleteCatalogItemErrors[keyof DeleteCatalogItemErrors];

export type DeleteCatalogItemResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteCatalogItemResponse = DeleteCatalogItemResponses[keyof DeleteCatalogItemResponses];

export type GetCatalogItemData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item]'?: Array<'external_id' | 'title' | 'description' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant]'?: Array<'external_id' | 'title' | 'description' | 'sku' | 'inventory_policy' | 'inventory_quantity' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'variants'>;
    };
    url: '/api/catalog-items/{id}';
};

export type GetCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCatalogItemError = GetCatalogItemErrors[keyof GetCatalogItemErrors];

export type GetCatalogItemResponses = {
    /**
     * Success
     */
    200: GetCatalogItemResponseCompoundDocument;
};

export type GetCatalogItemResponse = GetCatalogItemResponses[keyof GetCatalogItemResponses];

export type UpdateCatalogItemData = {
    body: CatalogItemUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-items/{id}';
};

export type UpdateCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCatalogItemError = UpdateCatalogItemErrors[keyof UpdateCatalogItemErrors];

export type UpdateCatalogItemResponses = {
    /**
     * Success
     */
    200: PatchCatalogItemResponse;
};

export type UpdateCatalogItemResponse = UpdateCatalogItemResponses[keyof UpdateCatalogItemResponses];

export type GetCatalogVariantsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant]'?: Array<'external_id' | 'title' | 'description' | 'sku' | 'inventory_policy' | 'inventory_quantity' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`sku`: `equals`<br>`title`: `contains`<br>`published`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-variants';
};

export type GetCatalogVariantsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCatalogVariantsError = GetCatalogVariantsErrors[keyof GetCatalogVariantsErrors];

export type GetCatalogVariantsResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantResponseCollection;
};

export type GetCatalogVariantsResponse = GetCatalogVariantsResponses[keyof GetCatalogVariantsResponses];

export type CreateCatalogVariantData = {
    body: CatalogVariantCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-variants';
};

export type CreateCatalogVariantErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateCatalogVariantError = CreateCatalogVariantErrors[keyof CreateCatalogVariantErrors];

export type CreateCatalogVariantResponses = {
    /**
     * Success
     */
    201: PostCatalogVariantResponse;
};

export type CreateCatalogVariantResponse = CreateCatalogVariantResponses[keyof CreateCatalogVariantResponses];

export type DeleteCatalogVariantData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-variants/{id}';
};

export type DeleteCatalogVariantErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteCatalogVariantError = DeleteCatalogVariantErrors[keyof DeleteCatalogVariantErrors];

export type DeleteCatalogVariantResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteCatalogVariantResponse = DeleteCatalogVariantResponses[keyof DeleteCatalogVariantResponses];

export type GetCatalogVariantData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant]'?: Array<'external_id' | 'title' | 'description' | 'sku' | 'inventory_policy' | 'inventory_quantity' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
    };
    url: '/api/catalog-variants/{id}';
};

export type GetCatalogVariantErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCatalogVariantError = GetCatalogVariantErrors[keyof GetCatalogVariantErrors];

export type GetCatalogVariantResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantResponse;
};

export type GetCatalogVariantResponse2 = GetCatalogVariantResponses[keyof GetCatalogVariantResponses];

export type UpdateCatalogVariantData = {
    body: CatalogVariantUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog variant ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-variants/{id}';
};

export type UpdateCatalogVariantErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCatalogVariantError = UpdateCatalogVariantErrors[keyof UpdateCatalogVariantErrors];

export type UpdateCatalogVariantResponses = {
    /**
     * Success
     */
    200: PatchCatalogVariantResponse;
};

export type UpdateCatalogVariantResponse = UpdateCatalogVariantResponses[keyof UpdateCatalogVariantResponses];

export type GetCatalogCategoriesData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category]'?: Array<'external_id' | 'name' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`name`: `contains`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-categories';
};

export type GetCatalogCategoriesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCatalogCategoriesError = GetCatalogCategoriesErrors[keyof GetCatalogCategoriesErrors];

export type GetCatalogCategoriesResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryResponseCollection;
};

export type GetCatalogCategoriesResponse = GetCatalogCategoriesResponses[keyof GetCatalogCategoriesResponses];

export type CreateCatalogCategoryData = {
    body: CatalogCategoryCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-categories';
};

export type CreateCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateCatalogCategoryError = CreateCatalogCategoryErrors[keyof CreateCatalogCategoryErrors];

export type CreateCatalogCategoryResponses = {
    /**
     * Success
     */
    201: PostCatalogCategoryResponse;
};

export type CreateCatalogCategoryResponse = CreateCatalogCategoryResponses[keyof CreateCatalogCategoryResponses];

export type DeleteCatalogCategoryData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-categories/{id}';
};

export type DeleteCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteCatalogCategoryError = DeleteCatalogCategoryErrors[keyof DeleteCatalogCategoryErrors];

export type DeleteCatalogCategoryResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteCatalogCategoryResponse = DeleteCatalogCategoryResponses[keyof DeleteCatalogCategoryResponses];

export type GetCatalogCategoryData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category]'?: Array<'external_id' | 'name' | 'updated'>;
    };
    url: '/api/catalog-categories/{id}';
};

export type GetCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCatalogCategoryError = GetCatalogCategoryErrors[keyof GetCatalogCategoryErrors];

export type GetCatalogCategoryResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryResponse;
};

export type GetCatalogCategoryResponse2 = GetCatalogCategoryResponses[keyof GetCatalogCategoryResponses];

export type UpdateCatalogCategoryData = {
    body: CatalogCategoryUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-categories/{id}';
};

export type UpdateCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCatalogCategoryError = UpdateCatalogCategoryErrors[keyof UpdateCatalogCategoryErrors];

export type UpdateCatalogCategoryResponses = {
    /**
     * Success
     */
    200: PatchCatalogCategoryResponse;
};

export type UpdateCatalogCategoryResponse = UpdateCatalogCategoryResponses[keyof UpdateCatalogCategoryResponses];

export type GetBulkCreateCatalogItemsJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-item-bulk-create-jobs';
};

export type GetBulkCreateCatalogItemsJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkCreateCatalogItemsJobsError = GetBulkCreateCatalogItemsJobsErrors[keyof GetBulkCreateCatalogItemsJobsErrors];

export type GetBulkCreateCatalogItemsJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogItemCreateJobResponseCollectionCompoundDocument;
};

export type GetBulkCreateCatalogItemsJobsResponse = GetBulkCreateCatalogItemsJobsResponses[keyof GetBulkCreateCatalogItemsJobsResponses];

export type BulkCreateCatalogItemsData = {
    body: CatalogItemCreateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-item-bulk-create-jobs';
};

export type BulkCreateCatalogItemsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkCreateCatalogItemsError = BulkCreateCatalogItemsErrors[keyof BulkCreateCatalogItemsErrors];

export type BulkCreateCatalogItemsResponses = {
    /**
     * Success
     */
    202: PostCatalogItemCreateJobResponse;
};

export type BulkCreateCatalogItemsResponse = BulkCreateCatalogItemsResponses[keyof BulkCreateCatalogItemsResponses];

export type GetBulkCreateCatalogItemsJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item]'?: Array<'external_id' | 'title' | 'description' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'items'>;
    };
    url: '/api/catalog-item-bulk-create-jobs/{job_id}';
};

export type GetBulkCreateCatalogItemsJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkCreateCatalogItemsJobError = GetBulkCreateCatalogItemsJobErrors[keyof GetBulkCreateCatalogItemsJobErrors];

export type GetBulkCreateCatalogItemsJobResponses = {
    /**
     * Success
     */
    200: GetCatalogItemCreateJobResponseCompoundDocument;
};

export type GetBulkCreateCatalogItemsJobResponse = GetBulkCreateCatalogItemsJobResponses[keyof GetBulkCreateCatalogItemsJobResponses];

export type GetBulkUpdateCatalogItemsJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item-bulk-update-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-item-bulk-update-jobs';
};

export type GetBulkUpdateCatalogItemsJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkUpdateCatalogItemsJobsError = GetBulkUpdateCatalogItemsJobsErrors[keyof GetBulkUpdateCatalogItemsJobsErrors];

export type GetBulkUpdateCatalogItemsJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogItemUpdateJobResponseCollectionCompoundDocument;
};

export type GetBulkUpdateCatalogItemsJobsResponse = GetBulkUpdateCatalogItemsJobsResponses[keyof GetBulkUpdateCatalogItemsJobsResponses];

export type BulkUpdateCatalogItemsData = {
    body: CatalogItemUpdateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-item-bulk-update-jobs';
};

export type BulkUpdateCatalogItemsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkUpdateCatalogItemsError = BulkUpdateCatalogItemsErrors[keyof BulkUpdateCatalogItemsErrors];

export type BulkUpdateCatalogItemsResponses = {
    /**
     * Success
     */
    202: PostCatalogItemUpdateJobResponse;
};

export type BulkUpdateCatalogItemsResponse = BulkUpdateCatalogItemsResponses[keyof BulkUpdateCatalogItemsResponses];

export type GetBulkUpdateCatalogItemsJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item-bulk-update-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item]'?: Array<'external_id' | 'title' | 'description' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'items'>;
    };
    url: '/api/catalog-item-bulk-update-jobs/{job_id}';
};

export type GetBulkUpdateCatalogItemsJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkUpdateCatalogItemsJobError = GetBulkUpdateCatalogItemsJobErrors[keyof GetBulkUpdateCatalogItemsJobErrors];

export type GetBulkUpdateCatalogItemsJobResponses = {
    /**
     * Success
     */
    200: GetCatalogItemUpdateJobResponseCompoundDocument;
};

export type GetBulkUpdateCatalogItemsJobResponse = GetBulkUpdateCatalogItemsJobResponses[keyof GetBulkUpdateCatalogItemsJobResponses];

export type GetBulkDeleteCatalogItemsJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item-bulk-delete-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-item-bulk-delete-jobs';
};

export type GetBulkDeleteCatalogItemsJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkDeleteCatalogItemsJobsError = GetBulkDeleteCatalogItemsJobsErrors[keyof GetBulkDeleteCatalogItemsJobsErrors];

export type GetBulkDeleteCatalogItemsJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogItemDeleteJobResponseCollection;
};

export type GetBulkDeleteCatalogItemsJobsResponse = GetBulkDeleteCatalogItemsJobsResponses[keyof GetBulkDeleteCatalogItemsJobsResponses];

export type BulkDeleteCatalogItemsData = {
    body: CatalogItemDeleteJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-item-bulk-delete-jobs';
};

export type BulkDeleteCatalogItemsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkDeleteCatalogItemsError = BulkDeleteCatalogItemsErrors[keyof BulkDeleteCatalogItemsErrors];

export type BulkDeleteCatalogItemsResponses = {
    /**
     * Success
     */
    202: PostCatalogItemDeleteJobResponse;
};

export type BulkDeleteCatalogItemsResponse = BulkDeleteCatalogItemsResponses[keyof BulkDeleteCatalogItemsResponses];

export type GetBulkDeleteCatalogItemsJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item-bulk-delete-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
    };
    url: '/api/catalog-item-bulk-delete-jobs/{job_id}';
};

export type GetBulkDeleteCatalogItemsJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkDeleteCatalogItemsJobError = GetBulkDeleteCatalogItemsJobErrors[keyof GetBulkDeleteCatalogItemsJobErrors];

export type GetBulkDeleteCatalogItemsJobResponses = {
    /**
     * Success
     */
    200: GetCatalogItemDeleteJobResponse;
};

export type GetBulkDeleteCatalogItemsJobResponse = GetBulkDeleteCatalogItemsJobResponses[keyof GetBulkDeleteCatalogItemsJobResponses];

export type GetBulkCreateVariantsJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-variant-bulk-create-jobs';
};

export type GetBulkCreateVariantsJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkCreateVariantsJobsError = GetBulkCreateVariantsJobsErrors[keyof GetBulkCreateVariantsJobsErrors];

export type GetBulkCreateVariantsJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantCreateJobResponseCollectionCompoundDocument;
};

export type GetBulkCreateVariantsJobsResponse = GetBulkCreateVariantsJobsResponses[keyof GetBulkCreateVariantsJobsResponses];

export type BulkCreateCatalogVariantsData = {
    body: CatalogVariantCreateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-variant-bulk-create-jobs';
};

export type BulkCreateCatalogVariantsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkCreateCatalogVariantsError = BulkCreateCatalogVariantsErrors[keyof BulkCreateCatalogVariantsErrors];

export type BulkCreateCatalogVariantsResponses = {
    /**
     * Success
     */
    202: PostCatalogVariantCreateJobResponse;
};

export type BulkCreateCatalogVariantsResponse = BulkCreateCatalogVariantsResponses[keyof BulkCreateCatalogVariantsResponses];

export type GetBulkCreateVariantsJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant]'?: Array<'external_id' | 'title' | 'description' | 'sku' | 'inventory_policy' | 'inventory_quantity' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'variants'>;
    };
    url: '/api/catalog-variant-bulk-create-jobs/{job_id}';
};

export type GetBulkCreateVariantsJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkCreateVariantsJobError = GetBulkCreateVariantsJobErrors[keyof GetBulkCreateVariantsJobErrors];

export type GetBulkCreateVariantsJobResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantCreateJobResponseCompoundDocument;
};

export type GetBulkCreateVariantsJobResponse = GetBulkCreateVariantsJobResponses[keyof GetBulkCreateVariantsJobResponses];

export type GetBulkUpdateVariantsJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant-bulk-update-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-variant-bulk-update-jobs';
};

export type GetBulkUpdateVariantsJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkUpdateVariantsJobsError = GetBulkUpdateVariantsJobsErrors[keyof GetBulkUpdateVariantsJobsErrors];

export type GetBulkUpdateVariantsJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantUpdateJobResponseCollectionCompoundDocument;
};

export type GetBulkUpdateVariantsJobsResponse = GetBulkUpdateVariantsJobsResponses[keyof GetBulkUpdateVariantsJobsResponses];

export type BulkUpdateCatalogVariantsData = {
    body: CatalogVariantUpdateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-variant-bulk-update-jobs';
};

export type BulkUpdateCatalogVariantsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkUpdateCatalogVariantsError = BulkUpdateCatalogVariantsErrors[keyof BulkUpdateCatalogVariantsErrors];

export type BulkUpdateCatalogVariantsResponses = {
    /**
     * Success
     */
    202: PostCatalogVariantUpdateJobResponse;
};

export type BulkUpdateCatalogVariantsResponse = BulkUpdateCatalogVariantsResponses[keyof BulkUpdateCatalogVariantsResponses];

export type GetBulkUpdateVariantsJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant-bulk-update-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant]'?: Array<'external_id' | 'title' | 'description' | 'sku' | 'inventory_policy' | 'inventory_quantity' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'variants'>;
    };
    url: '/api/catalog-variant-bulk-update-jobs/{job_id}';
};

export type GetBulkUpdateVariantsJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkUpdateVariantsJobError = GetBulkUpdateVariantsJobErrors[keyof GetBulkUpdateVariantsJobErrors];

export type GetBulkUpdateVariantsJobResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantUpdateJobResponseCompoundDocument;
};

export type GetBulkUpdateVariantsJobResponse = GetBulkUpdateVariantsJobResponses[keyof GetBulkUpdateVariantsJobResponses];

export type GetBulkDeleteVariantsJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant-bulk-delete-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-variant-bulk-delete-jobs';
};

export type GetBulkDeleteVariantsJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkDeleteVariantsJobsError = GetBulkDeleteVariantsJobsErrors[keyof GetBulkDeleteVariantsJobsErrors];

export type GetBulkDeleteVariantsJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantDeleteJobResponseCollection;
};

export type GetBulkDeleteVariantsJobsResponse = GetBulkDeleteVariantsJobsResponses[keyof GetBulkDeleteVariantsJobsResponses];

export type BulkDeleteCatalogVariantsData = {
    body: CatalogVariantDeleteJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-variant-bulk-delete-jobs';
};

export type BulkDeleteCatalogVariantsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkDeleteCatalogVariantsError = BulkDeleteCatalogVariantsErrors[keyof BulkDeleteCatalogVariantsErrors];

export type BulkDeleteCatalogVariantsResponses = {
    /**
     * Success
     */
    202: PostCatalogVariantDeleteJobResponse;
};

export type BulkDeleteCatalogVariantsResponse = BulkDeleteCatalogVariantsResponses[keyof BulkDeleteCatalogVariantsResponses];

export type GetBulkDeleteVariantsJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant-bulk-delete-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
    };
    url: '/api/catalog-variant-bulk-delete-jobs/{job_id}';
};

export type GetBulkDeleteVariantsJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkDeleteVariantsJobError = GetBulkDeleteVariantsJobErrors[keyof GetBulkDeleteVariantsJobErrors];

export type GetBulkDeleteVariantsJobResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantDeleteJobResponse;
};

export type GetBulkDeleteVariantsJobResponse = GetBulkDeleteVariantsJobResponses[keyof GetBulkDeleteVariantsJobResponses];

export type GetBulkCreateCategoriesJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-category-bulk-create-jobs';
};

export type GetBulkCreateCategoriesJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkCreateCategoriesJobsError = GetBulkCreateCategoriesJobsErrors[keyof GetBulkCreateCategoriesJobsErrors];

export type GetBulkCreateCategoriesJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryCreateJobResponseCollectionCompoundDocument;
};

export type GetBulkCreateCategoriesJobsResponse = GetBulkCreateCategoriesJobsResponses[keyof GetBulkCreateCategoriesJobsResponses];

export type BulkCreateCatalogCategoriesData = {
    body: CatalogCategoryCreateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-category-bulk-create-jobs';
};

export type BulkCreateCatalogCategoriesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkCreateCatalogCategoriesError = BulkCreateCatalogCategoriesErrors[keyof BulkCreateCatalogCategoriesErrors];

export type BulkCreateCatalogCategoriesResponses = {
    /**
     * Success
     */
    202: PostCatalogCategoryCreateJobResponse;
};

export type BulkCreateCatalogCategoriesResponse = BulkCreateCatalogCategoriesResponses[keyof BulkCreateCatalogCategoriesResponses];

export type GetBulkCreateCategoriesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category]'?: Array<'external_id' | 'name' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'categories'>;
    };
    url: '/api/catalog-category-bulk-create-jobs/{job_id}';
};

export type GetBulkCreateCategoriesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkCreateCategoriesJobError = GetBulkCreateCategoriesJobErrors[keyof GetBulkCreateCategoriesJobErrors];

export type GetBulkCreateCategoriesJobResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryCreateJobResponseCompoundDocument;
};

export type GetBulkCreateCategoriesJobResponse = GetBulkCreateCategoriesJobResponses[keyof GetBulkCreateCategoriesJobResponses];

export type GetBulkUpdateCategoriesJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category-bulk-update-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-category-bulk-update-jobs';
};

export type GetBulkUpdateCategoriesJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkUpdateCategoriesJobsError = GetBulkUpdateCategoriesJobsErrors[keyof GetBulkUpdateCategoriesJobsErrors];

export type GetBulkUpdateCategoriesJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryUpdateJobResponseCollectionCompoundDocument;
};

export type GetBulkUpdateCategoriesJobsResponse = GetBulkUpdateCategoriesJobsResponses[keyof GetBulkUpdateCategoriesJobsResponses];

export type BulkUpdateCatalogCategoriesData = {
    body: CatalogCategoryUpdateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-category-bulk-update-jobs';
};

export type BulkUpdateCatalogCategoriesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkUpdateCatalogCategoriesError = BulkUpdateCatalogCategoriesErrors[keyof BulkUpdateCatalogCategoriesErrors];

export type BulkUpdateCatalogCategoriesResponses = {
    /**
     * Success
     */
    202: PostCatalogCategoryUpdateJobResponse;
};

export type BulkUpdateCatalogCategoriesResponse = BulkUpdateCatalogCategoriesResponses[keyof BulkUpdateCatalogCategoriesResponses];

export type GetBulkUpdateCategoriesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category-bulk-update-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category]'?: Array<'external_id' | 'name' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'categories'>;
    };
    url: '/api/catalog-category-bulk-update-jobs/{job_id}';
};

export type GetBulkUpdateCategoriesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkUpdateCategoriesJobError = GetBulkUpdateCategoriesJobErrors[keyof GetBulkUpdateCategoriesJobErrors];

export type GetBulkUpdateCategoriesJobResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryUpdateJobResponseCompoundDocument;
};

export type GetBulkUpdateCategoriesJobResponse = GetBulkUpdateCategoriesJobResponses[keyof GetBulkUpdateCategoriesJobResponses];

export type GetBulkDeleteCategoriesJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category-bulk-delete-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/catalog-category-bulk-delete-jobs';
};

export type GetBulkDeleteCategoriesJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkDeleteCategoriesJobsError = GetBulkDeleteCategoriesJobsErrors[keyof GetBulkDeleteCategoriesJobsErrors];

export type GetBulkDeleteCategoriesJobsResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryDeleteJobResponseCollection;
};

export type GetBulkDeleteCategoriesJobsResponse = GetBulkDeleteCategoriesJobsResponses[keyof GetBulkDeleteCategoriesJobsResponses];

export type BulkDeleteCatalogCategoriesData = {
    body: CatalogCategoryDeleteJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/catalog-category-bulk-delete-jobs';
};

export type BulkDeleteCatalogCategoriesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkDeleteCatalogCategoriesError = BulkDeleteCatalogCategoriesErrors[keyof BulkDeleteCatalogCategoriesErrors];

export type BulkDeleteCatalogCategoriesResponses = {
    /**
     * Success
     */
    202: PostCatalogCategoryDeleteJobResponse;
};

export type BulkDeleteCatalogCategoriesResponse = BulkDeleteCatalogCategoriesResponses[keyof BulkDeleteCatalogCategoriesResponses];

export type GetBulkDeleteCategoriesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category-bulk-delete-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
    };
    url: '/api/catalog-category-bulk-delete-jobs/{job_id}';
};

export type GetBulkDeleteCategoriesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkDeleteCategoriesJobError = GetBulkDeleteCategoriesJobErrors[keyof GetBulkDeleteCategoriesJobErrors];

export type GetBulkDeleteCategoriesJobResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryDeleteJobResponse;
};

export type GetBulkDeleteCategoriesJobResponse = GetBulkDeleteCategoriesJobResponses[keyof GetBulkDeleteCategoriesJobResponses];

export type CreateBackInStockSubscriptionData = {
    body: ServerBisSubscriptionCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/back-in-stock-subscriptions';
};

export type CreateBackInStockSubscriptionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateBackInStockSubscriptionError = CreateBackInStockSubscriptionErrors[keyof CreateBackInStockSubscriptionErrors];

export type CreateBackInStockSubscriptionResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type GetItemsForCatalogCategoryData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string | null;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-item]'?: Array<'external_id' | 'title' | 'description' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant]'?: Array<'external_id' | 'title' | 'description' | 'sku' | 'inventory_policy' | 'inventory_quantity' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`category.id`: `equals`<br>`title`: `contains`<br>`published`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'variants'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-categories/{id}/items';
};

export type GetItemsForCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetItemsForCatalogCategoryError = GetItemsForCatalogCategoryErrors[keyof GetItemsForCatalogCategoryErrors];

export type GetItemsForCatalogCategoryResponses = {
    /**
     * Success
     */
    200: GetCatalogItemResponseCollectionCompoundDocument;
};

export type GetItemsForCatalogCategoryResponse = GetItemsForCatalogCategoryResponses[keyof GetItemsForCatalogCategoryResponses];

export type RemoveItemsFromCatalogCategoryData = {
    body: CatalogCategoryItemOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-categories/{id}/relationships/items';
};

export type RemoveItemsFromCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RemoveItemsFromCatalogCategoryError = RemoveItemsFromCatalogCategoryErrors[keyof RemoveItemsFromCatalogCategoryErrors];

export type RemoveItemsFromCatalogCategoryResponses = {
    /**
     * Success
     */
    204: void;
};

export type RemoveItemsFromCatalogCategoryResponse = RemoveItemsFromCatalogCategoryResponses[keyof RemoveItemsFromCatalogCategoryResponses];

export type GetItemIdsForCatalogCategoryData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string | null;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`category.id`: `equals`<br>`title`: `contains`<br>`published`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-categories/{id}/relationships/items';
};

export type GetItemIdsForCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetItemIdsForCatalogCategoryError = GetItemIdsForCatalogCategoryErrors[keyof GetItemIdsForCatalogCategoryErrors];

export type GetItemIdsForCatalogCategoryResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryItemsRelationshipsResponseCollection;
};

export type GetItemIdsForCatalogCategoryResponse = GetItemIdsForCatalogCategoryResponses[keyof GetItemIdsForCatalogCategoryResponses];

export type UpdateItemsForCatalogCategoryData = {
    body: CatalogCategoryItemOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-categories/{id}/relationships/items';
};

export type UpdateItemsForCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateItemsForCatalogCategoryError = UpdateItemsForCatalogCategoryErrors[keyof UpdateItemsForCatalogCategoryErrors];

export type UpdateItemsForCatalogCategoryResponses = {
    /**
     * Success
     */
    204: void;
};

export type UpdateItemsForCatalogCategoryResponse = UpdateItemsForCatalogCategoryResponses[keyof UpdateItemsForCatalogCategoryResponses];

export type AddItemsToCatalogCategoryData = {
    body: CatalogCategoryItemOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog category ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-categories/{id}/relationships/items';
};

export type AddItemsToCatalogCategoryErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type AddItemsToCatalogCategoryError = AddItemsToCatalogCategoryErrors[keyof AddItemsToCatalogCategoryErrors];

export type AddItemsToCatalogCategoryResponses = {
    /**
     * Success
     */
    204: void;
};

export type AddItemsToCatalogCategoryResponse = AddItemsToCatalogCategoryResponses[keyof AddItemsToCatalogCategoryResponses];

export type GetVariantsForCatalogItemData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string | null;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-variant]'?: Array<'external_id' | 'title' | 'description' | 'sku' | 'inventory_policy' | 'inventory_quantity' | 'price' | 'url' | 'image_full_url' | 'image_thumbnail_url' | 'images' | 'custom_metadata' | 'published' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`sku`: `equals`<br>`title`: `contains`<br>`published`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-items/{id}/variants';
};

export type GetVariantsForCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetVariantsForCatalogItemError = GetVariantsForCatalogItemErrors[keyof GetVariantsForCatalogItemErrors];

export type GetVariantsForCatalogItemResponses = {
    /**
     * Success
     */
    200: GetCatalogVariantResponseCollection;
};

export type GetVariantsForCatalogItemResponse = GetVariantsForCatalogItemResponses[keyof GetVariantsForCatalogItemResponses];

export type GetVariantIdsForCatalogItemData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string | null;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`sku`: `equals`<br>`title`: `contains`<br>`published`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-items/{id}/relationships/variants';
};

export type GetVariantIdsForCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetVariantIdsForCatalogItemError = GetVariantIdsForCatalogItemErrors[keyof GetVariantIdsForCatalogItemErrors];

export type GetVariantIdsForCatalogItemResponses = {
    /**
     * Success
     */
    200: GetCatalogItemVariantsRelationshipsResponseCollection;
};

export type GetVariantIdsForCatalogItemResponse = GetVariantIdsForCatalogItemResponses[keyof GetVariantIdsForCatalogItemResponses];

export type GetCategoriesForCatalogItemData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string | null;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[catalog-category]'?: Array<'external_id' | 'name' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`name`: `contains`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-items/{id}/categories';
};

export type GetCategoriesForCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCategoriesForCatalogItemError = GetCategoriesForCatalogItemErrors[keyof GetCategoriesForCatalogItemErrors];

export type GetCategoriesForCatalogItemResponses = {
    /**
     * Success
     */
    200: GetCatalogCategoryResponseCollection;
};

export type GetCategoriesForCatalogItemResponse = GetCategoriesForCatalogItemResponses[keyof GetCategoriesForCatalogItemResponses];

export type RemoveCategoriesFromCatalogItemData = {
    body: CatalogItemCategoryOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-items/{id}/relationships/categories';
};

export type RemoveCategoriesFromCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RemoveCategoriesFromCatalogItemError = RemoveCategoriesFromCatalogItemErrors[keyof RemoveCategoriesFromCatalogItemErrors];

export type RemoveCategoriesFromCatalogItemResponses = {
    /**
     * Success
     */
    204: void;
};

export type RemoveCategoriesFromCatalogItemResponse = RemoveCategoriesFromCatalogItemResponses[keyof RemoveCategoriesFromCatalogItemResponses];

export type GetCategoryIdsForCatalogItemData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string | null;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`ids`: `any`<br>`item.id`: `equals`<br>`name`: `contains`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/catalog-items/{id}/relationships/categories';
};

export type GetCategoryIdsForCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCategoryIdsForCatalogItemError = GetCategoryIdsForCatalogItemErrors[keyof GetCategoryIdsForCatalogItemErrors];

export type GetCategoryIdsForCatalogItemResponses = {
    /**
     * Success
     */
    200: GetCatalogItemCategoriesRelationshipsResponseCollection;
};

export type GetCategoryIdsForCatalogItemResponse = GetCategoryIdsForCatalogItemResponses[keyof GetCategoryIdsForCatalogItemResponses];

export type UpdateCategoriesForCatalogItemData = {
    body: CatalogItemCategoryOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-items/{id}/relationships/categories';
};

export type UpdateCategoriesForCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCategoriesForCatalogItemError = UpdateCategoriesForCatalogItemErrors[keyof UpdateCategoriesForCatalogItemErrors];

export type UpdateCategoriesForCatalogItemResponses = {
    /**
     * Success
     */
    204: void;
};

export type UpdateCategoriesForCatalogItemResponse = UpdateCategoriesForCatalogItemResponses[keyof UpdateCategoriesForCatalogItemResponses];

export type AddCategoriesToCatalogItemData = {
    body: CatalogItemCategoryOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The catalog item ID is a compound ID (string), with format: `{integration}:::{catalog}:::{external_id}`. Currently, the only supported integration type is `$custom`, and the only supported catalog is `$default`.
         */
        id: string;
    };
    query?: never;
    url: '/api/catalog-items/{id}/relationships/categories';
};

export type AddCategoriesToCatalogItemErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type AddCategoriesToCatalogItemError = AddCategoriesToCatalogItemErrors[keyof AddCategoriesToCatalogItemErrors];

export type AddCategoriesToCatalogItemResponses = {
    /**
     * Success
     */
    204: void;
};

export type AddCategoriesToCatalogItemResponse = AddCategoriesToCatalogItemResponses[keyof AddCategoriesToCatalogItemResponses];

export type GetCouponsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon]'?: Array<'external_id' | 'description'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/coupons';
};

export type GetCouponsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCouponsError = GetCouponsErrors[keyof GetCouponsErrors];

export type GetCouponsResponses = {
    /**
     * Success
     */
    200: GetCouponResponseCollection;
};

export type GetCouponsResponse = GetCouponsResponses[keyof GetCouponsResponses];

export type CreateCouponData = {
    body: CouponCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/coupons';
};

export type CreateCouponErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateCouponError = CreateCouponErrors[keyof CreateCouponErrors];

export type CreateCouponResponses = {
    /**
     * Success
     */
    201: PostCouponResponse;
};

export type CreateCouponResponse = CreateCouponResponses[keyof CreateCouponResponses];

export type DeleteCouponData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The internal id of a Coupon is equivalent to its external id stored within an integration.
         */
        id: string;
    };
    query?: never;
    url: '/api/coupons/{id}';
};

export type DeleteCouponErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteCouponError = DeleteCouponErrors[keyof DeleteCouponErrors];

export type DeleteCouponResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteCouponResponse = DeleteCouponResponses[keyof DeleteCouponResponses];

export type GetCouponData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The internal id of a Coupon is equivalent to its external id stored within an integration.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon]'?: Array<'external_id' | 'description'>;
    };
    url: '/api/coupons/{id}';
};

export type GetCouponErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCouponError = GetCouponErrors[keyof GetCouponErrors];

export type GetCouponResponses = {
    /**
     * Success
     */
    200: GetCouponResponse;
};

export type GetCouponResponse2 = GetCouponResponses[keyof GetCouponResponses];

export type UpdateCouponData = {
    body: CouponUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The internal id of a Coupon is equivalent to its external id stored within an integration.
         */
        id: string;
    };
    query?: never;
    url: '/api/coupons/{id}';
};

export type UpdateCouponErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCouponError = UpdateCouponErrors[keyof UpdateCouponErrors];

export type UpdateCouponResponses = {
    /**
     * Success
     */
    200: PatchCouponResponse;
};

export type UpdateCouponResponse = UpdateCouponResponses[keyof UpdateCouponResponses];

export type GetCouponCodesData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon-code]'?: Array<'unique_code' | 'expires_at' | 'status'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon]'?: Array<'external_id' | 'description'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`expires_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`status`: `equals`<br>`coupon.id`: `any`, `equals`<br>`profile.id`: `any`, `equals`
         */
        filter: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'coupon'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/coupon-codes';
};

export type GetCouponCodesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCouponCodesError = GetCouponCodesErrors[keyof GetCouponCodesErrors];

export type GetCouponCodesResponses = {
    /**
     * Success
     */
    200: GetCouponCodeResponseCollectionCompoundDocument;
};

export type GetCouponCodesResponse = GetCouponCodesResponses[keyof GetCouponCodesResponses];

export type CreateCouponCodeData = {
    body: CouponCodeCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/coupon-codes';
};

export type CreateCouponCodeErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateCouponCodeError = CreateCouponCodeErrors[keyof CreateCouponCodeErrors];

export type CreateCouponCodeResponses = {
    /**
     * Success
     */
    200: PostCouponCodeResponse;
};

export type CreateCouponCodeResponse = CreateCouponCodeResponses[keyof CreateCouponCodeResponses];

export type DeleteCouponCodeData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.
         */
        id: string;
    };
    query?: never;
    url: '/api/coupon-codes/{id}';
};

export type DeleteCouponCodeErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteCouponCodeError = DeleteCouponCodeErrors[keyof DeleteCouponCodeErrors];

export type DeleteCouponCodeResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteCouponCodeResponse = DeleteCouponCodeResponses[keyof DeleteCouponCodeResponses];

export type GetCouponCodeData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon-code]'?: Array<'unique_code' | 'expires_at' | 'status'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon]'?: Array<'external_id' | 'description'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'coupon'>;
    };
    url: '/api/coupon-codes/{id}';
};

export type GetCouponCodeErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCouponCodeError = GetCouponCodeErrors[keyof GetCouponCodeErrors];

export type GetCouponCodeResponses = {
    /**
     * Success
     */
    200: GetCouponCodeResponseCompoundDocument;
};

export type GetCouponCodeResponse = GetCouponCodeResponses[keyof GetCouponCodeResponses];

export type UpdateCouponCodeData = {
    body: CouponCodeUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The id of a coupon code is a combination of its unique code and the id of the coupon it is associated with.
         */
        id: string;
    };
    query?: never;
    url: '/api/coupon-codes/{id}';
};

export type UpdateCouponCodeErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCouponCodeError = UpdateCouponCodeErrors[keyof UpdateCouponCodeErrors];

export type UpdateCouponCodeResponses = {
    /**
     * Success
     */
    200: PatchCouponCodeResponse;
};

export type UpdateCouponCodeResponse = UpdateCouponCodeResponses[keyof UpdateCouponCodeResponses];

export type GetBulkCreateCouponCodeJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon-code-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/coupon-code-bulk-create-jobs';
};

export type GetBulkCreateCouponCodeJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkCreateCouponCodeJobsError = GetBulkCreateCouponCodeJobsErrors[keyof GetBulkCreateCouponCodeJobsErrors];

export type GetBulkCreateCouponCodeJobsResponses = {
    /**
     * Success
     */
    200: GetCouponCodeCreateJobResponseCollectionCompoundDocument;
};

export type GetBulkCreateCouponCodeJobsResponse = GetBulkCreateCouponCodeJobsResponses[keyof GetBulkCreateCouponCodeJobsResponses];

export type BulkCreateCouponCodesData = {
    body: CouponCodeCreateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/coupon-code-bulk-create-jobs';
};

export type BulkCreateCouponCodesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkCreateCouponCodesError = BulkCreateCouponCodesErrors[keyof BulkCreateCouponCodesErrors];

export type BulkCreateCouponCodesResponses = {
    /**
     * Success
     */
    202: PostCouponCodeCreateJobResponse;
};

export type BulkCreateCouponCodesResponse = BulkCreateCouponCodesResponses[keyof BulkCreateCouponCodesResponses];

export type GetBulkCreateCouponCodesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon-code-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'errors' | 'expires_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon-code]'?: Array<'unique_code' | 'expires_at' | 'status'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'coupon-codes'>;
    };
    url: '/api/coupon-code-bulk-create-jobs/{job_id}';
};

export type GetBulkCreateCouponCodesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkCreateCouponCodesJobError = GetBulkCreateCouponCodesJobErrors[keyof GetBulkCreateCouponCodesJobErrors];

export type GetBulkCreateCouponCodesJobResponses = {
    /**
     * Success
     */
    200: GetCouponCodeCreateJobResponseCompoundDocument;
};

export type GetBulkCreateCouponCodesJobResponse = GetBulkCreateCouponCodesJobResponses[keyof GetBulkCreateCouponCodesJobResponses];

export type GetCouponForCouponCodeData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the coupon to look up the relationship of.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon]'?: Array<'external_id' | 'description'>;
    };
    url: '/api/coupon-codes/{id}/coupon';
};

export type GetCouponForCouponCodeErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCouponForCouponCodeError = GetCouponForCouponCodeErrors[keyof GetCouponForCouponCodeErrors];

export type GetCouponForCouponCodeResponses = {
    /**
     * Success
     */
    200: GetCouponResponse;
};

export type GetCouponForCouponCodeResponse = GetCouponForCouponCodeResponses[keyof GetCouponForCouponCodeResponses];

export type GetCouponIdForCouponCodeData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the coupon to look up the relationship of.
         */
        id: string;
    };
    query?: never;
    url: '/api/coupon-codes/{id}/relationships/coupon';
};

export type GetCouponIdForCouponCodeErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCouponIdForCouponCodeError = GetCouponIdForCouponCodeErrors[keyof GetCouponIdForCouponCodeErrors];

export type GetCouponIdForCouponCodeResponses = {
    /**
     * Success
     */
    200: GetCouponCodeCouponRelationshipResponse;
};

export type GetCouponIdForCouponCodeResponse = GetCouponIdForCouponCodeResponses[keyof GetCouponIdForCouponCodeResponses];

export type GetCouponCodesForCouponData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the coupon to look up the relationship of.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[coupon-code]'?: Array<'unique_code' | 'expires_at' | 'status'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`expires_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`status`: `equals`<br>`coupon.id`: `any`, `equals`<br>`profile.id`: `any`, `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/coupons/{id}/coupon-codes';
};

export type GetCouponCodesForCouponErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCouponCodesForCouponError = GetCouponCodesForCouponErrors[keyof GetCouponCodesForCouponErrors];

export type GetCouponCodesForCouponResponses = {
    /**
     * Success
     */
    200: GetCouponCodeResponseCollection;
};

export type GetCouponCodesForCouponResponse = GetCouponCodesForCouponResponses[keyof GetCouponCodesForCouponResponses];

export type GetCouponCodeIdsForCouponData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the coupon to look up the relationship of.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`expires_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`status`: `equals`<br>`coupon.id`: `any`, `equals`<br>`profile.id`: `any`, `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/coupons/{id}/relationships/coupon-codes';
};

export type GetCouponCodeIdsForCouponErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCouponCodeIdsForCouponError = GetCouponCodeIdsForCouponErrors[keyof GetCouponCodeIdsForCouponErrors];

export type GetCouponCodeIdsForCouponResponses = {
    /**
     * Success
     */
    200: GetCouponCodesRelationshipsResponseCollection;
};

export type GetCouponCodeIdsForCouponResponse = GetCouponCodeIdsForCouponResponses[keyof GetCouponCodeIdsForCouponResponses];

export type RequestProfileDeletionData = {
    body: DataPrivacyCreateDeletionJobQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/data-privacy-deletion-jobs';
};

export type RequestProfileDeletionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RequestProfileDeletionError = RequestProfileDeletionErrors[keyof RequestProfileDeletionErrors];

export type RequestProfileDeletionResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type GetEventsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[event]'?: Array<'timestamp' | 'event_properties' | 'datetime' | 'uuid'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`metric_id`: `equals`<br>`profile_id`: `equals`<br>`profile`: `has`<br>`datetime`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'attributions' | 'metric' | 'profile'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'datetime' | '-datetime' | 'timestamp' | '-timestamp';
    };
    url: '/api/events';
};

export type GetEventsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetEventsError = GetEventsErrors[keyof GetEventsErrors];

export type GetEventsResponses = {
    /**
     * Success
     */
    200: GetEventResponseCollectionCompoundDocument;
};

export type GetEventsResponse = GetEventsResponses[keyof GetEventsResponses];

export type CreateEventData = {
    body: EventCreateQueryV2;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/events';
};

export type CreateEventErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateEventError = CreateEventErrors[keyof CreateEventErrors];

export type CreateEventResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type GetEventData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the event
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[event]'?: Array<'timestamp' | 'event_properties' | 'datetime' | 'uuid'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'attributions' | 'metric' | 'profile'>;
    };
    url: '/api/events/{id}';
};

export type GetEventErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetEventError = GetEventErrors[keyof GetEventErrors];

export type GetEventResponses = {
    /**
     * Success
     */
    200: GetEventResponseCompoundDocument;
};

export type GetEventResponse = GetEventResponses[keyof GetEventResponses];

export type BulkCreateEventsData = {
    body: EventsBulkCreateJob;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/event-bulk-create-jobs';
};

export type BulkCreateEventsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkCreateEventsError = BulkCreateEventsErrors[keyof BulkCreateEventsErrors];

export type BulkCreateEventsResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type GetMetricForEventData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the event
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
    };
    url: '/api/events/{id}/metric';
};

export type GetMetricForEventErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricForEventError = GetMetricForEventErrors[keyof GetMetricForEventErrors];

export type GetMetricForEventResponses = {
    /**
     * Success
     */
    200: GetMetricResponse;
};

export type GetMetricForEventResponse = GetMetricForEventResponses[keyof GetMetricForEventResponses];

export type GetMetricIdForEventData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the event
         */
        id: string;
    };
    query?: never;
    url: '/api/events/{id}/relationships/metric';
};

export type GetMetricIdForEventErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricIdForEventError = GetMetricIdForEventErrors[keyof GetMetricIdForEventErrors];

export type GetMetricIdForEventResponses = {
    /**
     * Success
     */
    200: GetEventMetricRelationshipResponse;
};

export type GetMetricIdForEventResponse = GetMetricIdForEventResponses[keyof GetMetricIdForEventResponses];

export type GetProfileForEventData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the event
         */
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties' | 'subscriptions' | 'subscriptions.email' | 'subscriptions.email.marketing' | 'subscriptions.email.marketing.can_receive_email_marketing' | 'subscriptions.email.marketing.consent' | 'subscriptions.email.marketing.consent_timestamp' | 'subscriptions.email.marketing.last_updated' | 'subscriptions.email.marketing.method' | 'subscriptions.email.marketing.method_detail' | 'subscriptions.email.marketing.custom_method_detail' | 'subscriptions.email.marketing.double_optin' | 'subscriptions.email.marketing.suppression' | 'subscriptions.email.marketing.list_suppressions' | 'subscriptions.sms' | 'subscriptions.sms.marketing' | 'subscriptions.sms.marketing.can_receive_sms_marketing' | 'subscriptions.sms.marketing.consent' | 'subscriptions.sms.marketing.consent_timestamp' | 'subscriptions.sms.marketing.method' | 'subscriptions.sms.marketing.method_detail' | 'subscriptions.sms.marketing.last_updated' | 'subscriptions.sms.transactional' | 'subscriptions.sms.transactional.can_receive_sms_transactional' | 'subscriptions.sms.transactional.consent' | 'subscriptions.sms.transactional.consent_timestamp' | 'subscriptions.sms.transactional.method' | 'subscriptions.sms.transactional.method_detail' | 'subscriptions.sms.transactional.last_updated' | 'subscriptions.mobile_push' | 'subscriptions.mobile_push.marketing' | 'subscriptions.mobile_push.marketing.can_receive_push_marketing' | 'subscriptions.mobile_push.marketing.consent' | 'subscriptions.mobile_push.marketing.consent_timestamp' | 'predictive_analytics' | 'predictive_analytics.historic_clv' | 'predictive_analytics.predicted_clv' | 'predictive_analytics.total_clv' | 'predictive_analytics.historic_number_of_orders' | 'predictive_analytics.predicted_number_of_orders' | 'predictive_analytics.average_days_between_orders' | 'predictive_analytics.average_order_value' | 'predictive_analytics.churn_probability' | 'predictive_analytics.expected_date_of_next_order'>;
    };
    url: '/api/events/{id}/profile';
};

export type GetProfileForEventErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfileForEventError = GetProfileForEventErrors[keyof GetProfileForEventErrors];

export type GetProfileForEventResponses = {
    /**
     * Success
     */
    200: GetProfileResponse;
};

export type GetProfileForEventResponse = GetProfileForEventResponses[keyof GetProfileForEventResponses];

export type GetProfileIdForEventData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the event
         */
        id: string;
    };
    query?: never;
    url: '/api/events/{id}/relationships/profile';
};

export type GetProfileIdForEventErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfileIdForEventError = GetProfileIdForEventErrors[keyof GetProfileIdForEventErrors];

export type GetProfileIdForEventResponses = {
    /**
     * Success
     */
    200: GetEventProfileRelationshipResponse;
};

export type GetProfileIdForEventResponse = GetProfileIdForEventResponses[keyof GetProfileIdForEventResponses];

export type GetFlowsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-action]'?: Array<'action_type' | 'status' | 'created' | 'updated' | 'settings' | 'tracking_options' | 'tracking_options.add_utm' | 'tracking_options.utm_params' | 'tracking_options.is_tracking_opens' | 'tracking_options.is_tracking_clicks' | 'send_options' | 'send_options.use_smart_sending' | 'send_options.is_transactional' | 'badge_options' | 'badge_options.badge_config' | 'badge_options.value' | 'badge_options.set_from_property' | 'render_options' | 'render_options.shorten_links' | 'render_options.add_org_prefix' | 'render_options.add_info_link' | 'render_options.add_opt_out_language'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`<br>`name`: `contains`, `ends-with`, `equals`, `starts-with`<br>`status`: `equals`<br>`archived`: `equals`<br>`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`trigger_type`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-actions' | 'tags'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 50. Min: 1. Max: 50.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'status' | '-status' | 'trigger_type' | '-trigger_type' | 'updated' | '-updated';
    };
    url: '/api/flows';
};

export type GetFlowsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowsError = GetFlowsErrors[keyof GetFlowsErrors];

export type GetFlowsResponses = {
    /**
     * Success
     */
    200: GetFlowResponseCollectionCompoundDocument;
};

export type GetFlowsResponse = GetFlowsResponses[keyof GetFlowsResponses];

export type CreateFlowData = {
    /**
     * Creates a Flow from parameters
     */
    body: FlowCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'definition'
         */
        'additional-fields[flow]'?: Array<'definition'>;
    };
    url: '/api/flows';
};

export type CreateFlowErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateFlowError = CreateFlowErrors[keyof CreateFlowErrors];

export type CreateFlowResponses = {
    /**
     * Success
     */
    201: PostFlowV2Response;
};

export type CreateFlowResponse = CreateFlowResponses[keyof CreateFlowResponses];

export type DeleteFlowData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the Flow to delete. Ex: XVTP5Q
         */
        id: string;
    };
    query?: never;
    url: '/api/flows/{id}';
};

export type DeleteFlowErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteFlowError = DeleteFlowErrors[keyof DeleteFlowErrors];

export type DeleteFlowResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteFlowResponse = DeleteFlowResponses[keyof DeleteFlowResponses];

export type GetFlowData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'definition'
         */
        'additional-fields[flow]'?: Array<'definition'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-action]'?: Array<'action_type' | 'status' | 'created' | 'updated' | 'settings' | 'tracking_options' | 'tracking_options.add_utm' | 'tracking_options.utm_params' | 'tracking_options.is_tracking_opens' | 'tracking_options.is_tracking_clicks' | 'send_options' | 'send_options.use_smart_sending' | 'send_options.is_transactional' | 'badge_options' | 'badge_options.badge_config' | 'badge_options.value' | 'badge_options.set_from_property' | 'render_options' | 'render_options.shorten_links' | 'render_options.add_org_prefix' | 'render_options.add_info_link' | 'render_options.add_opt_out_language'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type' | 'definition' | 'definition.triggers' | 'definition.profile_filter' | 'definition.profile_filter.condition_groups' | 'definition.actions' | 'definition.entry_action_id'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-actions' | 'tags'>;
    };
    url: '/api/flows/{id}';
};

export type GetFlowErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowError = GetFlowErrors[keyof GetFlowErrors];

export type GetFlowResponses = {
    /**
     * Success
     */
    200: GetFlowV2ResponseCompoundDocument;
};

export type GetFlowResponse2 = GetFlowResponses[keyof GetFlowResponses];

export type UpdateFlowData = {
    body: FlowUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the Flow to update. Ex: XVTP5Q
         */
        id: string;
    };
    query?: never;
    url: '/api/flows/{id}';
};

export type UpdateFlowErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateFlowError = UpdateFlowErrors[keyof UpdateFlowErrors];

export type UpdateFlowResponses = {
    /**
     * Success
     */
    200: PatchFlowResponse;
};

export type UpdateFlowResponse = UpdateFlowResponses[keyof UpdateFlowResponses];

export type GetFlowActionData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-action]'?: Array<'action_type' | 'status' | 'created' | 'updated' | 'settings' | 'tracking_options' | 'tracking_options.add_utm' | 'tracking_options.utm_params' | 'tracking_options.is_tracking_opens' | 'tracking_options.is_tracking_clicks' | 'send_options' | 'send_options.use_smart_sending' | 'send_options.is_transactional' | 'badge_options' | 'badge_options.badge_config' | 'badge_options.value' | 'badge_options.set_from_property' | 'render_options' | 'render_options.shorten_links' | 'render_options.add_org_prefix' | 'render_options.add_info_link' | 'render_options.add_opt_out_language'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-message]'?: Array<'name' | 'channel' | 'content' | 'content.subject' | 'content.preview_text' | 'content.from_email' | 'content.from_label' | 'content.reply_to_email' | 'content.cc_email' | 'content.bcc_email' | 'content.body' | 'content.media_url' | 'content.title' | 'content.sound' | 'content.badge' | 'content.dynamic_image' | 'content.ios_link' | 'content.android_link' | 'content.on_open' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow' | 'flow-messages'>;
    };
    url: '/api/flow-actions/{id}';
};

export type GetFlowActionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowActionError = GetFlowActionErrors[keyof GetFlowActionErrors];

export type GetFlowActionResponses = {
    /**
     * Success
     */
    200: GetFlowActionResponseCompoundDocument;
};

export type GetFlowActionResponse2 = GetFlowActionResponses[keyof GetFlowActionResponses];

export type GetFlowMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-action]'?: Array<'action_type' | 'status' | 'created' | 'updated' | 'settings' | 'tracking_options' | 'tracking_options.add_utm' | 'tracking_options.utm_params' | 'tracking_options.is_tracking_opens' | 'tracking_options.is_tracking_clicks' | 'send_options' | 'send_options.use_smart_sending' | 'send_options.is_transactional' | 'badge_options' | 'badge_options.badge_config' | 'badge_options.value' | 'badge_options.set_from_property' | 'render_options' | 'render_options.shorten_links' | 'render_options.add_org_prefix' | 'render_options.add_info_link' | 'render_options.add_opt_out_language'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-message]'?: Array<'name' | 'channel' | 'content' | 'content.subject' | 'content.preview_text' | 'content.from_email' | 'content.from_label' | 'content.reply_to_email' | 'content.cc_email' | 'content.bcc_email' | 'content.body' | 'content.media_url' | 'content.title' | 'content.sound' | 'content.badge' | 'content.dynamic_image' | 'content.ios_link' | 'content.android_link' | 'content.on_open' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template]'?: Array<'name' | 'editor_type' | 'html' | 'text' | 'amp' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-action' | 'template'>;
    };
    url: '/api/flow-messages/{id}';
};

export type GetFlowMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowMessageError = GetFlowMessageErrors[keyof GetFlowMessageErrors];

export type GetFlowMessageResponses = {
    /**
     * Success
     */
    200: GetFlowMessageResponseCompoundDocument;
};

export type GetFlowMessageResponse = GetFlowMessageResponses[keyof GetFlowMessageResponses];

export type GetActionsForFlowData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-action]'?: Array<'action_type' | 'status' | 'created' | 'updated' | 'settings' | 'tracking_options' | 'tracking_options.add_utm' | 'tracking_options.utm_params' | 'tracking_options.is_tracking_opens' | 'tracking_options.is_tracking_clicks' | 'send_options' | 'send_options.use_smart_sending' | 'send_options.is_transactional' | 'badge_options' | 'badge_options.badge_config' | 'badge_options.value' | 'badge_options.set_from_property' | 'render_options' | 'render_options.shorten_links' | 'render_options.add_org_prefix' | 'render_options.add_info_link' | 'render_options.add_opt_out_language'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`<br>`action_type`: `any`, `equals`<br>`status`: `equals`<br>`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 50. Min: 1. Max: 50.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'action_type' | '-action_type' | 'created' | '-created' | 'id' | '-id' | 'status' | '-status' | 'updated' | '-updated';
    };
    url: '/api/flows/{id}/flow-actions';
};

export type GetActionsForFlowErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetActionsForFlowError = GetActionsForFlowErrors[keyof GetActionsForFlowErrors];

export type GetActionsForFlowResponses = {
    /**
     * Success
     */
    200: GetFlowActionResponseCollection;
};

export type GetActionsForFlowResponse = GetActionsForFlowResponses[keyof GetActionsForFlowResponses];

export type GetActionIdsForFlowData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`<br>`action_type`: `any`, `equals`<br>`status`: `equals`<br>`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 50. Min: 1. Max: 50.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'action_type' | '-action_type' | 'created' | '-created' | 'id' | '-id' | 'status' | '-status' | 'updated' | '-updated';
    };
    url: '/api/flows/{id}/relationships/flow-actions';
};

export type GetActionIdsForFlowErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetActionIdsForFlowError = GetActionIdsForFlowErrors[keyof GetActionIdsForFlowErrors];

export type GetActionIdsForFlowResponses = {
    /**
     * Success
     */
    200: GetFlowFlowActionRelationshipListResponseCollection;
};

export type GetActionIdsForFlowResponse = GetActionIdsForFlowResponses[keyof GetActionIdsForFlowResponses];

export type GetTagsForFlowData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
    };
    url: '/api/flows/{id}/tags';
};

export type GetTagsForFlowErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagsForFlowError = GetTagsForFlowErrors[keyof GetTagsForFlowErrors];

export type GetTagsForFlowResponses = {
    /**
     * Success
     */
    200: GetTagResponseCollection;
};

export type GetTagsForFlowResponse = GetTagsForFlowResponses[keyof GetTagsForFlowResponses];

export type GetTagIdsForFlowData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/flows/{id}/relationships/tags';
};

export type GetTagIdsForFlowErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagIdsForFlowError = GetTagIdsForFlowErrors[keyof GetTagIdsForFlowErrors];

export type GetTagIdsForFlowResponses = {
    /**
     * Success
     */
    200: GetFlowTagsRelationshipsResponseCollection;
};

export type GetTagIdsForFlowResponse = GetTagIdsForFlowResponses[keyof GetTagIdsForFlowResponses];

export type GetFlowForFlowActionData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
    };
    url: '/api/flow-actions/{id}/flow';
};

export type GetFlowForFlowActionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowForFlowActionError = GetFlowForFlowActionErrors[keyof GetFlowForFlowActionErrors];

export type GetFlowForFlowActionResponses = {
    /**
     * Success
     */
    200: GetFlowResponse;
};

export type GetFlowForFlowActionResponse = GetFlowForFlowActionResponses[keyof GetFlowForFlowActionResponses];

export type GetFlowIdForFlowActionData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/flow-actions/{id}/relationships/flow';
};

export type GetFlowIdForFlowActionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowIdForFlowActionError = GetFlowIdForFlowActionErrors[keyof GetFlowIdForFlowActionErrors];

export type GetFlowIdForFlowActionResponses = {
    /**
     * Success
     */
    200: GetFlowActionFlowRelationshipResponse;
};

export type GetFlowIdForFlowActionResponse = GetFlowIdForFlowActionResponses[keyof GetFlowIdForFlowActionResponses];

export type GetFlowActionMessagesData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-message]'?: Array<'name' | 'channel' | 'content' | 'content.subject' | 'content.preview_text' | 'content.from_email' | 'content.from_label' | 'content.reply_to_email' | 'content.cc_email' | 'content.bcc_email' | 'content.body' | 'content.media_url' | 'content.title' | 'content.sound' | 'content.badge' | 'content.dynamic_image' | 'content.ios_link' | 'content.android_link' | 'content.on_open' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`<br>`name`: `contains`, `ends-with`, `equals`, `starts-with`<br>`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 50. Min: 1. Max: 50.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'updated' | '-updated';
    };
    url: '/api/flow-actions/{id}/flow-messages';
};

export type GetFlowActionMessagesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowActionMessagesError = GetFlowActionMessagesErrors[keyof GetFlowActionMessagesErrors];

export type GetFlowActionMessagesResponses = {
    /**
     * Success
     */
    200: GetFlowMessageResponseCollection;
};

export type GetFlowActionMessagesResponse = GetFlowActionMessagesResponses[keyof GetFlowActionMessagesResponses];

export type GetMessageIdsForFlowActionData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`name`: `contains`, `ends-with`, `equals`, `starts-with`<br>`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 50. Min: 1. Max: 50.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'updated' | '-updated';
    };
    url: '/api/flow-actions/{id}/relationships/flow-messages';
};

export type GetMessageIdsForFlowActionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMessageIdsForFlowActionError = GetMessageIdsForFlowActionErrors[keyof GetMessageIdsForFlowActionErrors];

export type GetMessageIdsForFlowActionResponses = {
    /**
     * Success
     */
    200: GetFlowActionFlowMessageRelationshipResponseCollection;
};

export type GetMessageIdsForFlowActionResponse = GetMessageIdsForFlowActionResponses[keyof GetMessageIdsForFlowActionResponses];

export type GetActionForFlowMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow-action]'?: Array<'action_type' | 'status' | 'created' | 'updated' | 'settings' | 'tracking_options' | 'tracking_options.add_utm' | 'tracking_options.utm_params' | 'tracking_options.is_tracking_opens' | 'tracking_options.is_tracking_clicks' | 'send_options' | 'send_options.use_smart_sending' | 'send_options.is_transactional' | 'badge_options' | 'badge_options.badge_config' | 'badge_options.value' | 'badge_options.set_from_property' | 'render_options' | 'render_options.shorten_links' | 'render_options.add_org_prefix' | 'render_options.add_info_link' | 'render_options.add_opt_out_language'>;
    };
    url: '/api/flow-messages/{id}/flow-action';
};

export type GetActionForFlowMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetActionForFlowMessageError = GetActionForFlowMessageErrors[keyof GetActionForFlowMessageErrors];

export type GetActionForFlowMessageResponses = {
    /**
     * Success
     */
    200: GetFlowActionResponse;
};

export type GetActionForFlowMessageResponse = GetActionForFlowMessageResponses[keyof GetActionForFlowMessageResponses];

export type GetActionIdForFlowMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/flow-messages/{id}/relationships/flow-action';
};

export type GetActionIdForFlowMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetActionIdForFlowMessageError = GetActionIdForFlowMessageErrors[keyof GetActionIdForFlowMessageErrors];

export type GetActionIdForFlowMessageResponses = {
    /**
     * Success
     */
    200: GetFlowMessageActionRelationshipResponse;
};

export type GetActionIdForFlowMessageResponse = GetActionIdForFlowMessageResponses[keyof GetActionIdForFlowMessageResponses];

export type GetTemplateForFlowMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template]'?: Array<'name' | 'editor_type' | 'html' | 'text' | 'amp' | 'created' | 'updated'>;
    };
    url: '/api/flow-messages/{id}/template';
};

export type GetTemplateForFlowMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTemplateForFlowMessageError = GetTemplateForFlowMessageErrors[keyof GetTemplateForFlowMessageErrors];

export type GetTemplateForFlowMessageResponses = {
    /**
     * Success
     */
    200: GetTemplateResponse;
};

export type GetTemplateForFlowMessageResponse = GetTemplateForFlowMessageResponses[keyof GetTemplateForFlowMessageResponses];

export type GetTemplateIdForFlowMessageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/flow-messages/{id}/relationships/template';
};

export type GetTemplateIdForFlowMessageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTemplateIdForFlowMessageError = GetTemplateIdForFlowMessageErrors[keyof GetTemplateIdForFlowMessageErrors];

export type GetTemplateIdForFlowMessageResponses = {
    /**
     * Success
     */
    200: GetFlowMessageTemplateRelationshipResponse;
};

export type GetTemplateIdForFlowMessageResponse = GetTemplateIdForFlowMessageResponses[keyof GetTemplateIdForFlowMessageResponses];

export type GetFormsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[form]'?: Array<'name' | 'status' | 'ab_test' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`, `equals`<br>`name`: `any`, `contains`, `equals`<br>`ab_test`: `equals`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`status`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at';
    };
    url: '/api/forms';
};

export type GetFormsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFormsError = GetFormsErrors[keyof GetFormsErrors];

export type GetFormsResponses = {
    /**
     * Success
     */
    200: GetFormResponseCollectionCompoundDocument;
};

export type GetFormsResponse = GetFormsResponses[keyof GetFormsResponses];

export type DeleteFormData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the form
         */
        id: string;
    };
    query?: never;
    url: '/api/forms/{id}';
};

export type DeleteFormErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteFormError = DeleteFormErrors[keyof DeleteFormErrors];

export type DeleteFormResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteFormResponse = DeleteFormResponses[keyof DeleteFormResponses];

export type GetFormData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the form
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[form-version]'?: Array<'form_type' | 'ab_test' | 'ab_test.variation_name' | 'status' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[form]'?: Array<'name' | 'status' | 'ab_test' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'form-versions'>;
    };
    url: '/api/forms/{id}';
};

export type GetFormErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFormError = GetFormErrors[keyof GetFormErrors];

export type GetFormResponses = {
    /**
     * Success
     */
    200: GetFormResponseCompoundDocument;
};

export type GetFormResponse2 = GetFormResponses[keyof GetFormResponses];

export type GetFormVersionData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the form version
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[form-version]'?: Array<'form_type' | 'ab_test' | 'ab_test.variation_name' | 'status' | 'created_at' | 'updated_at'>;
    };
    url: '/api/form-versions/{id}';
};

export type GetFormVersionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFormVersionError = GetFormVersionErrors[keyof GetFormVersionErrors];

export type GetFormVersionResponses = {
    /**
     * Success
     */
    200: GetFormVersionResponse;
};

export type GetFormVersionResponse2 = GetFormVersionResponses[keyof GetFormVersionResponses];

export type GetVersionsForFormData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the form
         */
        id: string | null;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[form-version]'?: Array<'form_type' | 'ab_test' | 'ab_test.variation_name' | 'status' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`form_type`: `any`, `equals`<br>`status`: `equals`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at';
    };
    url: '/api/forms/{id}/form-versions';
};

export type GetVersionsForFormErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetVersionsForFormError = GetVersionsForFormErrors[keyof GetVersionsForFormErrors];

export type GetVersionsForFormResponses = {
    /**
     * Success
     */
    200: GetFormVersionResponseCollection;
};

export type GetVersionsForFormResponse = GetVersionsForFormResponses[keyof GetVersionsForFormResponses];

export type GetVersionIdsForFormData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the form
         */
        id: string | null;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`form_type`: `any`, `equals`<br>`status`: `equals`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at';
    };
    url: '/api/forms/{id}/relationships/form-versions';
};

export type GetVersionIdsForFormErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetVersionIdsForFormError = GetVersionIdsForFormErrors[keyof GetVersionIdsForFormErrors];

export type GetVersionIdsForFormResponses = {
    /**
     * Success
     */
    200: GetFormVersionsRelationshipsResponseCollection;
};

export type GetVersionIdsForFormResponse = GetVersionIdsForFormResponses[keyof GetVersionIdsForFormResponses];

export type GetFormForFormVersionData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the form version
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[form]'?: Array<'name' | 'status' | 'ab_test' | 'created_at' | 'updated_at'>;
    };
    url: '/api/form-versions/{id}/form';
};

export type GetFormForFormVersionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFormForFormVersionError = GetFormForFormVersionErrors[keyof GetFormForFormVersionErrors];

export type GetFormForFormVersionResponses = {
    /**
     * Success
     */
    200: GetFormResponse;
};

export type GetFormForFormVersionResponse = GetFormForFormVersionResponses[keyof GetFormForFormVersionResponses];

export type GetFormIdForFormVersionData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the form version
         */
        id: string;
    };
    query?: never;
    url: '/api/form-versions/{id}/relationships/form';
};

export type GetFormIdForFormVersionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFormIdForFormVersionError = GetFormIdForFormVersionErrors[keyof GetFormIdForFormVersionErrors];

export type GetFormIdForFormVersionResponses = {
    /**
     * Success
     */
    200: GetFormVersionFormRelationshipResponse;
};

export type GetFormIdForFormVersionResponse = GetFormIdForFormVersionResponses[keyof GetFormIdForFormVersionResponses];

export type GetImagesData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[image]'?: Array<'name' | 'image_url' | 'format' | 'size' | 'hidden' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`, `equals`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`format`: `any`, `equals`<br>`name`: `any`, `contains`, `ends-with`, `equals`, `starts-with`<br>`size`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`hidden`: `any`, `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'format' | '-format' | 'id' | '-id' | 'name' | '-name' | 'size' | '-size' | 'updated_at' | '-updated_at';
    };
    url: '/api/images';
};

export type GetImagesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetImagesError = GetImagesErrors[keyof GetImagesErrors];

export type GetImagesResponses = {
    /**
     * Success
     */
    200: GetImageResponseCollection;
};

export type GetImagesResponse = GetImagesResponses[keyof GetImagesResponses];

export type UploadImageFromUrlData = {
    body: ImageCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/images';
};

export type UploadImageFromUrlErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UploadImageFromUrlError = UploadImageFromUrlErrors[keyof UploadImageFromUrlErrors];

export type UploadImageFromUrlResponses = {
    /**
     * Success
     */
    201: PostImageResponse;
};

export type UploadImageFromUrlResponse = UploadImageFromUrlResponses[keyof UploadImageFromUrlResponses];

export type GetImageData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the image
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[image]'?: Array<'name' | 'image_url' | 'format' | 'size' | 'hidden' | 'updated_at'>;
    };
    url: '/api/images/{id}';
};

export type GetImageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetImageError = GetImageErrors[keyof GetImageErrors];

export type GetImageResponses = {
    /**
     * Success
     */
    200: GetImageResponse;
};

export type GetImageResponse2 = GetImageResponses[keyof GetImageResponses];

export type UpdateImageData = {
    body: ImagePartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the image
         */
        id: string;
    };
    query?: never;
    url: '/api/images/{id}';
};

export type UpdateImageErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateImageError = UpdateImageErrors[keyof UpdateImageErrors];

export type UpdateImageResponses = {
    /**
     * Success
     */
    200: PatchImageResponse;
};

export type UpdateImageResponse = UpdateImageResponses[keyof UpdateImageResponses];

export type UploadImageFromFileData = {
    body: ImageUploadQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/image-upload';
};

export type UploadImageFromFileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UploadImageFromFileError = UploadImageFromFileErrors[keyof UploadImageFromFileErrors];

export type UploadImageFromFileResponses = {
    /**
     * Success
     */
    201: PostImageResponse;
};

export type UploadImageFromFileResponse = UploadImageFromFileResponses[keyof UploadImageFromFileResponses];

export type GetListsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[list]'?: Array<'name' | 'created' | 'updated' | 'opt_in_process'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`name`: `any`, `equals`<br>`id`: `any`, `equals`<br>`created`: `greater-than`<br>`updated`: `greater-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-triggers' | 'tags'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'updated' | '-updated';
    };
    url: '/api/lists';
};

export type GetListsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetListsError = GetListsErrors[keyof GetListsErrors];

export type GetListsResponses = {
    /**
     * Success
     */
    200: GetListListResponseCollectionCompoundDocument;
};

export type GetListsResponse = GetListsResponses[keyof GetListsResponses];

export type CreateListData = {
    body: ListCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/lists';
};

export type CreateListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateListError = CreateListErrors[keyof CreateListErrors];

export type CreateListResponses = {
    /**
     * Success
     */
    201: PostListCreateResponse;
};

export type CreateListResponse = CreateListResponses[keyof CreateListResponses];

export type DeleteListData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: never;
    url: '/api/lists/{id}';
};

export type DeleteListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteListError = DeleteListErrors[keyof DeleteListErrors];

export type DeleteListResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteListResponse = DeleteListResponses[keyof DeleteListResponses];

export type GetListData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'profile_count'
         */
        'additional-fields[list]'?: Array<'profile_count'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[list]'?: Array<'name' | 'created' | 'updated' | 'opt_in_process' | 'profile_count'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-triggers' | 'tags'>;
    };
    url: '/api/lists/{id}';
};

export type GetListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetListError = GetListErrors[keyof GetListErrors];

export type GetListResponses = {
    /**
     * Success
     */
    200: GetListRetrieveResponseCompoundDocument;
};

export type GetListResponse = GetListResponses[keyof GetListResponses];

export type UpdateListData = {
    body: ListPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: never;
    url: '/api/lists/{id}';
};

export type UpdateListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateListError = UpdateListErrors[keyof UpdateListErrors];

export type UpdateListResponses = {
    /**
     * Success
     */
    200: PatchListPartialUpdateResponse;
};

export type UpdateListResponse = UpdateListResponses[keyof UpdateListResponses];

export type GetTagsForListData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
    };
    url: '/api/lists/{id}/tags';
};

export type GetTagsForListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagsForListError = GetTagsForListErrors[keyof GetTagsForListErrors];

export type GetTagsForListResponses = {
    /**
     * Success
     */
    200: GetTagResponseCollection;
};

export type GetTagsForListResponse = GetTagsForListResponses[keyof GetTagsForListResponses];

export type GetTagIdsForListData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: never;
    url: '/api/lists/{id}/relationships/tags';
};

export type GetTagIdsForListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagIdsForListError = GetTagIdsForListErrors[keyof GetTagIdsForListErrors];

export type GetTagIdsForListResponses = {
    /**
     * Success
     */
    200: GetListTagsRelationshipsResponseCollection;
};

export type GetTagIdsForListResponse = GetTagIdsForListResponses[keyof GetTagIdsForListResponses];

export type GetProfilesForListData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties' | 'joined_group_at' | 'subscriptions' | 'subscriptions.email' | 'subscriptions.email.marketing' | 'subscriptions.email.marketing.can_receive_email_marketing' | 'subscriptions.email.marketing.consent' | 'subscriptions.email.marketing.consent_timestamp' | 'subscriptions.email.marketing.last_updated' | 'subscriptions.email.marketing.method' | 'subscriptions.email.marketing.method_detail' | 'subscriptions.email.marketing.custom_method_detail' | 'subscriptions.email.marketing.double_optin' | 'subscriptions.email.marketing.suppression' | 'subscriptions.email.marketing.list_suppressions' | 'subscriptions.sms' | 'subscriptions.sms.marketing' | 'subscriptions.sms.marketing.can_receive_sms_marketing' | 'subscriptions.sms.marketing.consent' | 'subscriptions.sms.marketing.consent_timestamp' | 'subscriptions.sms.marketing.method' | 'subscriptions.sms.marketing.method_detail' | 'subscriptions.sms.marketing.last_updated' | 'subscriptions.sms.transactional' | 'subscriptions.sms.transactional.can_receive_sms_transactional' | 'subscriptions.sms.transactional.consent' | 'subscriptions.sms.transactional.consent_timestamp' | 'subscriptions.sms.transactional.method' | 'subscriptions.sms.transactional.method_detail' | 'subscriptions.sms.transactional.last_updated' | 'subscriptions.mobile_push' | 'subscriptions.mobile_push.marketing' | 'subscriptions.mobile_push.marketing.can_receive_push_marketing' | 'subscriptions.mobile_push.marketing.consent' | 'subscriptions.mobile_push.marketing.consent_timestamp' | 'predictive_analytics' | 'predictive_analytics.historic_clv' | 'predictive_analytics.predicted_clv' | 'predictive_analytics.total_clv' | 'predictive_analytics.historic_number_of_orders' | 'predictive_analytics.predicted_number_of_orders' | 'predictive_analytics.average_days_between_orders' | 'predictive_analytics.average_order_value' | 'predictive_analytics.churn_probability' | 'predictive_analytics.expected_date_of_next_order'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`email`: `any`, `equals`<br>`phone_number`: `any`, `equals`<br>`push_token`: `any`, `equals`<br>`_kx`: `equals`<br>`joined_group_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'joined_group_at' | '-joined_group_at';
    };
    url: '/api/lists/{id}/profiles';
};

export type GetProfilesForListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfilesForListError = GetProfilesForListErrors[keyof GetProfilesForListErrors];

export type GetProfilesForListResponses = {
    /**
     * Success
     */
    200: GetListMemberResponseCollection;
};

export type GetProfilesForListResponse = GetProfilesForListResponses[keyof GetProfilesForListResponses];

export type RemoveProfilesFromListData = {
    body: ListMembersDeleteQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/lists/{id}/relationships/profiles';
};

export type RemoveProfilesFromListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RemoveProfilesFromListError = RemoveProfilesFromListErrors[keyof RemoveProfilesFromListErrors];

export type RemoveProfilesFromListResponses = {
    /**
     * Success
     */
    204: void;
};

export type RemoveProfilesFromListResponse = RemoveProfilesFromListResponses[keyof RemoveProfilesFromListResponses];

export type GetProfileIdsForListData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`email`: `any`, `equals`<br>`phone_number`: `any`, `equals`<br>`push_token`: `any`, `equals`<br>`_kx`: `equals`<br>`joined_group_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'joined_group_at' | '-joined_group_at';
    };
    url: '/api/lists/{id}/relationships/profiles';
};

export type GetProfileIdsForListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfileIdsForListError = GetProfileIdsForListErrors[keyof GetProfileIdsForListErrors];

export type GetProfileIdsForListResponses = {
    /**
     * Success
     */
    200: GetListProfilesRelationshipsResponseCollection;
};

export type GetProfileIdsForListResponse = GetProfileIdsForListResponses[keyof GetProfileIdsForListResponses];

export type AddProfilesToListData = {
    body: ListMembersAddQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/lists/{id}/relationships/profiles';
};

export type AddProfilesToListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type AddProfilesToListError = AddProfilesToListErrors[keyof AddProfilesToListErrors];

export type AddProfilesToListResponses = {
    /**
     * Success
     */
    204: void;
};

export type AddProfilesToListResponse = AddProfilesToListResponses[keyof AddProfilesToListResponses];

export type GetFlowsTriggeredByListData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
    };
    url: '/api/lists/{id}/flow-triggers';
};

export type GetFlowsTriggeredByListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowsTriggeredByListError = GetFlowsTriggeredByListErrors[keyof GetFlowsTriggeredByListErrors];

export type GetFlowsTriggeredByListResponses = {
    /**
     * Success
     */
    200: GetFlowResponseCollection;
};

export type GetFlowsTriggeredByListResponse = GetFlowsTriggeredByListResponses[keyof GetFlowsTriggeredByListResponses];

export type GetIdsForFlowsTriggeredByListData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this list. Generated by Klaviyo.
         */
        id: string;
    };
    query?: never;
    url: '/api/lists/{id}/relationships/flow-triggers';
};

export type GetIdsForFlowsTriggeredByListErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetIdsForFlowsTriggeredByListError = GetIdsForFlowsTriggeredByListErrors[keyof GetIdsForFlowsTriggeredByListErrors];

export type GetIdsForFlowsTriggeredByListResponses = {
    /**
     * Success
     */
    200: GetListFlowTriggersRelationshipsResponseCollection;
};

export type GetIdsForFlowsTriggeredByListResponse = GetIdsForFlowsTriggeredByListResponses[keyof GetIdsForFlowsTriggeredByListResponses];

export type GetMetricsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`integration.name`: `equals`<br>`integration.category`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-triggers'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
    };
    url: '/api/metrics';
};

export type GetMetricsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricsError = GetMetricsErrors[keyof GetMetricsErrors];

export type GetMetricsResponses = {
    /**
     * Success
     */
    200: GetMetricResponseCollectionCompoundDocument;
};

export type GetMetricsResponse = GetMetricsResponses[keyof GetMetricsResponses];

export type GetMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Metric ID
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-triggers'>;
    };
    url: '/api/metrics/{id}';
};

export type GetMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricError = GetMetricErrors[keyof GetMetricErrors];

export type GetMetricResponses = {
    /**
     * Success
     */
    200: GetMetricResponseCompoundDocument;
};

export type GetMetricResponse2 = GetMetricResponses[keyof GetMetricResponses];

export type GetMetricPropertyData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the metric property
         */
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'sample_values'
         */
        'additional-fields[metric-property]'?: Array<'sample_values'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric-property]'?: Array<'label' | 'property' | 'inferred_type' | 'sample_values'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'metric'>;
    };
    url: '/api/metric-properties/{id}';
};

export type GetMetricPropertyErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricPropertyError = GetMetricPropertyErrors[keyof GetMetricPropertyErrors];

export type GetMetricPropertyResponses = {
    /**
     * Success
     */
    200: GetMetricPropertyResponseCompoundDocument;
};

export type GetMetricPropertyResponse = GetMetricPropertyResponses[keyof GetMetricPropertyResponses];

export type GetCustomMetricsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[custom-metric]'?: Array<'name' | 'created' | 'updated' | 'definition' | 'definition.aggregation_method' | 'definition.metric_groups'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'metrics'>;
    };
    url: '/api/custom-metrics';
};

export type GetCustomMetricsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCustomMetricsError = GetCustomMetricsErrors[keyof GetCustomMetricsErrors];

export type GetCustomMetricsResponses = {
    /**
     * Success
     */
    200: GetCustomMetricResponseCollectionCompoundDocument;
};

export type GetCustomMetricsResponse = GetCustomMetricsResponses[keyof GetCustomMetricsResponses];

export type CreateCustomMetricData = {
    /**
     * Create a custom metric.
     */
    body: CustomMetricCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/custom-metrics';
};

export type CreateCustomMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateCustomMetricError = CreateCustomMetricErrors[keyof CreateCustomMetricErrors];

export type CreateCustomMetricResponses = {
    /**
     * Success
     */
    201: PostCustomMetricResponse;
};

export type CreateCustomMetricResponse = CreateCustomMetricResponses[keyof CreateCustomMetricResponses];

export type DeleteCustomMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the custom metric
         */
        id: string;
    };
    query?: never;
    url: '/api/custom-metrics/{id}';
};

export type DeleteCustomMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteCustomMetricError = DeleteCustomMetricErrors[keyof DeleteCustomMetricErrors];

export type DeleteCustomMetricResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteCustomMetricResponse = DeleteCustomMetricResponses[keyof DeleteCustomMetricResponses];

export type GetCustomMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the custom metric
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[custom-metric]'?: Array<'name' | 'created' | 'updated' | 'definition' | 'definition.aggregation_method' | 'definition.metric_groups'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'metrics'>;
    };
    url: '/api/custom-metrics/{id}';
};

export type GetCustomMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCustomMetricError = GetCustomMetricErrors[keyof GetCustomMetricErrors];

export type GetCustomMetricResponses = {
    /**
     * Success
     */
    200: GetCustomMetricResponseCompoundDocument;
};

export type GetCustomMetricResponse = GetCustomMetricResponses[keyof GetCustomMetricResponses];

export type UpdateCustomMetricData = {
    /**
     * Update a custom metric by ID.
     */
    body: CustomMetricPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the custom metric
         */
        id: string;
    };
    query?: never;
    url: '/api/custom-metrics/{id}';
};

export type UpdateCustomMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateCustomMetricError = UpdateCustomMetricErrors[keyof UpdateCustomMetricErrors];

export type UpdateCustomMetricResponses = {
    /**
     * Success
     */
    200: PatchCustomMetricResponse;
};

export type UpdateCustomMetricResponse = UpdateCustomMetricResponses[keyof UpdateCustomMetricResponses];

export type QueryMetricAggregatesData = {
    /**
     * Retrieve Metric Aggregations
     */
    body: MetricAggregateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/metric-aggregates';
};

export type QueryMetricAggregatesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type QueryMetricAggregatesError = QueryMetricAggregatesErrors[keyof QueryMetricAggregatesErrors];

export type QueryMetricAggregatesResponses = {
    /**
     * Success
     */
    200: PostMetricAggregateResponse;
};

export type QueryMetricAggregatesResponse = QueryMetricAggregatesResponses[keyof QueryMetricAggregatesResponses];

export type GetFlowsTriggeredByMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
    };
    url: '/api/metrics/{id}/flow-triggers';
};

export type GetFlowsTriggeredByMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowsTriggeredByMetricError = GetFlowsTriggeredByMetricErrors[keyof GetFlowsTriggeredByMetricErrors];

export type GetFlowsTriggeredByMetricResponses = {
    /**
     * Success
     */
    200: GetFlowResponseCollection;
};

export type GetFlowsTriggeredByMetricResponse = GetFlowsTriggeredByMetricResponses[keyof GetFlowsTriggeredByMetricResponses];

export type GetIdsForFlowsTriggeredByMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/metrics/{id}/relationships/flow-triggers';
};

export type GetIdsForFlowsTriggeredByMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetIdsForFlowsTriggeredByMetricError = GetIdsForFlowsTriggeredByMetricErrors[keyof GetIdsForFlowsTriggeredByMetricErrors];

export type GetIdsForFlowsTriggeredByMetricResponses = {
    /**
     * Success
     */
    200: GetMetricFlowTriggersRelationshipsResponseCollection;
};

export type GetIdsForFlowsTriggeredByMetricResponse = GetIdsForFlowsTriggeredByMetricResponses[keyof GetIdsForFlowsTriggeredByMetricResponses];

export type GetPropertiesForMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the metric
         */
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'sample_values'
         */
        'additional-fields[metric-property]'?: Array<'sample_values'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric-property]'?: Array<'label' | 'property' | 'inferred_type' | 'sample_values'>;
    };
    url: '/api/metrics/{id}/metric-properties';
};

export type GetPropertiesForMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetPropertiesForMetricError = GetPropertiesForMetricErrors[keyof GetPropertiesForMetricErrors];

export type GetPropertiesForMetricResponses = {
    /**
     * Success
     */
    200: GetMetricPropertyResponseCollection;
};

export type GetPropertiesForMetricResponse = GetPropertiesForMetricResponses[keyof GetPropertiesForMetricResponses];

export type GetPropertyIdsForMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the metric
         */
        id: string;
    };
    query?: never;
    url: '/api/metrics/{id}/relationships/metric-properties';
};

export type GetPropertyIdsForMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetPropertyIdsForMetricError = GetPropertyIdsForMetricErrors[keyof GetPropertyIdsForMetricErrors];

export type GetPropertyIdsForMetricResponses = {
    /**
     * Success
     */
    200: GetMetricPropertiesRelationshipsResponseCollection;
};

export type GetPropertyIdsForMetricResponse = GetPropertyIdsForMetricResponses[keyof GetPropertyIdsForMetricResponses];

export type GetMetricForMetricPropertyData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the metric property
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
    };
    url: '/api/metric-properties/{id}/metric';
};

export type GetMetricForMetricPropertyErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricForMetricPropertyError = GetMetricForMetricPropertyErrors[keyof GetMetricForMetricPropertyErrors];

export type GetMetricForMetricPropertyResponses = {
    /**
     * Success
     */
    200: GetMetricResponse;
};

export type GetMetricForMetricPropertyResponse = GetMetricForMetricPropertyResponses[keyof GetMetricForMetricPropertyResponses];

export type GetMetricIdForMetricPropertyData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the metric property
         */
        id: string;
    };
    query?: never;
    url: '/api/metric-properties/{id}/relationships/metric';
};

export type GetMetricIdForMetricPropertyErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricIdForMetricPropertyError = GetMetricIdForMetricPropertyErrors[keyof GetMetricIdForMetricPropertyErrors];

export type GetMetricIdForMetricPropertyResponses = {
    /**
     * Success
     */
    200: GetMetricPropertyMetricRelationshipResponse;
};

export type GetMetricIdForMetricPropertyResponse = GetMetricIdForMetricPropertyResponses[keyof GetMetricIdForMetricPropertyResponses];

export type GetMetricsForCustomMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the custom metric
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[metric]'?: Array<'name' | 'created' | 'updated' | 'integration'>;
    };
    url: '/api/custom-metrics/{id}/metrics';
};

export type GetMetricsForCustomMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricsForCustomMetricError = GetMetricsForCustomMetricErrors[keyof GetMetricsForCustomMetricErrors];

export type GetMetricsForCustomMetricResponses = {
    /**
     * Success
     */
    200: GetMetricResponseCollection;
};

export type GetMetricsForCustomMetricResponse = GetMetricsForCustomMetricResponses[keyof GetMetricsForCustomMetricResponses];

export type GetMetricIdsForCustomMetricData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the custom metric
         */
        id: string;
    };
    query?: never;
    url: '/api/custom-metrics/{id}/relationships/metrics';
};

export type GetMetricIdsForCustomMetricErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetMetricIdsForCustomMetricError = GetMetricIdsForCustomMetricErrors[keyof GetMetricIdsForCustomMetricErrors];

export type GetMetricIdsForCustomMetricResponses = {
    /**
     * Success
     */
    200: GetCustomMetricMetricsRelationshipsResponseCollection;
};

export type GetMetricIdsForCustomMetricResponse = GetMetricIdsForCustomMetricResponses[keyof GetMetricIdsForCustomMetricResponses];

export type GetProfilesData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties' | 'subscriptions' | 'subscriptions.email' | 'subscriptions.email.marketing' | 'subscriptions.email.marketing.can_receive_email_marketing' | 'subscriptions.email.marketing.consent' | 'subscriptions.email.marketing.consent_timestamp' | 'subscriptions.email.marketing.last_updated' | 'subscriptions.email.marketing.method' | 'subscriptions.email.marketing.method_detail' | 'subscriptions.email.marketing.custom_method_detail' | 'subscriptions.email.marketing.double_optin' | 'subscriptions.email.marketing.suppression' | 'subscriptions.email.marketing.list_suppressions' | 'subscriptions.sms' | 'subscriptions.sms.marketing' | 'subscriptions.sms.marketing.can_receive_sms_marketing' | 'subscriptions.sms.marketing.consent' | 'subscriptions.sms.marketing.consent_timestamp' | 'subscriptions.sms.marketing.method' | 'subscriptions.sms.marketing.method_detail' | 'subscriptions.sms.marketing.last_updated' | 'subscriptions.sms.transactional' | 'subscriptions.sms.transactional.can_receive_sms_transactional' | 'subscriptions.sms.transactional.consent' | 'subscriptions.sms.transactional.consent_timestamp' | 'subscriptions.sms.transactional.method' | 'subscriptions.sms.transactional.method_detail' | 'subscriptions.sms.transactional.last_updated' | 'subscriptions.mobile_push' | 'subscriptions.mobile_push.marketing' | 'subscriptions.mobile_push.marketing.can_receive_push_marketing' | 'subscriptions.mobile_push.marketing.consent' | 'subscriptions.mobile_push.marketing.consent_timestamp' | 'predictive_analytics' | 'predictive_analytics.historic_clv' | 'predictive_analytics.predicted_clv' | 'predictive_analytics.total_clv' | 'predictive_analytics.historic_number_of_orders' | 'predictive_analytics.predicted_number_of_orders' | 'predictive_analytics.average_days_between_orders' | 'predictive_analytics.average_order_value' | 'predictive_analytics.churn_probability' | 'predictive_analytics.expected_date_of_next_order'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`, `equals`<br>`email`: `any`, `equals`<br>`phone_number`: `any`, `equals`<br>`external_id`: `any`, `equals`<br>`_kx`: `equals`<br>`created`: `greater-than`, `less-than`<br>`updated`: `greater-than`, `less-than`<br>`subscriptions.email.marketing.list_suppressions.reason`: `equals`<br>`subscriptions.email.marketing.list_suppressions.timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`subscriptions.email.marketing.list_suppressions.list_id`: `equals`<br>`subscriptions.email.marketing.suppression.reason`: `equals`<br>`subscriptions.email.marketing.suppression.timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'lists' | 'push-tokens' | 'segments'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'email' | '-email' | 'id' | '-id' | 'subscriptions.email.marketing.list_suppressions.timestamp' | '-subscriptions.email.marketing.list_suppressions.timestamp' | 'subscriptions.email.marketing.suppression.timestamp' | '-subscriptions.email.marketing.suppression.timestamp' | 'updated' | '-updated';
    };
    url: '/api/profiles';
};

export type GetProfilesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfilesError = GetProfilesErrors[keyof GetProfilesErrors];

export type GetProfilesResponses = {
    /**
     * Success
     */
    200: GetProfileResponseCollectionCompoundDocument;
};

export type GetProfilesResponse = GetProfilesResponses[keyof GetProfilesResponses];

export type CreateProfileData = {
    body: ProfileCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
    };
    url: '/api/profiles';
};

export type CreateProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateProfileError = CreateProfileErrors[keyof CreateProfileErrors];

export type CreateProfileResponses = {
    /**
     * Success
     */
    201: PostProfileResponse;
};

export type CreateProfileResponse = CreateProfileResponses[keyof CreateProfileResponses];

export type GetProfileData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[list]'?: Array<'name' | 'created' | 'updated' | 'opt_in_process'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties' | 'subscriptions' | 'subscriptions.email' | 'subscriptions.email.marketing' | 'subscriptions.email.marketing.can_receive_email_marketing' | 'subscriptions.email.marketing.consent' | 'subscriptions.email.marketing.consent_timestamp' | 'subscriptions.email.marketing.last_updated' | 'subscriptions.email.marketing.method' | 'subscriptions.email.marketing.method_detail' | 'subscriptions.email.marketing.custom_method_detail' | 'subscriptions.email.marketing.double_optin' | 'subscriptions.email.marketing.suppression' | 'subscriptions.email.marketing.list_suppressions' | 'subscriptions.sms' | 'subscriptions.sms.marketing' | 'subscriptions.sms.marketing.can_receive_sms_marketing' | 'subscriptions.sms.marketing.consent' | 'subscriptions.sms.marketing.consent_timestamp' | 'subscriptions.sms.marketing.method' | 'subscriptions.sms.marketing.method_detail' | 'subscriptions.sms.marketing.last_updated' | 'subscriptions.sms.transactional' | 'subscriptions.sms.transactional.can_receive_sms_transactional' | 'subscriptions.sms.transactional.consent' | 'subscriptions.sms.transactional.consent_timestamp' | 'subscriptions.sms.transactional.method' | 'subscriptions.sms.transactional.method_detail' | 'subscriptions.sms.transactional.last_updated' | 'subscriptions.mobile_push' | 'subscriptions.mobile_push.marketing' | 'subscriptions.mobile_push.marketing.can_receive_push_marketing' | 'subscriptions.mobile_push.marketing.consent' | 'subscriptions.mobile_push.marketing.consent_timestamp' | 'predictive_analytics' | 'predictive_analytics.historic_clv' | 'predictive_analytics.predicted_clv' | 'predictive_analytics.total_clv' | 'predictive_analytics.historic_number_of_orders' | 'predictive_analytics.predicted_number_of_orders' | 'predictive_analytics.average_days_between_orders' | 'predictive_analytics.average_order_value' | 'predictive_analytics.churn_probability' | 'predictive_analytics.expected_date_of_next_order'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[push-token]'?: Array<'created' | 'token' | 'enablement_status' | 'platform' | 'vendor' | 'background' | 'recorded_date' | 'metadata' | 'metadata.device_id' | 'metadata.klaviyo_sdk' | 'metadata.sdk_version' | 'metadata.device_model' | 'metadata.os_name' | 'metadata.os_version' | 'metadata.manufacturer' | 'metadata.app_name' | 'metadata.app_version' | 'metadata.app_build' | 'metadata.app_id' | 'metadata.environment'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[segment]'?: Array<'name' | 'definition' | 'definition.condition_groups' | 'created' | 'updated' | 'is_active' | 'is_processing' | 'is_starred'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'lists' | 'push-tokens' | 'segments'>;
    };
    url: '/api/profiles/{id}';
};

export type GetProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfileError = GetProfileErrors[keyof GetProfileErrors];

export type GetProfileResponses = {
    /**
     * Success
     */
    200: GetProfileResponseCompoundDocument;
};

export type GetProfileResponse2 = GetProfileResponses[keyof GetProfileResponses];

export type UpdateProfileData = {
    body: ProfilePartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this profile. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
    };
    url: '/api/profiles/{id}';
};

export type UpdateProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateProfileError = UpdateProfileErrors[keyof UpdateProfileErrors];

export type UpdateProfileResponses = {
    /**
     * Success
     */
    200: PatchProfileResponse;
};

export type UpdateProfileResponse = UpdateProfileResponses[keyof UpdateProfileResponses];

export type GetBulkImportProfilesJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile-bulk-import-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'expires_at' | 'started_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `any`, `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created_at' | '-created_at';
    };
    url: '/api/profile-bulk-import-jobs';
};

export type GetBulkImportProfilesJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkImportProfilesJobsError = GetBulkImportProfilesJobsErrors[keyof GetBulkImportProfilesJobsErrors];

export type GetBulkImportProfilesJobsResponses = {
    /**
     * Success
     */
    200: GetProfileImportJobResponseCollectionCompoundDocument;
};

export type GetBulkImportProfilesJobsResponse = GetBulkImportProfilesJobsResponses[keyof GetBulkImportProfilesJobsResponses];

export type BulkImportProfilesData = {
    body: ProfileImportJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/profile-bulk-import-jobs';
};

export type BulkImportProfilesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkImportProfilesError = BulkImportProfilesErrors[keyof BulkImportProfilesErrors];

export type BulkImportProfilesResponses = {
    /**
     * Success
     */
    202: PostProfileImportJobResponse;
};

export type BulkImportProfilesResponse = BulkImportProfilesResponses[keyof BulkImportProfilesResponses];

export type GetBulkImportProfilesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[list]'?: Array<'name' | 'created' | 'updated' | 'opt_in_process'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile-bulk-import-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'failed_count' | 'completed_at' | 'expires_at' | 'started_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'lists'>;
    };
    url: '/api/profile-bulk-import-jobs/{job_id}';
};

export type GetBulkImportProfilesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkImportProfilesJobError = GetBulkImportProfilesJobErrors[keyof GetBulkImportProfilesJobErrors];

export type GetBulkImportProfilesJobResponses = {
    /**
     * Success
     */
    200: GetProfileImportJobResponseCompoundDocument;
};

export type GetBulkImportProfilesJobResponse = GetBulkImportProfilesJobResponses[keyof GetBulkImportProfilesJobResponses];

export type GetBulkSuppressProfilesJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile-suppression-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'completed_at' | 'skipped_count'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`<br>`list_id`: `equals`<br>`segment_id`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/profile-suppression-bulk-create-jobs';
};

export type GetBulkSuppressProfilesJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkSuppressProfilesJobsError = GetBulkSuppressProfilesJobsErrors[keyof GetBulkSuppressProfilesJobsErrors];

export type GetBulkSuppressProfilesJobsResponses = {
    /**
     * Success
     */
    200: GetBulkProfileSuppressionsCreateJobResponseCollection;
};

export type GetBulkSuppressProfilesJobsResponse = GetBulkSuppressProfilesJobsResponses[keyof GetBulkSuppressProfilesJobsResponses];

export type BulkSuppressProfilesData = {
    /**
     * Suppresses one or more profiles from receiving marketing. Currently, supports email only. If a profile is not found with the given email, one will be created and immediately suppressed.
     */
    body: SuppressionCreateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/profile-suppression-bulk-create-jobs';
};

export type BulkSuppressProfilesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkSuppressProfilesError = BulkSuppressProfilesErrors[keyof BulkSuppressProfilesErrors];

export type BulkSuppressProfilesResponses = {
    /**
     * Success
     */
    202: PostBulkProfileSuppressionsCreateJobResponse;
};

export type BulkSuppressProfilesResponse = BulkSuppressProfilesResponses[keyof BulkSuppressProfilesResponses];

export type GetBulkSuppressProfilesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile-suppression-bulk-create-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'completed_at' | 'skipped_count'>;
    };
    url: '/api/profile-suppression-bulk-create-jobs/{job_id}';
};

export type GetBulkSuppressProfilesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkSuppressProfilesJobError = GetBulkSuppressProfilesJobErrors[keyof GetBulkSuppressProfilesJobErrors];

export type GetBulkSuppressProfilesJobResponses = {
    /**
     * Success
     */
    200: GetBulkProfileSuppressionsCreateJobResponse;
};

export type GetBulkSuppressProfilesJobResponse = GetBulkSuppressProfilesJobResponses[keyof GetBulkSuppressProfilesJobResponses];

export type GetBulkUnsuppressProfilesJobsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile-suppression-bulk-delete-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'completed_at' | 'skipped_count'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`<br>`list_id`: `equals`<br>`segment_id`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created';
    };
    url: '/api/profile-suppression-bulk-delete-jobs';
};

export type GetBulkUnsuppressProfilesJobsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkUnsuppressProfilesJobsError = GetBulkUnsuppressProfilesJobsErrors[keyof GetBulkUnsuppressProfilesJobsErrors];

export type GetBulkUnsuppressProfilesJobsResponses = {
    /**
     * Success
     */
    200: GetBulkProfileSuppressionsRemoveJobResponseCollection;
};

export type GetBulkUnsuppressProfilesJobsResponse = GetBulkUnsuppressProfilesJobsResponses[keyof GetBulkUnsuppressProfilesJobsResponses];

export type BulkUnsuppressProfilesData = {
    /**
     * Unsuppresses one or more profiles from receiving marketing. Currently, supports email only. If a profile is not
     * found with the given email, no action will be taken.
     */
    body: SuppressionDeleteJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/profile-suppression-bulk-delete-jobs';
};

export type BulkUnsuppressProfilesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkUnsuppressProfilesError = BulkUnsuppressProfilesErrors[keyof BulkUnsuppressProfilesErrors];

export type BulkUnsuppressProfilesResponses = {
    /**
     * Success
     */
    202: PostBulkProfileSuppressionsRemoveJobResponse;
};

export type BulkUnsuppressProfilesResponse = BulkUnsuppressProfilesResponses[keyof BulkUnsuppressProfilesResponses];

export type GetBulkUnsuppressProfilesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * ID of the job to retrieve.
         */
        job_id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile-suppression-bulk-delete-job]'?: Array<'status' | 'created_at' | 'total_count' | 'completed_count' | 'completed_at' | 'skipped_count'>;
    };
    url: '/api/profile-suppression-bulk-delete-jobs/{job_id}';
};

export type GetBulkUnsuppressProfilesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetBulkUnsuppressProfilesJobError = GetBulkUnsuppressProfilesJobErrors[keyof GetBulkUnsuppressProfilesJobErrors];

export type GetBulkUnsuppressProfilesJobResponses = {
    /**
     * Success
     */
    200: GetBulkProfileSuppressionsRemoveJobResponse;
};

export type GetBulkUnsuppressProfilesJobResponse = GetBulkUnsuppressProfilesJobResponses[keyof GetBulkUnsuppressProfilesJobResponses];

export type GetPushTokensData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[push-token]'?: Array<'created' | 'token' | 'enablement_status' | 'platform' | 'vendor' | 'background' | 'recorded_date' | 'metadata' | 'metadata.device_id' | 'metadata.klaviyo_sdk' | 'metadata.sdk_version' | 'metadata.device_model' | 'metadata.os_name' | 'metadata.os_version' | 'metadata.manufacturer' | 'metadata.app_name' | 'metadata.app_version' | 'metadata.app_build' | 'metadata.app_id' | 'metadata.environment'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `equals`<br>`profile.id`: `equals`<br>`enablement_status`: `equals`<br>`platform`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'profile'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
    };
    url: '/api/push-tokens';
};

export type GetPushTokensErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetPushTokensError = GetPushTokensErrors[keyof GetPushTokensErrors];

export type GetPushTokensResponses = {
    /**
     * Success
     */
    200: GetPushTokenResponseCollectionCompoundDocument;
};

export type GetPushTokensResponse = GetPushTokensResponses[keyof GetPushTokensResponses];

export type CreatePushTokenData = {
    body: PushTokenCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/push-tokens';
};

export type CreatePushTokenErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreatePushTokenError = CreatePushTokenErrors[keyof CreatePushTokenErrors];

export type CreatePushTokenResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type DeletePushTokenData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The value of the push token to delete
         */
        id: string;
    };
    query?: never;
    url: '/api/push-tokens/{id}';
};

export type DeletePushTokenErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeletePushTokenError = DeletePushTokenErrors[keyof DeletePushTokenErrors];

export type DeletePushTokenResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeletePushTokenResponse = DeletePushTokenResponses[keyof DeletePushTokenResponses];

export type GetPushTokenData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The value of the push token
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[push-token]'?: Array<'created' | 'token' | 'enablement_status' | 'platform' | 'vendor' | 'background' | 'recorded_date' | 'metadata' | 'metadata.device_id' | 'metadata.klaviyo_sdk' | 'metadata.sdk_version' | 'metadata.device_model' | 'metadata.os_name' | 'metadata.os_version' | 'metadata.manufacturer' | 'metadata.app_name' | 'metadata.app_version' | 'metadata.app_build' | 'metadata.app_id' | 'metadata.environment'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'profile'>;
    };
    url: '/api/push-tokens/{id}';
};

export type GetPushTokenErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetPushTokenError = GetPushTokenErrors[keyof GetPushTokenErrors];

export type GetPushTokenResponses = {
    /**
     * Success
     */
    200: GetPushTokenResponseCompoundDocument;
};

export type GetPushTokenResponse = GetPushTokenResponses[keyof GetPushTokenResponses];

export type CreateOrUpdateProfileData = {
    body: ProfileUpsertQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
    };
    url: '/api/profile-import';
};

export type CreateOrUpdateProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateOrUpdateProfileError = CreateOrUpdateProfileErrors[keyof CreateOrUpdateProfileErrors];

export type CreateOrUpdateProfileResponses = {
    /**
     * Profile Updated Successfully
     */
    200: PostProfileResponse;
    /**
     * Profile Created Successfully
     */
    201: PostProfileResponse;
};

export type CreateOrUpdateProfileResponse = CreateOrUpdateProfileResponses[keyof CreateOrUpdateProfileResponses];

export type MergeProfilesData = {
    body: ProfileMergeQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/profile-merge';
};

export type MergeProfilesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type MergeProfilesError = MergeProfilesErrors[keyof MergeProfilesErrors];

export type MergeProfilesResponses = {
    /**
     * Success
     */
    201: PostProfileMergeResponse;
};

export type MergeProfilesResponse = MergeProfilesResponses[keyof MergeProfilesResponses];

export type BulkSubscribeProfilesData = {
    /**
     * Subscribes one or more profiles to marketing. Currently, supports email and SMS only. All profiles will be added to the provided list. Either email or phone number is required. Both may be specified to subscribe to both channels.
     * If a profile cannot be found matching the given identifier(s), a new profile will be created and then subscribed.
     */
    body: SubscriptionCreateJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/profile-subscription-bulk-create-jobs';
};

export type BulkSubscribeProfilesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkSubscribeProfilesError = BulkSubscribeProfilesErrors[keyof BulkSubscribeProfilesErrors];

export type BulkSubscribeProfilesResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type BulkUnsubscribeProfilesData = {
    /**
     * Unsubscribes one or more profiles from marketing. Currently, supports email and SMS only. All profiles will be removed from the provided list.
     * Either email or phone number is required. If a profile cannot be found matching the given identifier(s), a new profile will be created and then unsubscribed.
     */
    body: SubscriptionDeleteJobCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/profile-subscription-bulk-delete-jobs';
};

export type BulkUnsubscribeProfilesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkUnsubscribeProfilesError = BulkUnsubscribeProfilesErrors[keyof BulkUnsubscribeProfilesErrors];

export type BulkUnsubscribeProfilesResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type GetPushTokensForProfileData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[push-token]'?: Array<'created' | 'token' | 'enablement_status' | 'platform' | 'vendor' | 'background' | 'recorded_date' | 'metadata' | 'metadata.device_id' | 'metadata.klaviyo_sdk' | 'metadata.sdk_version' | 'metadata.device_model' | 'metadata.os_name' | 'metadata.os_version' | 'metadata.manufacturer' | 'metadata.app_name' | 'metadata.app_version' | 'metadata.app_build' | 'metadata.app_id' | 'metadata.environment'>;
    };
    url: '/api/profiles/{id}/push-tokens';
};

export type GetPushTokensForProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetPushTokensForProfileError = GetPushTokensForProfileErrors[keyof GetPushTokensForProfileErrors];

export type GetPushTokensForProfileResponses = {
    /**
     * Success
     */
    200: GetPushTokenResponseCollection;
};

export type GetPushTokensForProfileResponse = GetPushTokensForProfileResponses[keyof GetPushTokensForProfileResponses];

export type GetPushTokenIdsForProfileData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/profiles/{id}/relationships/push-tokens';
};

export type GetPushTokenIdsForProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetPushTokenIdsForProfileError = GetPushTokenIdsForProfileErrors[keyof GetPushTokenIdsForProfileErrors];

export type GetPushTokenIdsForProfileResponses = {
    /**
     * Success
     */
    200: GetProfilePushTokensRelationshipsResponseCollection;
};

export type GetPushTokenIdsForProfileResponse = GetPushTokenIdsForProfileResponses[keyof GetPushTokenIdsForProfileResponses];

export type GetListsForProfileData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[list]'?: Array<'name' | 'created' | 'updated' | 'opt_in_process'>;
    };
    url: '/api/profiles/{id}/lists';
};

export type GetListsForProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetListsForProfileError = GetListsForProfileErrors[keyof GetListsForProfileErrors];

export type GetListsForProfileResponses = {
    /**
     * Success
     */
    200: GetListResponseCollection;
};

export type GetListsForProfileResponse = GetListsForProfileResponses[keyof GetListsForProfileResponses];

export type GetListIdsForProfileData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/profiles/{id}/relationships/lists';
};

export type GetListIdsForProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetListIdsForProfileError = GetListIdsForProfileErrors[keyof GetListIdsForProfileErrors];

export type GetListIdsForProfileResponses = {
    /**
     * Success
     */
    200: GetProfileListsRelationshipsResponseCollection;
};

export type GetListIdsForProfileResponse = GetListIdsForProfileResponses[keyof GetListIdsForProfileResponses];

export type GetSegmentsForProfileData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[segment]'?: Array<'name' | 'definition' | 'definition.condition_groups' | 'created' | 'updated' | 'is_active' | 'is_processing' | 'is_starred'>;
    };
    url: '/api/profiles/{id}/segments';
};

export type GetSegmentsForProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetSegmentsForProfileError = GetSegmentsForProfileErrors[keyof GetSegmentsForProfileErrors];

export type GetSegmentsForProfileResponses = {
    /**
     * Success
     */
    200: GetSegmentResponseCollection;
};

export type GetSegmentsForProfileResponse = GetSegmentsForProfileResponses[keyof GetSegmentsForProfileResponses];

export type GetSegmentIdsForProfileData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/profiles/{id}/relationships/segments';
};

export type GetSegmentIdsForProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetSegmentIdsForProfileError = GetSegmentIdsForProfileErrors[keyof GetSegmentIdsForProfileErrors];

export type GetSegmentIdsForProfileResponses = {
    /**
     * Success
     */
    200: GetProfileSegmentsRelationshipsResponseCollection;
};

export type GetSegmentIdsForProfileResponse = GetSegmentIdsForProfileResponses[keyof GetSegmentIdsForProfileResponses];

export type GetListForBulkImportProfilesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[list]'?: Array<'name' | 'created' | 'updated' | 'opt_in_process'>;
    };
    url: '/api/profile-bulk-import-jobs/{id}/lists';
};

export type GetListForBulkImportProfilesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetListForBulkImportProfilesJobError = GetListForBulkImportProfilesJobErrors[keyof GetListForBulkImportProfilesJobErrors];

export type GetListForBulkImportProfilesJobResponses = {
    /**
     * Success
     */
    200: GetListResponseCollection;
};

export type GetListForBulkImportProfilesJobResponse = GetListForBulkImportProfilesJobResponses[keyof GetListForBulkImportProfilesJobResponses];

export type GetListIdsForBulkImportProfilesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/profile-bulk-import-jobs/{id}/relationships/lists';
};

export type GetListIdsForBulkImportProfilesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetListIdsForBulkImportProfilesJobError = GetListIdsForBulkImportProfilesJobErrors[keyof GetListIdsForBulkImportProfilesJobErrors];

export type GetListIdsForBulkImportProfilesJobResponses = {
    /**
     * Success
     */
    200: GetProfileBulkImportJobListsRelationshipsResponseCollection;
};

export type GetListIdsForBulkImportProfilesJobResponse = GetListIdsForBulkImportProfilesJobResponses[keyof GetListIdsForBulkImportProfilesJobResponses];

export type GetProfilesForBulkImportProfilesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties' | 'subscriptions' | 'subscriptions.email' | 'subscriptions.email.marketing' | 'subscriptions.email.marketing.can_receive_email_marketing' | 'subscriptions.email.marketing.consent' | 'subscriptions.email.marketing.consent_timestamp' | 'subscriptions.email.marketing.last_updated' | 'subscriptions.email.marketing.method' | 'subscriptions.email.marketing.method_detail' | 'subscriptions.email.marketing.custom_method_detail' | 'subscriptions.email.marketing.double_optin' | 'subscriptions.email.marketing.suppression' | 'subscriptions.email.marketing.list_suppressions' | 'subscriptions.sms' | 'subscriptions.sms.marketing' | 'subscriptions.sms.marketing.can_receive_sms_marketing' | 'subscriptions.sms.marketing.consent' | 'subscriptions.sms.marketing.consent_timestamp' | 'subscriptions.sms.marketing.method' | 'subscriptions.sms.marketing.method_detail' | 'subscriptions.sms.marketing.last_updated' | 'subscriptions.sms.transactional' | 'subscriptions.sms.transactional.can_receive_sms_transactional' | 'subscriptions.sms.transactional.consent' | 'subscriptions.sms.transactional.consent_timestamp' | 'subscriptions.sms.transactional.method' | 'subscriptions.sms.transactional.method_detail' | 'subscriptions.sms.transactional.last_updated' | 'subscriptions.mobile_push' | 'subscriptions.mobile_push.marketing' | 'subscriptions.mobile_push.marketing.can_receive_push_marketing' | 'subscriptions.mobile_push.marketing.consent' | 'subscriptions.mobile_push.marketing.consent_timestamp' | 'predictive_analytics' | 'predictive_analytics.historic_clv' | 'predictive_analytics.predicted_clv' | 'predictive_analytics.total_clv' | 'predictive_analytics.historic_number_of_orders' | 'predictive_analytics.predicted_number_of_orders' | 'predictive_analytics.average_days_between_orders' | 'predictive_analytics.average_order_value' | 'predictive_analytics.churn_probability' | 'predictive_analytics.expected_date_of_next_order'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
    };
    url: '/api/profile-bulk-import-jobs/{id}/profiles';
};

export type GetProfilesForBulkImportProfilesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfilesForBulkImportProfilesJobError = GetProfilesForBulkImportProfilesJobErrors[keyof GetProfilesForBulkImportProfilesJobErrors];

export type GetProfilesForBulkImportProfilesJobResponses = {
    /**
     * Success
     */
    200: GetProfileResponseCollection;
};

export type GetProfilesForBulkImportProfilesJobResponse = GetProfilesForBulkImportProfilesJobResponses[keyof GetProfilesForBulkImportProfilesJobResponses];

export type GetProfileIdsForBulkImportProfilesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
    };
    url: '/api/profile-bulk-import-jobs/{id}/relationships/profiles';
};

export type GetProfileIdsForBulkImportProfilesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfileIdsForBulkImportProfilesJobError = GetProfileIdsForBulkImportProfilesJobErrors[keyof GetProfileIdsForBulkImportProfilesJobErrors];

export type GetProfileIdsForBulkImportProfilesJobResponses = {
    /**
     * Success
     */
    200: GetProfileBulkImportJobProfilesRelationshipsResponseCollection;
};

export type GetProfileIdsForBulkImportProfilesJobResponse = GetProfileIdsForBulkImportProfilesJobResponses[keyof GetProfileIdsForBulkImportProfilesJobResponses];

export type GetErrorsForBulkImportProfilesJobData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[import-error]'?: Array<'code' | 'title' | 'detail' | 'source' | 'source.pointer' | 'original_payload'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
    };
    url: '/api/profile-bulk-import-jobs/{id}/import-errors';
};

export type GetErrorsForBulkImportProfilesJobErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetErrorsForBulkImportProfilesJobError = GetErrorsForBulkImportProfilesJobErrors[keyof GetErrorsForBulkImportProfilesJobErrors];

export type GetErrorsForBulkImportProfilesJobResponses = {
    /**
     * Success
     */
    200: GetImportErrorResponseCollection;
};

export type GetErrorsForBulkImportProfilesJobResponse = GetErrorsForBulkImportProfilesJobResponses[keyof GetErrorsForBulkImportProfilesJobResponses];

export type GetProfileForPushTokenData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The value of the push token
         */
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties' | 'subscriptions' | 'subscriptions.email' | 'subscriptions.email.marketing' | 'subscriptions.email.marketing.can_receive_email_marketing' | 'subscriptions.email.marketing.consent' | 'subscriptions.email.marketing.consent_timestamp' | 'subscriptions.email.marketing.last_updated' | 'subscriptions.email.marketing.method' | 'subscriptions.email.marketing.method_detail' | 'subscriptions.email.marketing.custom_method_detail' | 'subscriptions.email.marketing.double_optin' | 'subscriptions.email.marketing.suppression' | 'subscriptions.email.marketing.list_suppressions' | 'subscriptions.sms' | 'subscriptions.sms.marketing' | 'subscriptions.sms.marketing.can_receive_sms_marketing' | 'subscriptions.sms.marketing.consent' | 'subscriptions.sms.marketing.consent_timestamp' | 'subscriptions.sms.marketing.method' | 'subscriptions.sms.marketing.method_detail' | 'subscriptions.sms.marketing.last_updated' | 'subscriptions.sms.transactional' | 'subscriptions.sms.transactional.can_receive_sms_transactional' | 'subscriptions.sms.transactional.consent' | 'subscriptions.sms.transactional.consent_timestamp' | 'subscriptions.sms.transactional.method' | 'subscriptions.sms.transactional.method_detail' | 'subscriptions.sms.transactional.last_updated' | 'subscriptions.mobile_push' | 'subscriptions.mobile_push.marketing' | 'subscriptions.mobile_push.marketing.can_receive_push_marketing' | 'subscriptions.mobile_push.marketing.consent' | 'subscriptions.mobile_push.marketing.consent_timestamp' | 'predictive_analytics' | 'predictive_analytics.historic_clv' | 'predictive_analytics.predicted_clv' | 'predictive_analytics.total_clv' | 'predictive_analytics.historic_number_of_orders' | 'predictive_analytics.predicted_number_of_orders' | 'predictive_analytics.average_days_between_orders' | 'predictive_analytics.average_order_value' | 'predictive_analytics.churn_probability' | 'predictive_analytics.expected_date_of_next_order'>;
    };
    url: '/api/push-tokens/{id}/profile';
};

export type GetProfileForPushTokenErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfileForPushTokenError = GetProfileForPushTokenErrors[keyof GetProfileForPushTokenErrors];

export type GetProfileForPushTokenResponses = {
    /**
     * Success
     */
    200: GetProfileResponse;
};

export type GetProfileForPushTokenResponse = GetProfileForPushTokenResponses[keyof GetProfileForPushTokenResponses];

export type GetProfileIdForPushTokenData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The value of the push token
         */
        id: string;
    };
    query?: never;
    url: '/api/push-tokens/{id}/relationships/profile';
};

export type GetProfileIdForPushTokenErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfileIdForPushTokenError = GetProfileIdForPushTokenErrors[keyof GetProfileIdForPushTokenErrors];

export type GetProfileIdForPushTokenResponses = {
    /**
     * Success
     */
    200: GetPushTokenProfileRelationshipResponse;
};

export type GetProfileIdForPushTokenResponse = GetProfileIdForPushTokenResponses[keyof GetProfileIdForPushTokenResponses];

export type QueryCampaignValuesData = {
    body: CampaignValuesRequestDto;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        page_cursor?: string;
    };
    url: '/api/campaign-values-reports';
};

export type QueryCampaignValuesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type QueryCampaignValuesError = QueryCampaignValuesErrors[keyof QueryCampaignValuesErrors];

export type QueryCampaignValuesResponses = {
    /**
     * Success
     */
    200: PostCampaignValuesResponseDto;
};

export type QueryCampaignValuesResponse = QueryCampaignValuesResponses[keyof QueryCampaignValuesResponses];

export type QueryFlowValuesData = {
    body: FlowValuesRequestDto;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        page_cursor?: string;
    };
    url: '/api/flow-values-reports';
};

export type QueryFlowValuesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type QueryFlowValuesError = QueryFlowValuesErrors[keyof QueryFlowValuesErrors];

export type QueryFlowValuesResponses = {
    /**
     * Success
     */
    200: PostFlowValuesResponseDto;
};

export type QueryFlowValuesResponse = QueryFlowValuesResponses[keyof QueryFlowValuesResponses];

export type QueryFlowSeriesData = {
    body: FlowSeriesRequestDto;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        page_cursor?: string;
    };
    url: '/api/flow-series-reports';
};

export type QueryFlowSeriesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type QueryFlowSeriesError = QueryFlowSeriesErrors[keyof QueryFlowSeriesErrors];

export type QueryFlowSeriesResponses = {
    /**
     * Success
     */
    200: PostFlowSeriesResponseDto;
};

export type QueryFlowSeriesResponse = QueryFlowSeriesResponses[keyof QueryFlowSeriesResponses];

export type QueryFormValuesData = {
    body: FormValuesRequestDto;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/form-values-reports';
};

export type QueryFormValuesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type QueryFormValuesError = QueryFormValuesErrors[keyof QueryFormValuesErrors];

export type QueryFormValuesResponses = {
    /**
     * Success
     */
    200: PostFormValuesResponseDto;
};

export type QueryFormValuesResponse = QueryFormValuesResponses[keyof QueryFormValuesResponses];

export type QueryFormSeriesData = {
    body: FormSeriesRequestDto;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/form-series-reports';
};

export type QueryFormSeriesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type QueryFormSeriesError = QueryFormSeriesErrors[keyof QueryFormSeriesErrors];

export type QueryFormSeriesResponses = {
    /**
     * Success
     */
    200: PostFormSeriesResponseDto;
};

export type QueryFormSeriesResponse = QueryFormSeriesResponses[keyof QueryFormSeriesResponses];

export type QuerySegmentValuesData = {
    body: SegmentValuesRequestDto;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/segment-values-reports';
};

export type QuerySegmentValuesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type QuerySegmentValuesError = QuerySegmentValuesErrors[keyof QuerySegmentValuesErrors];

export type QuerySegmentValuesResponses = {
    /**
     * Success
     */
    200: PostSegmentValuesResponseDto;
};

export type QuerySegmentValuesResponse = QuerySegmentValuesResponses[keyof QuerySegmentValuesResponses];

export type QuerySegmentSeriesData = {
    body: SegmentSeriesRequestDto;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/segment-series-reports';
};

export type QuerySegmentSeriesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type QuerySegmentSeriesError = QuerySegmentSeriesErrors[keyof QuerySegmentSeriesErrors];

export type QuerySegmentSeriesResponses = {
    /**
     * Success
     */
    200: PostSegmentSeriesResponseDto;
};

export type QuerySegmentSeriesResponse = QuerySegmentSeriesResponses[keyof QuerySegmentSeriesResponses];

export type GetReviewsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[event]'?: Array<'timestamp' | 'event_properties' | 'datetime' | 'uuid'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[review]'?: Array<'email' | 'status' | 'status.value' | 'status.rejection_reason' | 'status.rejection_reason.reason' | 'status.rejection_reason.status_explanation' | 'verified' | 'review_type' | 'created' | 'updated' | 'images' | 'product' | 'product.url' | 'product.name' | 'product.image_url' | 'product.external_id' | 'rating' | 'author' | 'content' | 'title' | 'smart_quote' | 'public_reply' | 'public_reply.content' | 'public_reply.author' | 'public_reply.updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`created`: `greater-or-equal`, `less-or-equal`<br>`rating`: `any`, `equals`, `greater-or-equal`, `less-or-equal`<br>`id`: `any`, `equals`<br>`item.id`: `any`, `equals`<br>`content`: `contains`<br>`status`: `equals`<br>`review_type`: `equals`<br>`verified`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'events'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'rating' | '-rating' | 'updated' | '-updated';
    };
    url: '/api/reviews';
};

export type GetReviewsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetReviewsError = GetReviewsErrors[keyof GetReviewsErrors];

export type GetReviewsResponses = {
    /**
     * Success
     */
    200: GetReviewResponseDtoCollectionCompoundDocument;
};

export type GetReviewsResponse = GetReviewsResponses[keyof GetReviewsResponses];

export type GetReviewData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the review
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[event]'?: Array<'timestamp' | 'event_properties' | 'datetime' | 'uuid'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[review]'?: Array<'email' | 'status' | 'status.value' | 'status.rejection_reason' | 'status.rejection_reason.reason' | 'status.rejection_reason.status_explanation' | 'verified' | 'review_type' | 'created' | 'updated' | 'images' | 'product' | 'product.url' | 'product.name' | 'product.image_url' | 'product.external_id' | 'rating' | 'author' | 'content' | 'title' | 'smart_quote' | 'public_reply' | 'public_reply.content' | 'public_reply.author' | 'public_reply.updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'events'>;
    };
    url: '/api/reviews/{id}';
};

export type GetReviewErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetReviewError = GetReviewErrors[keyof GetReviewErrors];

export type GetReviewResponses = {
    /**
     * Success
     */
    200: GetReviewResponseDtoCompoundDocument;
};

export type GetReviewResponse = GetReviewResponses[keyof GetReviewResponses];

export type UpdateReviewData = {
    /**
     * DTO for updating reviews
     */
    body: ReviewPatchQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The id of the review (review ID).
         */
        id: string;
    };
    query?: never;
    url: '/api/reviews/{id}';
};

export type UpdateReviewErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateReviewError = UpdateReviewErrors[keyof UpdateReviewErrors];

export type UpdateReviewResponses = {
    /**
     * Success
     */
    200: PatchReviewResponseDto;
};

export type UpdateReviewResponse = UpdateReviewResponses[keyof UpdateReviewResponses];

export type GetSegmentsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[segment]'?: Array<'name' | 'definition' | 'definition.condition_groups' | 'created' | 'updated' | 'is_active' | 'is_processing' | 'is_starred'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`name`: `any`, `equals`<br>`id`: `any`, `equals`<br>`created`: `greater-than`<br>`updated`: `greater-than`<br>`is_active`: `any`, `equals`<br>`is_starred`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-triggers' | 'tags'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'updated' | '-updated';
    };
    url: '/api/segments';
};

export type GetSegmentsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetSegmentsError = GetSegmentsErrors[keyof GetSegmentsErrors];

export type GetSegmentsResponses = {
    /**
     * Success
     */
    200: GetSegmentListResponseCollectionCompoundDocument;
};

export type GetSegmentsResponse = GetSegmentsResponses[keyof GetSegmentsResponses];

export type CreateSegmentData = {
    body: SegmentCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/segments';
};

export type CreateSegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateSegmentError = CreateSegmentErrors[keyof CreateSegmentErrors];

export type CreateSegmentResponses = {
    /**
     * Success
     */
    201: PostSegmentCreateResponse;
};

export type CreateSegmentResponse = CreateSegmentResponses[keyof CreateSegmentResponses];

export type DeleteSegmentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/segments/{id}';
};

export type DeleteSegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteSegmentError = DeleteSegmentErrors[keyof DeleteSegmentErrors];

export type DeleteSegmentResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteSegmentResponse = DeleteSegmentResponses[keyof DeleteSegmentResponses];

export type GetSegmentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'profile_count'
         */
        'additional-fields[segment]'?: Array<'profile_count'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[segment]'?: Array<'name' | 'definition' | 'definition.condition_groups' | 'created' | 'updated' | 'is_active' | 'is_processing' | 'is_starred' | 'profile_count'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'flow-triggers' | 'tags'>;
    };
    url: '/api/segments/{id}';
};

export type GetSegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetSegmentError = GetSegmentErrors[keyof GetSegmentErrors];

export type GetSegmentResponses = {
    /**
     * Success
     */
    200: GetSegmentRetrieveResponseCompoundDocument;
};

export type GetSegmentResponse = GetSegmentResponses[keyof GetSegmentResponses];

export type UpdateSegmentData = {
    body: SegmentPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/segments/{id}';
};

export type UpdateSegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateSegmentError = UpdateSegmentErrors[keyof UpdateSegmentErrors];

export type UpdateSegmentResponses = {
    /**
     * Success
     */
    200: PatchSegmentPartialUpdateResponse;
};

export type UpdateSegmentResponse = UpdateSegmentResponses[keyof UpdateSegmentResponses];

export type GetTagsForSegmentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
    };
    url: '/api/segments/{id}/tags';
};

export type GetTagsForSegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagsForSegmentError = GetTagsForSegmentErrors[keyof GetTagsForSegmentErrors];

export type GetTagsForSegmentResponses = {
    /**
     * Success
     */
    200: GetTagResponseCollection;
};

export type GetTagsForSegmentResponse = GetTagsForSegmentResponses[keyof GetTagsForSegmentResponses];

export type GetTagIdsForSegmentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/segments/{id}/relationships/tags';
};

export type GetTagIdsForSegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagIdsForSegmentError = GetTagIdsForSegmentErrors[keyof GetTagIdsForSegmentErrors];

export type GetTagIdsForSegmentResponses = {
    /**
     * Success
     */
    200: GetSegmentTagsRelationshipsResponseCollection;
};

export type GetTagIdsForSegmentResponse = GetTagIdsForSegmentResponses[keyof GetTagIdsForSegmentResponses];

export type GetProfilesForSegmentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this segment. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'
         */
        'additional-fields[profile]'?: Array<'subscriptions' | 'predictive_analytics'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[profile]'?: Array<'email' | 'phone_number' | 'external_id' | 'first_name' | 'last_name' | 'organization' | 'locale' | 'title' | 'image' | 'created' | 'updated' | 'last_event_date' | 'location' | 'location.address1' | 'location.address2' | 'location.city' | 'location.country' | 'location.latitude' | 'location.longitude' | 'location.region' | 'location.zip' | 'location.timezone' | 'location.ip' | 'properties' | 'joined_group_at' | 'subscriptions' | 'subscriptions.email' | 'subscriptions.email.marketing' | 'subscriptions.email.marketing.can_receive_email_marketing' | 'subscriptions.email.marketing.consent' | 'subscriptions.email.marketing.consent_timestamp' | 'subscriptions.email.marketing.last_updated' | 'subscriptions.email.marketing.method' | 'subscriptions.email.marketing.method_detail' | 'subscriptions.email.marketing.custom_method_detail' | 'subscriptions.email.marketing.double_optin' | 'subscriptions.email.marketing.suppression' | 'subscriptions.email.marketing.list_suppressions' | 'subscriptions.sms' | 'subscriptions.sms.marketing' | 'subscriptions.sms.marketing.can_receive_sms_marketing' | 'subscriptions.sms.marketing.consent' | 'subscriptions.sms.marketing.consent_timestamp' | 'subscriptions.sms.marketing.method' | 'subscriptions.sms.marketing.method_detail' | 'subscriptions.sms.marketing.last_updated' | 'subscriptions.sms.transactional' | 'subscriptions.sms.transactional.can_receive_sms_transactional' | 'subscriptions.sms.transactional.consent' | 'subscriptions.sms.transactional.consent_timestamp' | 'subscriptions.sms.transactional.method' | 'subscriptions.sms.transactional.method_detail' | 'subscriptions.sms.transactional.last_updated' | 'subscriptions.mobile_push' | 'subscriptions.mobile_push.marketing' | 'subscriptions.mobile_push.marketing.can_receive_push_marketing' | 'subscriptions.mobile_push.marketing.consent' | 'subscriptions.mobile_push.marketing.consent_timestamp' | 'predictive_analytics' | 'predictive_analytics.historic_clv' | 'predictive_analytics.predicted_clv' | 'predictive_analytics.total_clv' | 'predictive_analytics.historic_number_of_orders' | 'predictive_analytics.predicted_number_of_orders' | 'predictive_analytics.average_days_between_orders' | 'predictive_analytics.average_order_value' | 'predictive_analytics.churn_probability' | 'predictive_analytics.expected_date_of_next_order'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`email`: `any`, `equals`<br>`phone_number`: `any`, `equals`<br>`push_token`: `any`, `equals`<br>`_kx`: `equals`<br>`joined_group_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'joined_group_at' | '-joined_group_at';
    };
    url: '/api/segments/{id}/profiles';
};

export type GetProfilesForSegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfilesForSegmentError = GetProfilesForSegmentErrors[keyof GetProfilesForSegmentErrors];

export type GetProfilesForSegmentResponses = {
    /**
     * Success
     */
    200: GetSegmentMemberResponseCollection;
};

export type GetProfilesForSegmentResponse = GetProfilesForSegmentResponses[keyof GetProfilesForSegmentResponses];

export type GetProfileIdsForSegmentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this segment. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`email`: `any`, `equals`<br>`phone_number`: `any`, `equals`<br>`push_token`: `any`, `equals`<br>`_kx`: `equals`<br>`joined_group_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'joined_group_at' | '-joined_group_at';
    };
    url: '/api/segments/{id}/relationships/profiles';
};

export type GetProfileIdsForSegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetProfileIdsForSegmentError = GetProfileIdsForSegmentErrors[keyof GetProfileIdsForSegmentErrors];

export type GetProfileIdsForSegmentResponses = {
    /**
     * Success
     */
    200: GetSegmentProfilesRelationshipsResponseCollection;
};

export type GetProfileIdsForSegmentResponse = GetProfileIdsForSegmentResponses[keyof GetProfileIdsForSegmentResponses];

export type GetFlowsTriggeredBySegmentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this segment. Generated by Klaviyo.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[flow]'?: Array<'name' | 'status' | 'archived' | 'created' | 'updated' | 'trigger_type'>;
    };
    url: '/api/segments/{id}/flow-triggers';
};

export type GetFlowsTriggeredBySegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowsTriggeredBySegmentError = GetFlowsTriggeredBySegmentErrors[keyof GetFlowsTriggeredBySegmentErrors];

export type GetFlowsTriggeredBySegmentResponses = {
    /**
     * Success
     */
    200: GetFlowResponseCollection;
};

export type GetFlowsTriggeredBySegmentResponse = GetFlowsTriggeredBySegmentResponses[keyof GetFlowsTriggeredBySegmentResponses];

export type GetIdsForFlowsTriggeredBySegmentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * Primary key that uniquely identifies this segment. Generated by Klaviyo.
         */
        id: string;
    };
    query?: never;
    url: '/api/segments/{id}/relationships/flow-triggers';
};

export type GetIdsForFlowsTriggeredBySegmentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetIdsForFlowsTriggeredBySegmentError = GetIdsForFlowsTriggeredBySegmentErrors[keyof GetIdsForFlowsTriggeredBySegmentErrors];

export type GetIdsForFlowsTriggeredBySegmentResponses = {
    /**
     * Success
     */
    200: GetSegmentFlowTriggersRelationshipsResponseCollection;
};

export type GetIdsForFlowsTriggeredBySegmentResponse = GetIdsForFlowsTriggeredBySegmentResponses[keyof GetIdsForFlowsTriggeredBySegmentResponses];

export type GetTagsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag-group]'?: Array<'name' | 'exclusive' | 'default'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`name`: `contains`, `ends-with`, `equals`, `starts-with`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'tag-group'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'id' | '-id' | 'name' | '-name';
    };
    url: '/api/tags';
};

export type GetTagsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagsError = GetTagsErrors[keyof GetTagsErrors];

export type GetTagsResponses = {
    /**
     * Success
     */
    200: GetTagResponseCollectionCompoundDocument;
};

export type GetTagsResponse = GetTagsResponses[keyof GetTagsResponses];

export type CreateTagData = {
    body: TagCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/tags';
};

export type CreateTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateTagError = CreateTagErrors[keyof CreateTagErrors];

export type CreateTagResponses = {
    /**
     * Success
     */
    201: PostTagResponse;
};

export type CreateTagResponse = CreateTagResponses[keyof CreateTagResponses];

export type DeleteTagData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}';
};

export type DeleteTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteTagError = DeleteTagErrors[keyof DeleteTagErrors];

export type DeleteTagResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteTagResponse = DeleteTagResponses[keyof DeleteTagResponses];

export type GetTagData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag-group]'?: Array<'name' | 'exclusive' | 'default'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'tag-group'>;
    };
    url: '/api/tags/{id}';
};

export type GetTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagError = GetTagErrors[keyof GetTagErrors];

export type GetTagResponses = {
    /**
     * Success
     */
    200: GetTagResponseCompoundDocument;
};

export type GetTagResponse = GetTagResponses[keyof GetTagResponses];

export type UpdateTagData = {
    body: TagUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}';
};

export type UpdateTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateTagError = UpdateTagErrors[keyof UpdateTagErrors];

export type UpdateTagResponses = {
    /**
     * Success
     */
    204: void;
};

export type UpdateTagResponse = UpdateTagResponses[keyof UpdateTagResponses];

export type GetTagGroupsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag-group]'?: Array<'name' | 'exclusive' | 'default'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`name`: `contains`, `ends-with`, `equals`, `starts-with`<br>`exclusive`: `equals`<br>`default`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'id' | '-id' | 'name' | '-name';
    };
    url: '/api/tag-groups';
};

export type GetTagGroupsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagGroupsError = GetTagGroupsErrors[keyof GetTagGroupsErrors];

export type GetTagGroupsResponses = {
    /**
     * Success
     */
    200: GetTagGroupResponseCollection;
};

export type GetTagGroupsResponse = GetTagGroupsResponses[keyof GetTagGroupsResponses];

export type CreateTagGroupData = {
    body: TagGroupCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/tag-groups';
};

export type CreateTagGroupErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateTagGroupError = CreateTagGroupErrors[keyof CreateTagGroupErrors];

export type CreateTagGroupResponses = {
    /**
     * Success
     */
    201: PostTagGroupResponse;
};

export type CreateTagGroupResponse = CreateTagGroupResponses[keyof CreateTagGroupResponses];

export type DeleteTagGroupData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag Group ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tag-groups/{id}';
};

export type DeleteTagGroupErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteTagGroupError = DeleteTagGroupErrors[keyof DeleteTagGroupErrors];

export type DeleteTagGroupResponses = {
    /**
     * Success
     */
    200: DeleteTagGroupResponse;
};

export type DeleteTagGroupResponse2 = DeleteTagGroupResponses[keyof DeleteTagGroupResponses];

export type GetTagGroupData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag Group ID
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag-group]'?: Array<'name' | 'exclusive' | 'default'>;
    };
    url: '/api/tag-groups/{id}';
};

export type GetTagGroupErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagGroupError = GetTagGroupErrors[keyof GetTagGroupErrors];

export type GetTagGroupResponses = {
    /**
     * Success
     */
    200: GetTagGroupResponse;
};

export type GetTagGroupResponse2 = GetTagGroupResponses[keyof GetTagGroupResponses];

export type UpdateTagGroupData = {
    body: TagGroupUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag Group ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tag-groups/{id}';
};

export type UpdateTagGroupErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateTagGroupError = UpdateTagGroupErrors[keyof UpdateTagGroupErrors];

export type UpdateTagGroupResponses = {
    /**
     * Success
     */
    200: PatchTagGroupResponse;
};

export type UpdateTagGroupResponse = UpdateTagGroupResponses[keyof UpdateTagGroupResponses];

export type RemoveTagFromFlowsData = {
    body: TagFlowOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/flows';
};

export type RemoveTagFromFlowsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RemoveTagFromFlowsError = RemoveTagFromFlowsErrors[keyof RemoveTagFromFlowsErrors];

export type RemoveTagFromFlowsResponses = {
    /**
     * Success
     */
    204: void;
};

export type RemoveTagFromFlowsResponse = RemoveTagFromFlowsResponses[keyof RemoveTagFromFlowsResponses];

export type GetFlowIdsForTagData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/flows';
};

export type GetFlowIdsForTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetFlowIdsForTagError = GetFlowIdsForTagErrors[keyof GetFlowIdsForTagErrors];

export type GetFlowIdsForTagResponses = {
    /**
     * Success
     */
    200: GetTagFlowRelationshipsResponseCollection;
};

export type GetFlowIdsForTagResponse = GetFlowIdsForTagResponses[keyof GetFlowIdsForTagResponses];

export type TagFlowsData = {
    body: TagFlowOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/flows';
};

export type TagFlowsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type TagFlowsError = TagFlowsErrors[keyof TagFlowsErrors];

export type TagFlowsResponses = {
    /**
     * Success
     */
    204: void;
};

export type TagFlowsResponse = TagFlowsResponses[keyof TagFlowsResponses];

export type RemoveTagFromCampaignsData = {
    body: TagCampaignOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/campaigns';
};

export type RemoveTagFromCampaignsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RemoveTagFromCampaignsError = RemoveTagFromCampaignsErrors[keyof RemoveTagFromCampaignsErrors];

export type RemoveTagFromCampaignsResponses = {
    /**
     * Success
     */
    204: void;
};

export type RemoveTagFromCampaignsResponse = RemoveTagFromCampaignsResponses[keyof RemoveTagFromCampaignsResponses];

export type GetCampaignIdsForTagData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/campaigns';
};

export type GetCampaignIdsForTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetCampaignIdsForTagError = GetCampaignIdsForTagErrors[keyof GetCampaignIdsForTagErrors];

export type GetCampaignIdsForTagResponses = {
    /**
     * Success
     */
    200: GetTagCampaignRelationshipsResponseCollection;
};

export type GetCampaignIdsForTagResponse = GetCampaignIdsForTagResponses[keyof GetCampaignIdsForTagResponses];

export type TagCampaignsData = {
    body: TagCampaignOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/campaigns';
};

export type TagCampaignsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type TagCampaignsError = TagCampaignsErrors[keyof TagCampaignsErrors];

export type TagCampaignsResponses = {
    /**
     * Success
     */
    204: void;
};

export type TagCampaignsResponse = TagCampaignsResponses[keyof TagCampaignsResponses];

export type RemoveTagFromListsData = {
    body: TagListOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/lists';
};

export type RemoveTagFromListsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RemoveTagFromListsError = RemoveTagFromListsErrors[keyof RemoveTagFromListsErrors];

export type RemoveTagFromListsResponses = {
    /**
     * Success
     */
    204: void;
};

export type RemoveTagFromListsResponse = RemoveTagFromListsResponses[keyof RemoveTagFromListsResponses];

export type GetListIdsForTagData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/lists';
};

export type GetListIdsForTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetListIdsForTagError = GetListIdsForTagErrors[keyof GetListIdsForTagErrors];

export type GetListIdsForTagResponses = {
    /**
     * Success
     */
    200: GetTagListRelationshipsResponseCollection;
};

export type GetListIdsForTagResponse = GetListIdsForTagResponses[keyof GetListIdsForTagResponses];

export type TagListsData = {
    body: TagListOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/lists';
};

export type TagListsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type TagListsError = TagListsErrors[keyof TagListsErrors];

export type TagListsResponses = {
    /**
     * Success
     */
    204: void;
};

export type TagListsResponse = TagListsResponses[keyof TagListsResponses];

export type RemoveTagFromSegmentsData = {
    body: TagSegmentOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/segments';
};

export type RemoveTagFromSegmentsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RemoveTagFromSegmentsError = RemoveTagFromSegmentsErrors[keyof RemoveTagFromSegmentsErrors];

export type RemoveTagFromSegmentsResponses = {
    /**
     * Success
     */
    204: void;
};

export type RemoveTagFromSegmentsResponse = RemoveTagFromSegmentsResponses[keyof RemoveTagFromSegmentsResponses];

export type GetSegmentIdsForTagData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/segments';
};

export type GetSegmentIdsForTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetSegmentIdsForTagError = GetSegmentIdsForTagErrors[keyof GetSegmentIdsForTagErrors];

export type GetSegmentIdsForTagResponses = {
    /**
     * Success
     */
    200: GetTagSegmentRelationshipsResponseCollection;
};

export type GetSegmentIdsForTagResponse = GetSegmentIdsForTagResponses[keyof GetSegmentIdsForTagResponses];

export type TagSegmentsData = {
    body: TagSegmentOp;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/segments';
};

export type TagSegmentsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type TagSegmentsError = TagSegmentsErrors[keyof TagSegmentsErrors];

export type TagSegmentsResponses = {
    /**
     * Success
     */
    204: void;
};

export type TagSegmentsResponse = TagSegmentsResponses[keyof TagSegmentsResponses];

export type GetTagGroupForTagData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag-group]'?: Array<'name' | 'exclusive' | 'default'>;
    };
    url: '/api/tags/{id}/tag-group';
};

export type GetTagGroupForTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagGroupForTagError = GetTagGroupForTagErrors[keyof GetTagGroupForTagErrors];

export type GetTagGroupForTagResponses = {
    /**
     * Success
     */
    200: GetTagGroupResponse;
};

export type GetTagGroupForTagResponse = GetTagGroupForTagResponses[keyof GetTagGroupForTagResponses];

export type GetTagGroupIdForTagData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tags/{id}/relationships/tag-group';
};

export type GetTagGroupIdForTagErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagGroupIdForTagError = GetTagGroupIdForTagErrors[keyof GetTagGroupIdForTagErrors];

export type GetTagGroupIdForTagResponses = {
    /**
     * Success
     */
    200: GetTagGroupRelationshipResponse;
};

export type GetTagGroupIdForTagResponse = GetTagGroupIdForTagResponses[keyof GetTagGroupIdForTagResponses];

export type GetTagsForTagGroupData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag Group ID
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tag]'?: Array<'name'>;
    };
    url: '/api/tag-groups/{id}/tags';
};

export type GetTagsForTagGroupErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagsForTagGroupError = GetTagsForTagGroupErrors[keyof GetTagsForTagGroupErrors];

export type GetTagsForTagGroupResponses = {
    /**
     * Success
     */
    200: GetTagResponseCollection;
};

export type GetTagsForTagGroupResponse = GetTagsForTagGroupResponses[keyof GetTagsForTagGroupResponses];

export type GetTagIdsForTagGroupData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The Tag Group ID
         */
        id: string;
    };
    query?: never;
    url: '/api/tag-groups/{id}/relationships/tags';
};

export type GetTagIdsForTagGroupErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTagIdsForTagGroupError = GetTagIdsForTagGroupErrors[keyof GetTagIdsForTagGroupErrors];

export type GetTagIdsForTagGroupResponses = {
    /**
     * Success
     */
    200: GetTagGroupTagsRelationshipsResponseCollection;
};

export type GetTagIdsForTagGroupResponse = GetTagIdsForTagGroupResponses[keyof GetTagIdsForTagGroupResponses];

export type GetTemplatesData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template]'?: Array<'name' | 'editor_type' | 'html' | 'text' | 'amp' | 'created' | 'updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`, `equals`<br>`name`: `any`, `equals`<br>`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'updated' | '-updated';
    };
    url: '/api/templates';
};

export type GetTemplatesErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTemplatesError = GetTemplatesErrors[keyof GetTemplatesErrors];

export type GetTemplatesResponses = {
    /**
     * Success
     */
    200: GetTemplateResponseCollection;
};

export type GetTemplatesResponse = GetTemplatesResponses[keyof GetTemplatesResponses];

export type CreateTemplateData = {
    body: TemplateCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/templates';
};

export type CreateTemplateErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateTemplateError = CreateTemplateErrors[keyof CreateTemplateErrors];

export type CreateTemplateResponses = {
    /**
     * Success
     */
    201: PostTemplateResponse;
};

export type CreateTemplateResponse = CreateTemplateResponses[keyof CreateTemplateResponses];

export type DeleteTemplateData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of template
         */
        id: string;
    };
    query?: never;
    url: '/api/templates/{id}';
};

export type DeleteTemplateErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteTemplateError = DeleteTemplateErrors[keyof DeleteTemplateErrors];

export type DeleteTemplateResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteTemplateResponse = DeleteTemplateResponses[keyof DeleteTemplateResponses];

export type GetTemplateData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of template
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template]'?: Array<'name' | 'editor_type' | 'html' | 'text' | 'amp' | 'created' | 'updated'>;
    };
    url: '/api/templates/{id}';
};

export type GetTemplateErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTemplateError = GetTemplateErrors[keyof GetTemplateErrors];

export type GetTemplateResponses = {
    /**
     * Success
     */
    200: GetTemplateResponse;
};

export type GetTemplateResponse2 = GetTemplateResponses[keyof GetTemplateResponses];

export type UpdateTemplateData = {
    body: TemplateUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of template
         */
        id: string;
    };
    query?: never;
    url: '/api/templates/{id}';
};

export type UpdateTemplateErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateTemplateError = UpdateTemplateErrors[keyof UpdateTemplateErrors];

export type UpdateTemplateResponses = {
    /**
     * Success
     */
    200: PatchTemplateResponse;
};

export type UpdateTemplateResponse = UpdateTemplateResponses[keyof UpdateTemplateResponses];

export type GetAllUniversalContentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template-universal-content]'?: Array<'name' | 'definition' | 'definition.content_type' | 'definition.type' | 'definition.data' | 'definition.data.content' | 'definition.data.display_options' | 'definition.data.display_options.show_on' | 'definition.data.display_options.visible_check' | 'definition.data.display_options.content_repeat' | 'definition.data.display_options.content_repeat.repeat_for' | 'definition.data.display_options.content_repeat.item_alias' | 'definition.data.styles' | 'definition.data.styles.background_color' | 'definition.data.styles.block_background_color' | 'definition.data.styles.block_border_color' | 'definition.data.styles.block_border_style' | 'definition.data.styles.block_border_width' | 'definition.data.styles.block_padding_bottom' | 'definition.data.styles.block_padding_left' | 'definition.data.styles.block_padding_right' | 'definition.data.styles.block_padding_top' | 'definition.data.styles.color' | 'definition.data.styles.extra_css_class' | 'definition.data.styles.font_family' | 'definition.data.styles.font_size' | 'definition.data.styles.font_style' | 'definition.data.styles.font_weight' | 'definition.data.styles.inner_padding_bottom' | 'definition.data.styles.inner_padding_left' | 'definition.data.styles.inner_padding_right' | 'definition.data.styles.inner_padding_top' | 'definition.data.styles.letter_spacing' | 'definition.data.styles.line_height' | 'definition.data.styles.mobile_stretch_content' | 'definition.data.styles.text_align' | 'definition.data.styles.text_decoration' | 'definition.data.styles.text_table_layout' | 'created' | 'updated' | 'screenshot_status' | 'screenshot_url'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`, `equals`<br>`name`: `any`, `equals`<br>`created`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`definition.content_type`: `equals`<br>`definition.type`: `equals`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'updated' | '-updated';
    };
    url: '/api/template-universal-content';
};

export type GetAllUniversalContentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetAllUniversalContentError = GetAllUniversalContentErrors[keyof GetAllUniversalContentErrors];

export type GetAllUniversalContentResponses = {
    /**
     * Success
     */
    200: GetUniversalContentResponseCollection;
};

export type GetAllUniversalContentResponse = GetAllUniversalContentResponses[keyof GetAllUniversalContentResponses];

export type CreateUniversalContentData = {
    /**
     * Create a template universal content
     */
    body: UniversalContentCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/template-universal-content';
};

export type CreateUniversalContentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateUniversalContentError = CreateUniversalContentErrors[keyof CreateUniversalContentErrors];

export type CreateUniversalContentResponses = {
    /**
     * Success
     */
    201: PostUniversalContentResponse;
};

export type CreateUniversalContentResponse = CreateUniversalContentResponses[keyof CreateUniversalContentResponses];

export type DeleteUniversalContentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the template universal content
         */
        id: string;
    };
    query?: never;
    url: '/api/template-universal-content/{id}';
};

export type DeleteUniversalContentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteUniversalContentError = DeleteUniversalContentErrors[keyof DeleteUniversalContentErrors];

export type DeleteUniversalContentResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteUniversalContentResponse = DeleteUniversalContentResponses[keyof DeleteUniversalContentResponses];

export type GetUniversalContentData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the universal content
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[template-universal-content]'?: Array<'name' | 'definition' | 'definition.content_type' | 'definition.type' | 'definition.data' | 'definition.data.content' | 'definition.data.display_options' | 'definition.data.display_options.show_on' | 'definition.data.display_options.visible_check' | 'definition.data.display_options.content_repeat' | 'definition.data.display_options.content_repeat.repeat_for' | 'definition.data.display_options.content_repeat.item_alias' | 'definition.data.styles' | 'definition.data.styles.background_color' | 'definition.data.styles.block_background_color' | 'definition.data.styles.block_border_color' | 'definition.data.styles.block_border_style' | 'definition.data.styles.block_border_width' | 'definition.data.styles.block_padding_bottom' | 'definition.data.styles.block_padding_left' | 'definition.data.styles.block_padding_right' | 'definition.data.styles.block_padding_top' | 'definition.data.styles.color' | 'definition.data.styles.extra_css_class' | 'definition.data.styles.font_family' | 'definition.data.styles.font_size' | 'definition.data.styles.font_style' | 'definition.data.styles.font_weight' | 'definition.data.styles.inner_padding_bottom' | 'definition.data.styles.inner_padding_left' | 'definition.data.styles.inner_padding_right' | 'definition.data.styles.inner_padding_top' | 'definition.data.styles.letter_spacing' | 'definition.data.styles.line_height' | 'definition.data.styles.mobile_stretch_content' | 'definition.data.styles.text_align' | 'definition.data.styles.text_decoration' | 'definition.data.styles.text_table_layout' | 'created' | 'updated' | 'screenshot_status' | 'screenshot_url'>;
    };
    url: '/api/template-universal-content/{id}';
};

export type GetUniversalContentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetUniversalContentError = GetUniversalContentErrors[keyof GetUniversalContentErrors];

export type GetUniversalContentResponses = {
    /**
     * Success
     */
    200: GetUniversalContentResponse;
};

export type GetUniversalContentResponse2 = GetUniversalContentResponses[keyof GetUniversalContentResponses];

export type UpdateUniversalContentData = {
    /**
     * Update a universal content by ID
     */
    body: UniversalContentPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the template universal content
         */
        id: string;
    };
    query?: never;
    url: '/api/template-universal-content/{id}';
};

export type UpdateUniversalContentErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateUniversalContentError = UpdateUniversalContentErrors[keyof UpdateUniversalContentErrors];

export type UpdateUniversalContentResponses = {
    /**
     * Success
     */
    200: PatchUniversalContentResponse;
};

export type UpdateUniversalContentResponse = UpdateUniversalContentResponses[keyof UpdateUniversalContentResponses];

export type RenderTemplateData = {
    body: TemplateRenderQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/template-render';
};

export type RenderTemplateErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type RenderTemplateError = RenderTemplateErrors[keyof RenderTemplateErrors];

export type RenderTemplateResponses = {
    /**
     * Success
     */
    201: PostTemplateResponse;
};

export type RenderTemplateResponse = RenderTemplateResponses[keyof RenderTemplateResponses];

export type CloneTemplateData = {
    body: TemplateCloneQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/template-clone';
};

export type CloneTemplateErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CloneTemplateError = CloneTemplateErrors[keyof CloneTemplateErrors];

export type CloneTemplateResponses = {
    /**
     * Success
     */
    201: PostTemplateResponse;
};

export type CloneTemplateResponse = CloneTemplateResponses[keyof CloneTemplateResponses];

export type GetTrackingSettingsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tracking-setting]'?: Array<'auto_add_parameters' | 'utm_source' | 'utm_source.flow' | 'utm_source.flow.type' | 'utm_source.flow.value' | 'utm_source.campaign' | 'utm_source.campaign.type' | 'utm_source.campaign.value' | 'utm_medium' | 'utm_medium.flow' | 'utm_medium.flow.type' | 'utm_medium.flow.value' | 'utm_medium.campaign' | 'utm_medium.campaign.type' | 'utm_medium.campaign.value' | 'utm_campaign' | 'utm_campaign.flow' | 'utm_campaign.flow.type' | 'utm_campaign.flow.value' | 'utm_campaign.campaign' | 'utm_campaign.campaign.type' | 'utm_campaign.campaign.value' | 'utm_id' | 'utm_id.flow' | 'utm_id.flow.type' | 'utm_id.flow.value' | 'utm_id.campaign' | 'utm_id.campaign.type' | 'utm_id.campaign.value' | 'utm_term' | 'utm_term.flow' | 'utm_term.flow.type' | 'utm_term.flow.value' | 'utm_term.campaign' | 'utm_term.campaign.type' | 'utm_term.campaign.value' | 'custom_parameters'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 1. Min: 1. Max: 1.
         */
        'page[size]'?: number;
    };
    url: '/api/tracking-settings';
};

export type GetTrackingSettingsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTrackingSettingsError = GetTrackingSettingsErrors[keyof GetTrackingSettingsErrors];

export type GetTrackingSettingsResponses = {
    /**
     * Success
     */
    200: GetTrackingSettingResponseCollection;
};

export type GetTrackingSettingsResponse = GetTrackingSettingsResponses[keyof GetTrackingSettingsResponses];

export type GetTrackingSettingData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The id of the tracking setting (account ID).
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[tracking-setting]'?: Array<'auto_add_parameters' | 'utm_source' | 'utm_source.flow' | 'utm_source.flow.type' | 'utm_source.flow.value' | 'utm_source.campaign' | 'utm_source.campaign.type' | 'utm_source.campaign.value' | 'utm_medium' | 'utm_medium.flow' | 'utm_medium.flow.type' | 'utm_medium.flow.value' | 'utm_medium.campaign' | 'utm_medium.campaign.type' | 'utm_medium.campaign.value' | 'utm_campaign' | 'utm_campaign.flow' | 'utm_campaign.flow.type' | 'utm_campaign.flow.value' | 'utm_campaign.campaign' | 'utm_campaign.campaign.type' | 'utm_campaign.campaign.value' | 'utm_id' | 'utm_id.flow' | 'utm_id.flow.type' | 'utm_id.flow.value' | 'utm_id.campaign' | 'utm_id.campaign.type' | 'utm_id.campaign.value' | 'utm_term' | 'utm_term.flow' | 'utm_term.flow.type' | 'utm_term.flow.value' | 'utm_term.campaign' | 'utm_term.campaign.type' | 'utm_term.campaign.value' | 'custom_parameters'>;
    };
    url: '/api/tracking-settings/{id}';
};

export type GetTrackingSettingErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetTrackingSettingError = GetTrackingSettingErrors[keyof GetTrackingSettingErrors];

export type GetTrackingSettingResponses = {
    /**
     * Success
     */
    200: GetTrackingSettingResponse;
};

export type GetTrackingSettingResponse2 = GetTrackingSettingResponses[keyof GetTrackingSettingResponses];

export type UpdateTrackingSettingData = {
    /**
     * DTO for updating tracking settings
     */
    body: TrackingSettingPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The id of the tracking setting (account ID).
         */
        id: string;
    };
    query?: never;
    url: '/api/tracking-settings/{id}';
};

export type UpdateTrackingSettingErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateTrackingSettingError = UpdateTrackingSettingErrors[keyof UpdateTrackingSettingErrors];

export type UpdateTrackingSettingResponses = {
    /**
     * Success
     */
    200: PatchTrackingSettingResponse;
};

export type UpdateTrackingSettingResponse = UpdateTrackingSettingResponses[keyof UpdateTrackingSettingResponses];

export type GetWebFeedsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[web-feed]'?: Array<'name' | 'url' | 'request_method' | 'content_type' | 'created' | 'updated' | 'status'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`name`: `any`, `contains`, `equals`<br>`created`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 5. Min: 1. Max: 20.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'name' | '-name' | 'updated' | '-updated';
    };
    url: '/api/web-feeds';
};

export type GetWebFeedsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetWebFeedsError = GetWebFeedsErrors[keyof GetWebFeedsErrors];

export type GetWebFeedsResponses = {
    /**
     * Success
     */
    200: GetWebFeedResponseCollection;
};

export type GetWebFeedsResponse = GetWebFeedsResponses[keyof GetWebFeedsResponses];

export type CreateWebFeedData = {
    /**
     * Create a web feed
     */
    body: WebFeedCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/web-feeds';
};

export type CreateWebFeedErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateWebFeedError = CreateWebFeedErrors[keyof CreateWebFeedErrors];

export type CreateWebFeedResponses = {
    /**
     * Success
     */
    201: PostWebFeedResponse;
};

export type CreateWebFeedResponse = CreateWebFeedResponses[keyof CreateWebFeedResponses];

export type DeleteWebFeedData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the web feed
         */
        id: string;
    };
    query?: never;
    url: '/api/web-feeds/{id}';
};

export type DeleteWebFeedErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteWebFeedError = DeleteWebFeedErrors[keyof DeleteWebFeedErrors];

export type DeleteWebFeedResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteWebFeedResponse = DeleteWebFeedResponses[keyof DeleteWebFeedResponses];

export type GetWebFeedData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the web feed
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[web-feed]'?: Array<'name' | 'url' | 'request_method' | 'content_type' | 'created' | 'updated' | 'status'>;
    };
    url: '/api/web-feeds/{id}';
};

export type GetWebFeedErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetWebFeedError = GetWebFeedErrors[keyof GetWebFeedErrors];

export type GetWebFeedResponses = {
    /**
     * Success
     */
    200: GetWebFeedResponse;
};

export type GetWebFeedResponse2 = GetWebFeedResponses[keyof GetWebFeedResponses];

export type UpdateWebFeedData = {
    /**
     * Update a web feed by ID
     */
    body: WebFeedPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the web feed
         */
        id: string;
    };
    query?: never;
    url: '/api/web-feeds/{id}';
};

export type UpdateWebFeedErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateWebFeedError = UpdateWebFeedErrors[keyof UpdateWebFeedErrors];

export type UpdateWebFeedResponses = {
    /**
     * Success
     */
    200: PatchWebFeedResponse;
};

export type UpdateWebFeedResponse = UpdateWebFeedResponses[keyof UpdateWebFeedResponses];

export type GetWebhooksData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[webhook]'?: Array<'name' | 'description' | 'endpoint_url' | 'enabled' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'webhook-topics'>;
    };
    url: '/api/webhooks';
};

export type GetWebhooksErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetWebhooksError = GetWebhooksErrors[keyof GetWebhooksErrors];

export type GetWebhooksResponses = {
    /**
     * Success
     */
    200: GetWebhookResponseCollectionCompoundDocument;
};

export type GetWebhooksResponse = GetWebhooksResponses[keyof GetWebhooksResponses];

export type CreateWebhookData = {
    body: WebhookCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/webhooks';
};

export type CreateWebhookErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateWebhookError = CreateWebhookErrors[keyof CreateWebhookErrors];

export type CreateWebhookResponses = {
    /**
     * Success
     */
    201: PostWebhookResponse;
};

export type CreateWebhookResponse = CreateWebhookResponses[keyof CreateWebhookResponses];

export type DeleteWebhookData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the webhook.
         */
        id: string;
    };
    query?: never;
    url: '/api/webhooks/{id}';
};

export type DeleteWebhookErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type DeleteWebhookError = DeleteWebhookErrors[keyof DeleteWebhookErrors];

export type DeleteWebhookResponses = {
    /**
     * Success
     */
    204: void;
};

export type DeleteWebhookResponse = DeleteWebhookResponses[keyof DeleteWebhookResponses];

export type GetWebhookData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the webhook.
         */
        id: string;
    };
    query?: {
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[webhook]'?: Array<'name' | 'description' | 'endpoint_url' | 'enabled' | 'created_at' | 'updated_at'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#relationships
         */
        include?: Array<'webhook-topics'>;
    };
    url: '/api/webhooks/{id}';
};

export type GetWebhookErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetWebhookError = GetWebhookErrors[keyof GetWebhookErrors];

export type GetWebhookResponses = {
    /**
     * Success
     */
    200: GetWebhookResponseCompoundDocument;
};

export type GetWebhookResponse = GetWebhookResponses[keyof GetWebhookResponses];

export type UpdateWebhookData = {
    body: WebhookPartialUpdateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the webhook.
         */
        id: string;
    };
    query?: never;
    url: '/api/webhooks/{id}';
};

export type UpdateWebhookErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UpdateWebhookError = UpdateWebhookErrors[keyof UpdateWebhookErrors];

export type UpdateWebhookResponses = {
    /**
     * Success
     */
    200: PatchWebhookResponse;
};

export type UpdateWebhookResponse = UpdateWebhookResponses[keyof UpdateWebhookResponses];

export type GetWebhookTopicsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query?: never;
    url: '/api/webhook-topics';
};

export type GetWebhookTopicsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetWebhookTopicsError = GetWebhookTopicsErrors[keyof GetWebhookTopicsErrors];

export type GetWebhookTopicsResponses = {
    /**
     * Success
     */
    200: GetWebhookTopicResponseCollection;
};

export type GetWebhookTopicsResponse = GetWebhookTopicsResponses[keyof GetWebhookTopicsResponses];

export type GetWebhookTopicData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path: {
        /**
         * The ID of the webhook topic.
         */
        id: string;
    };
    query?: never;
    url: '/api/webhook-topics/{id}';
};

export type GetWebhookTopicErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetWebhookTopicError = GetWebhookTopicErrors[keyof GetWebhookTopicErrors];

export type GetWebhookTopicResponses = {
    /**
     * Success
     */
    200: GetWebhookTopicResponse;
};

export type GetWebhookTopicResponse2 = GetWebhookTopicResponses[keyof GetWebhookTopicResponses];

export type GetClientReviewValuesReportsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[review-values-report]'?: Array<'results'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`product_external_ids`: `any`, `equals`
         */
        filter?: string;
        /**
         * group by value for this report
         */
        group_by: 'company_id' | 'product_id';
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * list of statistics to calculate for this report
         */
        statistics: string;
        /**
         * timeframe window for value report
         */
        timeframe: 'all_time' | 'last_30_days' | 'last_365_days' | 'last_90_days';
    };
    url: '/client/review-values-reports';
};

export type GetClientReviewValuesReportsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetClientReviewValuesReportsError = GetClientReviewValuesReportsErrors[keyof GetClientReviewValuesReportsErrors];

export type GetClientReviewValuesReportsResponses = {
    /**
     * Success
     */
    200: GetReviewValuesReportResponseCollection;
};

export type GetClientReviewValuesReportsResponse = GetClientReviewValuesReportsResponses[keyof GetClientReviewValuesReportsResponses];

export type GetClientReviewsData = {
    body?: never;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sparse-fieldsets
         */
        'fields[review]'?: Array<'status' | 'status.value' | 'status.rejection_reason' | 'status.rejection_reason.reason' | 'status.rejection_reason.status_explanation' | 'verified' | 'review_type' | 'created' | 'updated' | 'images' | 'product' | 'product.url' | 'product.name' | 'product.image_url' | 'product.external_id' | 'rating' | 'author' | 'content' | 'title' | 'smart_quote' | 'public_reply' | 'public_reply.content' | 'public_reply.author' | 'public_reply.updated'>;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`<br>`review_type`: `equals`<br>`rating`: `any`, `equals`, `greater-or-equal`, `less-or-equal`<br>`id`: `any`, `equals`<br>`content`: `contains`<br>`smart_quote`: `has`<br>`public_reply`: `has`<br>`verified`: `equals`<br>`incentivized`: `equals`<br>`edited`: `equals`<br>`media`: `has`<br>`created`: `greater-or-equal`, `less-or-equal`<br>`updated`: `greater-or-equal`, `less-or-equal`
         */
        filter?: string;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#pagination
         */
        'page[cursor]'?: string;
        /**
         * Default: 20. Min: 1. Max: 100.
         */
        'page[size]'?: number;
        /**
         * For more information please visit https://developers.klaviyo.com/en/v2025-04-15/reference/api-overview#sorting
         */
        sort?: 'created' | '-created' | 'rating' | '-rating' | 'updated' | '-updated';
    };
    url: '/client/reviews';
};

export type GetClientReviewsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type GetClientReviewsError = GetClientReviewsErrors[keyof GetClientReviewsErrors];

export type GetClientReviewsResponses = {
    /**
     * Success
     */
    200: GetClientReviewResponseDtoCollection;
};

export type GetClientReviewsResponse = GetClientReviewsResponses[keyof GetClientReviewsResponses];

export type CreateClientReviewData = {
    body: ReviewCreateDto;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
    };
    url: '/client/reviews';
};

export type CreateClientReviewErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateClientReviewError = CreateClientReviewErrors[keyof CreateClientReviewErrors];

export type CreateClientReviewResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type CreateClientSubscriptionData = {
    body: OnsiteSubscriptionCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
    };
    url: '/client/subscriptions';
};

export type CreateClientSubscriptionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateClientSubscriptionError = CreateClientSubscriptionErrors[keyof CreateClientSubscriptionErrors];

export type CreateClientSubscriptionResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type CreateClientPushTokenData = {
    body: PushTokenCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
    };
    url: '/client/push-tokens';
};

export type CreateClientPushTokenErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateClientPushTokenError = CreateClientPushTokenErrors[keyof CreateClientPushTokenErrors];

export type CreateClientPushTokenResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type UnregisterClientPushTokenData = {
    body: PushTokenUnregisterQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
    };
    url: '/client/push-token-unregister';
};

export type UnregisterClientPushTokenErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type UnregisterClientPushTokenError = UnregisterClientPushTokenErrors[keyof UnregisterClientPushTokenErrors];

export type UnregisterClientPushTokenResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type CreateClientEventData = {
    body: EventCreateQueryV2;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
    };
    url: '/client/events';
};

export type CreateClientEventErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateClientEventError = CreateClientEventErrors[keyof CreateClientEventErrors];

export type CreateClientEventResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type CreateClientProfileData = {
    body: OnsiteProfileCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
    };
    url: '/client/profiles';
};

export type CreateClientProfileErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateClientProfileError = CreateClientProfileErrors[keyof CreateClientProfileErrors];

export type CreateClientProfileResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type BulkCreateClientEventsData = {
    body: EventsBulkCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
    };
    url: '/client/event-bulk-create';
};

export type BulkCreateClientEventsErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type BulkCreateClientEventsError = BulkCreateClientEventsErrors[keyof BulkCreateClientEventsErrors];

export type BulkCreateClientEventsResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type CreateClientBackInStockSubscriptionData = {
    body: ClientBisSubscriptionCreateQuery;
    headers: {
        /**
         * API endpoint revision (format: YYYY-MM-DD[.suffix])
         */
        revision: string;
    };
    path?: never;
    query: {
        /**
         * Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
         */
        company_id: string;
    };
    url: '/client/back-in-stock-subscriptions';
};

export type CreateClientBackInStockSubscriptionErrors = {
    /**
     * Client Error
     */
    '4XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
    /**
     * Server Error
     */
    '5XX': {
        errors: Array<{
            id: string;
            code: string;
            title: string;
            detail: string;
            source?: {
                pointer?: string;
                parameter?: string;
            };
        }>;
    };
};

export type CreateClientBackInStockSubscriptionError = CreateClientBackInStockSubscriptionErrors[keyof CreateClientBackInStockSubscriptionErrors];

export type CreateClientBackInStockSubscriptionResponses = {
    /**
     * Success
     */
    202: unknown;
};

export type ClientOptions = {
    baseUrl: 'https://a.klaviyo.com' | (string & {});
};