/**
 * Salesforce Node - Version 1
 * Discriminator: resource=flow, operation=invoke
 */


interface Credentials {
  salesforceOAuth2Api: CredentialReference;
  salesforceJwtApi: CredentialReference;
}

/** Represents an autolaunched flow */
export type SalesforceV1FlowInvokeParams = {
  resource: 'flow';
  operation: 'invoke';
/**
 * OAuth Authorization Flow
 * @default oAuth2
 */
    authentication?: 'oAuth2' | 'jwt' | Expression<string>;
/**
 * Required. API name of the flow.
 */
    apiName?: string | Expression<string> | PlaceholderValue;
/**
 * Whether the input variables should be set via the value-key pair UI or JSON/RAW
 * @default false
 */
    jsonParameters?: boolean | Expression<boolean>;
/**
 * Input variables as JSON object
 * @displayOptions.show { jsonParameters: [true] }
 */
    variablesJson?: IDataObject | string | Expression<string>;
/**
 * The input variable to send
 * @displayOptions.show { jsonParameters: [false] }
 * @default {}
 */
    variablesUi?: {
        /** Variable
     */
    variablesValues?: Array<{
      /** Name of the input variable
       */
      name?: string | Expression<string> | PlaceholderValue;
      /** Value of the input variable
       */
      value?: string | Expression<string> | PlaceholderValue;
    }>;
  };
};

export type SalesforceV1FlowInvokeOutput = {
  actionName?: string;
  errors?: null;
  invocationId?: null;
  isSuccess?: boolean;
  outcome?: null;
  outputValues?: {
    Flow__InterviewGuid?: string;
    Flow__InterviewStatus?: string;
    projects?: Array<{
      attributes?: {
        type?: string;
        url?: string;
      };
      CreatedById?: string;
      CreatedDate?: string;
      Id?: string;
      IsDeleted?: boolean;
      LastActivityDate?: null;
      LastModifiedById?: string;
      LastModifiedDate?: string;
      LastReferencedDate?: string;
      LastViewedDate?: string;
      Name?: string;
      OwnerId?: string;
      Projectcloseddate__c?: string;
      Projectcreateddate__c?: null;
      Projectdescription__c?: null;
      Projectduedate__c?: null;
      Projectlink__c?: null;
      Projectmanager__c?: null;
      Projectpriority__c?: null;
      Projectstatus__c?: null;
      Projecttitle__c?: string;
      SystemModstamp?: string;
    }>;
  };
  sortOrder?: number;
  version?: number;
};

export type SalesforceV1FlowInvokeNode = {
  type: 'n8n-nodes-base.salesforce';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<SalesforceV1FlowInvokeParams>;
  output?: Items<SalesforceV1FlowInvokeOutput>;
};