/**
 * Mautic Node - Version 1
 * Discriminator: resource=company, operation=create
 */


interface Credentials {
  mauticApi: CredentialReference;
  mauticOAuth2Api: CredentialReference;
}

/** Create or modify a company */
export type MauticV1CompanyCreateParams = {
  resource: 'company';
  operation: 'create';
  authentication?: 'credentials' | 'oAuth2' | Expression<string>;
/**
 * The name of the company to create
 */
    name?: string | Expression<string> | PlaceholderValue;
/**
 * Whether to return a simplified version of the response instead of the raw data
 * @default true
 */
    simple?: boolean | Expression<boolean>;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** Address
     * @default {}
     */
    addressUi?: {
        /** Address
     */
    addressValues?: {
      /** Address Line 1
       */
      address1?: string | Expression<string> | PlaceholderValue;
      /** Address Line 2
       */
      address2?: string | Expression<string> | PlaceholderValue;
      /** City
       */
      city?: string | Expression<string> | PlaceholderValue;
      /** State
       */
      state?: string | Expression<string> | PlaceholderValue;
      /** Country
       */
      country?: string | Expression<string> | PlaceholderValue;
      /** Zip Code
       */
      zipCode?: string | Expression<string> | PlaceholderValue;
    };
  };
    /** Annual Revenue
     * @default 0
     */
    annualRevenue?: number | Expression<number>;
    /** Company Email
     */
    companyEmail?: string | Expression<string> | PlaceholderValue;
    /** Adds a custom fields to set also values which have not been predefined
     * @default {}
     */
    customFieldsUi?: {
        /** Field
     */
    customFieldValues?: Array<{
      /** ID of the field to set. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
       */
      fieldId?: string | Expression<string>;
      /** Value of the field to set
       */
      fieldValue?: string | Expression<string> | PlaceholderValue;
    }>;
  };
    /** Description
     */
    description?: string | Expression<string> | PlaceholderValue;
    /** Fax
     */
    fax?: 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;
     */
    industry?: string | Expression<string>;
    /** Is Published
     * @default false
     */
    isPublished?: boolean | Expression<boolean>;
    /** Number of Employees
     * @default 0
     */
    numberOfEmpoyees?: number | Expression<number>;
    /** Whether empty values are set to fields. Otherwise empty values are skipped.
     * @default false
     */
    overwriteWithBlank?: boolean | Expression<boolean>;
    /** Phone
     */
    phone?: string | Expression<string> | PlaceholderValue;
    /** Website
     */
    website?: string | Expression<string> | PlaceholderValue;
  };
};

export type MauticV1CompanyCreateNode = {
  type: 'n8n-nodes-base.mautic';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<MauticV1CompanyCreateParams>;
};