/**
 * Xero Node - Version 1
 * Discriminator: resource=contact, operation=get
 */


interface Credentials {
  xeroOAuth2Api: CredentialReference;
}

/** Get a contact */
export type XeroV1ContactGetParams = {
  resource: 'contact';
  operation: 'get';
/**
 * Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
 */
    organizationId?: string | Expression<string>;
/**
 * Contact ID
 */
    contactId?: string | Expression<string> | PlaceholderValue;
};

export type XeroV1ContactGetOutput = {
  Addresses?: Array<{
    AddressLine1?: string;
    AddressType?: string;
    City?: string;
    Country?: string;
    PostalCode?: string;
    Region?: string;
  }>;
  BankAccountDetails?: string;
  ContactGroups?: Array<{
    ContactGroupID?: string;
    HasValidationErrors?: boolean;
    Name?: string;
    Status?: string;
  }>;
  ContactID?: string;
  ContactPersons?: Array<{
    EmailAddress?: string;
    FirstName?: string;
    IncludeInEmails?: boolean;
    LastName?: string;
  }>;
  ContactStatus?: string;
  EmailAddress?: string;
  HasAttachments?: boolean;
  HasValidationErrors?: boolean;
  IsCustomer?: boolean;
  IsSupplier?: boolean;
  Name?: string;
  Phones?: Array<{
    PhoneAreaCode?: string;
    PhoneCountryCode?: string;
    PhoneNumber?: string;
    PhoneType?: string;
  }>;
  UpdatedDateUTC?: string;
};

export type XeroV1ContactGetNode = {
  type: 'n8n-nodes-base.xero';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<XeroV1ContactGetParams>;
  output?: Items<XeroV1ContactGetOutput>;
};