/**
 * Freshservice Node - Version 1
 * Discriminator: resource=ticket, operation=get
 */


interface Credentials {
  freshserviceApi: CredentialReference;
}

/** Retrieve an agent */
export type FreshserviceV1TicketGetParams = {
  resource: 'ticket';
  operation: 'get';
/**
 * ID of the ticket to retrieve
 */
    ticketId?: string | Expression<string> | PlaceholderValue;
};

export type FreshserviceV1TicketGetOutput = {
  attachments?: Array<{
    attachment_url?: string;
    content_type?: string;
    created_at?: string;
    id?: number;
    name?: string;
    size?: number;
    updated_at?: string;
  }>;
  cc_emails?: Array<string>;
  created_at?: string;
  created_within_business_hours?: boolean;
  custom_fields?: {
    business_impact?: null;
    impacted_locations?: null;
    major_incident_type?: null;
    no_of_customers_impacted?: null;
    ticket_has_been_triaged?: null;
  };
  deleted?: boolean;
  description?: string;
  description_text?: string;
  due_by?: string;
  fr_due_by?: string;
  fr_escalated?: boolean;
  id?: number;
  impact?: number;
  is_escalated?: boolean;
  priority?: number;
  reply_cc_emails?: Array<string>;
  requested_for_id?: number;
  requester_id?: number;
  resolution_notes?: null;
  resolution_notes_html?: null;
  sla_policy_id?: number;
  source?: number;
  spam?: boolean;
  status?: number;
  subject?: string;
  tasks_dependency_type?: number;
  type?: string;
  updated_at?: string;
  urgency?: number;
  workspace_id?: number;
};

export type FreshserviceV1TicketGetNode = {
  type: 'n8n-nodes-base.freshservice';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<FreshserviceV1TicketGetParams>;
  output?: Items<FreshserviceV1TicketGetOutput>;
};