# coding: utf-8

"""
    Voucherify API

    Voucherify promotion engine REST API. Please see https://docs.voucherify.io/docs for more details.

    The version of the OpenAPI document: v2018-08-01
    Contact: support@voucherify.io
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self


class ParameterCustomerEvent(str, Enum):
    """
    ParameterCustomerEvent
    """

    """
    allowed enum values
    """
    CUSTOMER_DOT_CONFIRMED = 'customer.confirmed'
    CUSTOMER_DOT_CREATED = 'customer.created'
    CUSTOMER_DOT_UPDATED = 'customer.updated'
    CUSTOMER_DOT_DELETED = 'customer.deleted'
    CUSTOMER_DOT_REFERRED = 'customer.referred'
    CUSTOMER_DOT_CUSTOM_EVENT = 'customer.custom_event'
    CUSTOMER_DOT_SEGMENT_DOT_ENTERED = 'customer.segment.entered'
    CUSTOMER_DOT_SEGMENT_DOT_LEFT = 'customer.segment.left'
    CUSTOMER_DOT_SMS_DOT_SENT = 'customer.sms.sent'
    CUSTOMER_DOT_SMS_DOT_RECOVERED = 'customer.sms.recovered'
    CUSTOMER_DOT_SMS_DOT_FAILED = 'customer.sms.failed'
    CUSTOMER_DOT_EMAIL_DOT_SENT = 'customer.email.sent'
    CUSTOMER_DOT_EMAIL_DOT_RECOVERED = 'customer.email.recovered'
    CUSTOMER_DOT_EMAIL_DOT_FAILED = 'customer.email.failed'
    CUSTOMER_DOT_ACTIVECAMPAIGN_DOT_SENT = 'customer.activecampaign.sent'
    CUSTOMER_DOT_ACTIVECAMPAIGN_DOT_RECOVERED = 'customer.activecampaign.recovered'
    CUSTOMER_DOT_ACTIVECAMPAIGN_DOT_FAILED = 'customer.activecampaign.failed'
    CUSTOMER_DOT_BRAZE_DOT_SENT = 'customer.braze.sent'
    CUSTOMER_DOT_BRAZE_DOT_RECOVERED = 'customer.braze.recovered'
    CUSTOMER_DOT_BRAZE_DOT_FAILED = 'customer.braze.failed'
    CUSTOMER_DOT_MAILCHIMP_DOT_SENT = 'customer.mailchimp.sent'
    CUSTOMER_DOT_MAILCHIMP_DOT_RECOVERED = 'customer.mailchimp.recovered'
    CUSTOMER_DOT_MAILCHIMP_DOT_FAILED = 'customer.mailchimp.failed'
    CUSTOMER_DOT_INTERCOM_DOT_SENT = 'customer.intercom.sent'
    CUSTOMER_DOT_INTERCOM_DOT_RECOVERED = 'customer.intercom.recovered'
    CUSTOMER_DOT_INTERCOM_DOT_FAILED = 'customer.intercom.failed'
    CUSTOMER_DOT_SHOPIFY_DOT_SENT = 'customer.shopify.sent'
    CUSTOMER_DOT_SHOPIFY_DOT_RECOVERED = 'customer.shopify.recovered'
    CUSTOMER_DOT_SHOPIFY_DOT_FAILED = 'customer.shopify.failed'
    CUSTOMER_DOT_KLAVIYO_DOT_SENT = 'customer.klaviyo.sent'
    CUSTOMER_DOT_KLAVIYO_DOT_RECOVERED = 'customer.klaviyo.recovered'
    CUSTOMER_DOT_KLAVIYO_DOT_FAILED = 'customer.klaviyo.failed'
    CUSTOMER_DOT_BATCH_DOT_SENT = 'customer.batch.sent'
    CUSTOMER_DOT_BATCH_DOT_RECOVERED = 'customer.batch.recovered'
    CUSTOMER_DOT_BATCH_DOT_FAILED = 'customer.batch.failed'
    CUSTOMER_DOT_REWARDED = 'customer.rewarded'
    CUSTOMER_DOT_REWARDED_DOT_LOYALTY_POINTS = 'customer.rewarded.loyalty_points'
    CUSTOMER_DOT_VOUCHER_DOT_GIFT_DOT_BALANCE_ADDED = 'customer.voucher.gift.balance_added'
    CUSTOMER_DOT_VOUCHER_DOT_LOYALTY_CARD_DOT_POINTS_ADDED = 'customer.voucher.loyalty_card.points_added'
    CUSTOMER_DOT_VOUCHER_DOT_LOYALTY_CARD_DOT_POINTS_TRANSFERRED = 'customer.voucher.loyalty_card.points_transferred'
    CUSTOMER_DOT_VOUCHER_DOT_LOYALTY_CARD_DOT_POINTS_EXPIRED = 'customer.voucher.loyalty_card.points_expired'
    CUSTOMER_DOT_VOUCHER_DOT_DELETED = 'customer.voucher.deleted'
    CUSTOMER_DOT_PUBLICATION_DOT_SUCCEEDED = 'customer.publication.succeeded'
    CUSTOMER_DOT_PUBLICATION_DOT_FAILED = 'customer.publication.failed'
    CUSTOMER_DOT_VALIDATION_DOT_SUCCEEDED = 'customer.validation.succeeded'
    CUSTOMER_DOT_VALIDATION_DOT_FAILED = 'customer.validation.failed'
    CUSTOMER_DOT_REDEMPTION_DOT_FAILED = 'customer.redemption.failed'
    CUSTOMER_DOT_REDEMPTION_DOT_SUCCEEDED = 'customer.redemption.succeeded'
    CUSTOMER_DOT_REDEMPTION_DOT_ROLLBACK_DOT_FAILED = 'customer.redemption.rollback.failed'
    CUSTOMER_DOT_REDEMPTION_DOT_ROLLBACK_DOT_SUCCEEDED = 'customer.redemption.rollback.succeeded'
    CUSTOMER_DOT_ORDER_DOT_CANCELED = 'customer.order.canceled'
    CUSTOMER_DOT_ORDER_DOT_CREATED = 'customer.order.created'
    CUSTOMER_DOT_ORDER_DOT_FULFILLED = 'customer.order.fulfilled'
    CUSTOMER_DOT_ORDER_DOT_PAID = 'customer.order.paid'
    CUSTOMER_DOT_ORDER_DOT_PROCESSING = 'customer.order.processing'
    CUSTOMER_DOT_ORDER_DOT_UPDATED = 'customer.order.updated'
    CUSTOMER_DOT_REWARD_REDEMPTIONS_DOT_CREATED = 'customer.reward_redemptions.created'
    CUSTOMER_DOT_REWARD_REDEMPTIONS_DOT_PENDING = 'customer.reward_redemptions.pending'
    CUSTOMER_DOT_REWARD_REDEMPTIONS_DOT_COMPLETED = 'customer.reward_redemptions.completed'
    CUSTOMER_DOT_REWARD_REDEMPTIONS_DOT_ROLLEDBACK = 'customer.reward_redemptions.rolledback'
    CUSTOMER_DOT_LOYALTY_DOT_UPDATED = 'customer.loyalty.updated'
    CUSTOMER_DOT_LOYALTY_DOT_TIER_DOT_UPGRADED = 'customer.loyalty.tier.upgraded'
    CUSTOMER_DOT_LOYALTY_DOT_TIER_DOT_DOWNGRADED = 'customer.loyalty.tier.downgraded'
    CUSTOMER_DOT_LOYALTY_DOT_TIER_DOT_PROLONGED = 'customer.loyalty.tier.prolonged'
    CUSTOMER_DOT_LOYALTY_DOT_TIER_DOT_EXPIRATION_DOT_CHANGED = 'customer.loyalty.tier.expiration.changed'
    CUSTOMER_DOT_LOYALTY_DOT_TIER_DOT_JOINED = 'customer.loyalty.tier.joined'
    CUSTOMER_DOT_LOYALTY_DOT_TIER_DOT_LEFT = 'customer.loyalty.tier.left'

    @classmethod
    def from_json(cls, json_str: str) -> Self:
        """Create an instance of ParameterCustomerEvent from a JSON string"""
        return cls(json.loads(json_str))


