/**
 * Dropbox Node - Version 1
 * Discriminator: resource=file, operation=upload
 */


interface Credentials {
  dropboxApi: CredentialReference;
  dropboxOAuth2Api: CredentialReference;
}

/** Upload a file */
export type DropboxV1FileUploadParams = {
  resource: 'file';
  operation: 'upload';
/**
 * Means of authenticating with the service
 * @default accessToken
 */
    authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * The file path of the file to upload. Has to contain the full path. The parent folder has to exist. Existing files get overwritten.
 */
    path?: string | Expression<string> | PlaceholderValue;
/**
 * Whether the data to upload should be taken from binary field
 * @default false
 */
    binaryData?: boolean | Expression<boolean>;
/**
 * The text content of the file to upload
 * @displayOptions.show { binaryData: [false] }
 */
    fileContent?: string | Expression<string> | PlaceholderValue;
/**
 * Input Binary Field
 * @hint The name of the input binary field containing the file to be uploaded
 * @displayOptions.show { binaryData: [true] }
 * @default data
 */
    binaryPropertyName?: string | Expression<string> | PlaceholderValue;
};

export type DropboxV1FileUploadOutput = {
  client_modified?: string;
  content_hash?: string;
  id?: string;
  is_downloadable?: boolean;
  name?: string;
  path_display?: string;
  path_lower?: string;
  rev?: string;
  server_modified?: string;
  size?: number;
};

export type DropboxV1FileUploadNode = {
  type: 'n8n-nodes-base.dropbox';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<DropboxV1FileUploadParams>;
  output?: Items<DropboxV1FileUploadOutput>;
};