"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""

from __future__ import annotations
import dataclasses
from ..shared import payment_method_category as shared_payment_method_category
from dataclasses_json import Undefined, dataclass_json
from klarna import utils
from typing import Optional


@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class MerchantSession:
    r"""successful operation"""
    
    client_token: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('client_token') }})
    r"""Client token to be passed to the JS client while initializing the JS SDK in the next step."""  
    session_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('session_id') }})
    r"""ID of the created session. Please use this ID to share with Klarna for identifying any issues during integration."""  
    payment_method_categories: Optional[list[shared_payment_method_category.PaymentMethodCategory]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('payment_method_categories'), 'exclude': lambda f: f is None }})
    r"""Available payment method categories for this particular session"""  
    