/**
 * Apideck
 * The Apideck OpenAPI Spec: SDK Optimized
 *
 * The version of the OpenAPI document: 10.13.0
 * Contact: support@apideck.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { ActivityAttendee } from './ActivityAttendee';
import { Address } from './Address';
import { CustomField } from './CustomField';
import { PassThroughBody } from './PassThroughBody';
/**
 *
 * @export
 * @interface Activity
 */
export interface Activity {
    /**
     * The type of the activity
     * @type {string}
     * @memberof Activity
     */
    type: ActivityType;
    /**
     * The unique identifier of the activity
     * @type {string}
     * @memberof Activity
     */
    readonly id?: string;
    /**
     * The third-party API ID of original entity
     * @type {string}
     * @memberof Activity
     */
    readonly downstream_id?: string | null;
    /**
     * The date and time of the activity
     * @type {string}
     * @memberof Activity
     */
    activity_datetime?: string | null;
    /**
     * The duration of the activity in seconds
     * @type {number}
     * @memberof Activity
     */
    duration_seconds?: number | null;
    /**
     * The user related to the activity
     * @type {string}
     * @memberof Activity
     */
    user_id?: string | null;
    /**
     * The account related to the activity
     * @type {string}
     * @memberof Activity
     */
    account_id?: string | null;
    /**
     * The contact related to the activity
     * @type {string}
     * @memberof Activity
     */
    contact_id?: string | null;
    /**
     * The company related to the activity
     * @type {string}
     * @memberof Activity
     */
    company_id?: string | null;
    /**
     * The opportunity related to the activity
     * @type {string}
     * @memberof Activity
     */
    opportunity_id?: string | null;
    /**
     * The lead related to the activity
     * @type {string}
     * @memberof Activity
     */
    lead_id?: string | null;
    /**
     * The owner of the activity
     * @type {string}
     * @memberof Activity
     */
    owner_id?: string | null;
    /**
     * The campaign related to the activity
     * @type {string}
     * @memberof Activity
     */
    campaign_id?: string | null;
    /**
     * The case related to the activity
     * @type {string}
     * @memberof Activity
     */
    case_id?: string | null;
    /**
     * The asset related to the activity
     * @type {string}
     * @memberof Activity
     */
    asset_id?: string | null;
    /**
     * The contract related to the activity
     * @type {string}
     * @memberof Activity
     */
    contract_id?: string | null;
    /**
     * The product related to the activity
     * @type {string}
     * @memberof Activity
     */
    product_id?: string | null;
    /**
     * The solution related to the activity
     * @type {string}
     * @memberof Activity
     */
    solution_id?: string | null;
    /**
     * The custom object related to the activity
     * @type {string}
     * @memberof Activity
     */
    custom_object_id?: string | null;
    /**
     * The title of the activity
     * @type {string}
     * @memberof Activity
     */
    title?: string | null;
    /**
     * A description of the activity
     * @type {string}
     * @memberof Activity
     */
    description?: string | null;
    /**
     * An internal note about the activity
     * @type {string}
     * @memberof Activity
     */
    note?: string | null;
    /**
     * The location of the activity
     * @type {string}
     * @memberof Activity
     */
    location?: string | null;
    /**
     *
     * @type {Address}
     * @memberof Activity
     */
    location_address?: Address;
    /**
     * Whether the Activity is an all day event or not
     * @type {boolean}
     * @memberof Activity
     */
    all_day_event?: boolean | null;
    /**
     * Whether the Activity is private or not
     * @type {boolean}
     * @memberof Activity
     */
    _private?: boolean | null;
    /**
     * Whether the Activity is a group event or not
     * @type {boolean}
     * @memberof Activity
     */
    group_event?: boolean | null;
    /**
     * The sub type of the group event
     * @type {string}
     * @memberof Activity
     */
    event_sub_type?: string | null;
    /**
     * The type of the group event
     * @type {string}
     * @memberof Activity
     */
    group_event_type?: string | null;
    /**
     * Whether the activity is a child of another activity or not
     * @type {boolean}
     * @memberof Activity
     */
    child?: boolean | null;
    /**
     * Whether the activity is archived or not
     * @type {boolean}
     * @memberof Activity
     */
    archived?: boolean | null;
    /**
     * Whether the activity is deleted or not
     * @type {boolean}
     * @memberof Activity
     */
    deleted?: boolean | null;
    /**
     *
     * @type {string}
     * @memberof Activity
     */
    show_as?: ActivityShowAs;
    /**
     * Whether the Activity is done or not
     * @type {boolean}
     * @memberof Activity
     */
    done?: boolean | null;
    /**
     * The start date and time of the activity
     * @type {string}
     * @memberof Activity
     */
    start_datetime?: string | null;
    /**
     * The end date and time of the activity
     * @type {string}
     * @memberof Activity
     */
    end_datetime?: string | null;
    /**
     * The duration of the activity in minutes
     * @type {number}
     * @memberof Activity
     */
    readonly duration_minutes?: number | null;
    /**
     * The date of the activity
     * @type {string}
     * @memberof Activity
     */
    activity_date?: string | null;
    /**
     * The end date of the activity
     * @type {string}
     * @memberof Activity
     */
    end_date?: string | null;
    /**
     * Whether the activity is recurrent or not
     * @type {boolean}
     * @memberof Activity
     */
    recurrent?: boolean;
    /**
     * The date and time of the reminder
     * @type {string}
     * @memberof Activity
     */
    reminder_datetime?: string | null;
    /**
     * Whether the reminder is set or not
     * @type {boolean}
     * @memberof Activity
     */
    reminder_set?: boolean | null;
    /**
     * The URL of the video conference
     * @type {string}
     * @memberof Activity
     */
    video_conference_url?: string | null;
    /**
     * The ID of the video conference
     * @type {string}
     * @memberof Activity
     */
    video_conference_id?: string | null;
    /**
     * Custom fields of the activity
     * @type {Array<CustomField>}
     * @memberof Activity
     */
    custom_fields?: Array<CustomField>;
    /**
     *
     * @type {Array<ActivityAttendee>}
     * @memberof Activity
     */
    attendees?: Array<ActivityAttendee>;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     * @type {object}
     * @memberof Activity
     */
    readonly custom_mappings?: object | null;
    /**
     * The user who last updated the activity
     * @type {string}
     * @memberof Activity
     */
    readonly updated_by?: string | null;
    /**
     * The user who created the activity
     * @type {string}
     * @memberof Activity
     */
    readonly created_by?: string | null;
    /**
     * The date and time when the activity was last updated
     * @type {string}
     * @memberof Activity
     */
    readonly updated_at?: string | null;
    /**
     * The date and time when the activity was created
     * @type {string}
     * @memberof Activity
     */
    readonly created_at?: string | null;
    /**
     *
     * @type {PassThroughBody}
     * @memberof Activity
     */
    pass_through?: PassThroughBody;
}
/**
 * @export
 * @enum {string}
 */
export declare enum ActivityType {
    call = "call",
    meeting = "meeting",
    email = "email",
    note = "note",
    task = "task",
    deadline = "deadline",
    send_letter = "send-letter",
    send_quote = "send-quote",
    other = "other"
}
/**
 * @export
 * @enum {string}
 */
export declare enum ActivityShowAs {
    free = "free",
    busy = "busy"
}
export declare function ActivityFromJSON(json: any): Activity;
export declare function ActivityFromJSONTyped(json: any, ignoreDiscriminator: boolean): Activity;
export declare function ActivityToJSON(value?: Activity | null): any;
