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

from __future__ import annotations
import dataclasses
from calendly import utils
from dataclasses_json import Undefined, dataclass_json
from enum import Enum
from typing import Optional


@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class GotoMeetingConferenceData:
    r"""The conference metadata supplied by GoToMeeting"""
    
    conference_call_info: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('conferenceCallInfo'), 'exclude': lambda f: f is None }})  
    unique_meeting_id: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('uniqueMeetingId'), 'exclude': lambda f: f is None }})
    r"""Canonical reference (unique identifier) for the GoToMeeting conference"""  
    
class GotoMeetingConferenceStatusEnum(str, Enum):
    r"""Indicates the current status of the GoToMeeting conference"""
    INITIATED = 'initiated'
    PROCESSING = 'processing'
    PUSHED = 'pushed'
    FAILED = 'failed'

class GotoMeetingConferenceTypeEnum(str, Enum):
    r"""The event location is a GoToMeeting conference"""
    GOTOMEETING = 'gotomeeting'


@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class GotoMeetingConference:
    r"""Details about an Event that will take place using a GotoMeeting conference"""
    
    data: GotoMeetingConferenceData = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('data') }})
    r"""The conference metadata supplied by GoToMeeting"""  
    join_url: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('join_url') }})
    r"""GoToMeeting conference meeting url"""  
    status: GotoMeetingConferenceStatusEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status') }})
    r"""Indicates the current status of the GoToMeeting conference"""  
    type: GotoMeetingConferenceTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }})
    r"""The event location is a GoToMeeting conference"""  
    