All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.kestra.plugin.aws.s3.ListInterface Maven / Gradle / Ivy

The newest version!
package io.kestra.plugin.aws.s3;

import io.kestra.core.models.annotations.PluginProperty;
import io.swagger.v3.oas.annotations.media.Schema;

import jakarta.validation.constraints.NotNull;

public interface ListInterface {
    @Schema(
        title = "The S3 bucket where to download the file."
    )
    @PluginProperty(dynamic = true)
    @NotNull
    String getBucket();

    @Schema(
        title = "Limits the response to keys that begin with the specified prefix."
    )
    @PluginProperty(dynamic = true)
    String getPrefix();

    @Schema(
        title = "A delimiter is a character you use to group keys."
    )
    @PluginProperty(dynamic = true)
    String getDelimiter();

    @Schema(
        title = "Marker is where you want Amazon S3 to start listing from.",
        description = "Amazon S3 starts listing after this specified key. Marker can be any key in the bucket."
    )
    @PluginProperty(dynamic = true)
    String getMarker();

    @Schema(
        title = "The EncodingType property for this object."
    )
    @PluginProperty(dynamic = true)
    String getEncodingType();

    @Schema(
        title = "Sets the maximum number of keys returned in the response.",
        description = "By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more."
    )
    @PluginProperty(dynamic = true)
    Integer getMaxKeys();

    @Schema(
        title = "The account ID of the expected bucket owner.",
        description = "If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied)."
    )
    @PluginProperty(dynamic = true)
    String getExpectedBucketOwner();

    @Schema(
        title = "A regexp to filter on full key.",
        description = "ex:\n"+
            "`regExp: .*` to match all files\n"+
            "`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`"
    )
    @PluginProperty(dynamic = true)
    String getRegexp();

    @Schema(
        title = "The type of objects to filter: files, directory, or both."
    )
    @PluginProperty
    Filter getFilter();


    enum Filter {
        FILES,
        DIRECTORY,
        BOTH
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy