/** * AWS S3 Node - Version 2 * Discriminator: resource=file, operation=copy */ interface Credentials { aws: CredentialReference; awsAssumeRole: CredentialReference; } /** Copy a file */ export type AwsS3V2FileCopyParams = { resource: 'file'; operation: 'copy'; authentication?: 'iam' | 'assumeRole' | Expression; /** * The name of the source bucket should start with (/) and key name of the source object, separated by a slash (/) */ sourcePath?: string | Expression | PlaceholderValue; /** * The name of the destination bucket and key name of the destination object, separated by a slash (/) */ destinationPath?: string | Expression | PlaceholderValue; /** * Additional Fields * @default {} */ additionalFields?: { /** The canned ACL to apply to the object * @default private */ acl?: 'authenticatedRead' | 'awsExecRead' | 'bucketOwnerFullControl' | 'bucketOwnerRead' | 'private' | 'publicRead' | 'publicReadWrite' | Expression; /** Whether to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object * @default false */ grantFullControl?: boolean | Expression; /** Whether to allow grantee to read the object data and its metadata * @default false */ grantRead?: boolean | Expression; /** Whether to allow grantee to read the object ACL * @default false */ grantReadAcp?: boolean | Expression; /** Whether to allow grantee to write the ACL for the applicable object * @default false */ grantWriteAcp?: boolean | Expression; /** Whether a legal hold will be applied to this object * @default false */ lockLegalHold?: boolean | Expression; /** The Object Lock mode that you want to apply to this object */ lockMode?: 'governance' | 'compliance' | Expression; /** The date and time when you want this object's Object Lock to expire */ lockRetainUntilDate?: string | Expression; /** Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request */ metadataDirective?: 'copy' | 'replace' | Expression; /** Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled. * @default false */ requesterPays?: boolean | Expression; /** The server-side encryption algorithm used when storing this object in Amazon S3 */ serverSideEncryption?: 'AES256' | 'aws:kms' | Expression; /** Specifies the AWS KMS Encryption Context to use for object encryption */ serverSideEncryptionContext?: string | Expression | PlaceholderValue; /** If x-amz-server-side-encryption is present and has the value of aws:kms */ encryptionAwsKmsKeyId?: string | Expression | PlaceholderValue; /** Specifies the algorithm to use to when encrypting the object (for example, AES256) */ serversideEncryptionCustomerAlgorithm?: string | Expression | PlaceholderValue; /** Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data */ serversideEncryptionCustomerKey?: string | Expression | PlaceholderValue; /** Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321 */ serversideEncryptionCustomerKeyMD5?: string | Expression | PlaceholderValue; /** Amazon S3 storage classes * @default standard */ storageClass?: 'deepArchive' | 'glacier' | 'intelligentTiering' | 'onezoneIA' | 'standard' | 'standardIA' | Expression; /** Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request */ taggingDirective?: 'copy' | 'replace' | Expression; }; }; export type AwsS3V2FileCopyOutput = { $?: { xmlns?: string; }; ChecksumCRC64NVME?: string; ETag?: string; LastModified?: string; }; export type AwsS3V2FileCopyNode = { type: 'n8n-nodes-base.awsS3'; version: 2; credentials?: Credentials; config: NodeConfig; output?: Items; };