/**
 * Freshservice Node - Version 1
 * Discriminator: resource=agent, operation=create
 */


interface Credentials {
  freshserviceApi: CredentialReference;
}

/** Create an agent */
export type FreshserviceV1AgentCreateParams = {
  resource: 'agent';
  operation: 'create';
/**
 * Email
 */
    email?: string | Expression<string> | PlaceholderValue;
/**
 * First Name
 */
    firstName?: string | Expression<string> | PlaceholderValue;
/**
 * Role to assign to the agent
 * @default {}
 */
    roles?: {
        /** Role Properties
     */
    roleProperties?: Array<{
      /** Name of the role to assign to the agent. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
       */
      role?: string | Expression<string>;
      /** Scope in which the agent may use the permissions granted by the role
       * @default specified_groups
       */
      assignment_scope?: 'entire_helpdesk' | 'member_groups' | 'specified_groups' | 'assigned_items' | Expression<string>;
      /** Groups in which the permissions granted by the role apply. Required only when Scope is Specified Groups - ignored otherwise. Choose from the list or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
       * @default []
       */
      groups?: string[];
    }>;
  };
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** Address
     */
    address?: string | Expression<string> | PlaceholderValue;
    /** Background Information
     */
    background_information?: string | Expression<string> | PlaceholderValue;
    /** IDs of the departments to which the agent belongs. Choose from the list or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    department_ids?: string[];
    /** Job Title
     */
    job_title?: string | Expression<string> | PlaceholderValue;
    /** Language
     */
    language?: 'en' | 'ar' | 'ca' | 'cs' | 'cy-GB' | 'da' | 'de' | 'es' | 'es-LA' | 'et' | 'fi' | 'fr' | 'he' | 'hu' | 'id' | 'it' | 'ja-JP' | 'ko' | 'LV' | 'nb-NO' | 'nl' | 'pl' | 'pt' | 'pt-BR' | 'pt-PT' | 'ru-RU' | 'sk' | 'sk-SK' | 'sl' | 'sv-SE' | 'th' | 'tr' | 'UK' | 'vi' | 'zh-CN' | 'zh-TW' | Expression<string>;
    /** Last Name
     */
    last_name?: string | Expression<string> | PlaceholderValue;
    /** Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
     */
    location_id?: string | Expression<string>;
    /** Comma-separated IDs of the groups that the agent is a member of. Choose from the list or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    member_of?: string[];
    /** Mobile Phone
     */
    mobile_phone_number?: string | Expression<string> | PlaceholderValue;
    /** Comma-separated IDs of the groups that the agent is an observer of. Choose from the list or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    observer_of?: string[];
    /** ID of the level of the agent in the Arcade
     * @default 1
     */
    scoreboard_level_id?: 1 | 2 | 3 | 4 | 5 | 6 | Expression<number>;
    /** Time Format
     * @default 12h
     */
    time_format?: '12h' | '24h' | Expression<string>;
    /** Work Phone
     */
    work_phone_number?: string | Expression<string> | PlaceholderValue;
  };
};

export type FreshserviceV1AgentCreateNode = {
  type: 'n8n-nodes-base.freshservice';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<FreshserviceV1AgentCreateParams>;
};