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

io.kestra.plugin.pulsar.SubscriptionInterface Maven / Gradle / Ivy

package io.kestra.plugin.pulsar;

import io.kestra.core.models.annotations.PluginProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.pulsar.client.api.SubscriptionInitialPosition;
import org.apache.pulsar.client.api.SubscriptionType;

import java.util.Map;
import javax.validation.constraints.NotNull;

public interface SubscriptionInterface {
    @Schema(
        title = "The subscription name",
        description = "Using subscription name, we will fetch only records not already consumed"
    )
    @PluginProperty(dynamic = true)
    @NotNull
    String getSubscriptionName();

    @io.swagger.v3.oas.annotations.media.Schema(
        title = "Add all the properties in the provided map to the consumer."
    )
    @PluginProperty(dynamic = false)
    @NotNull
    SubscriptionInitialPosition getInitialPosition();

    @io.swagger.v3.oas.annotations.media.Schema(
        title = "Add all the properties in the provided map to the consumer."
    )
    @PluginProperty(dynamic = false)
    @NotNull
    SubscriptionType getSubscriptionType();

    @io.swagger.v3.oas.annotations.media.Schema(
        title = "Add all the properties in the provided map to the consumer."
    )
    @PluginProperty(dynamic = true, additionalProperties = String.class)
    Map getConsumerProperties();

    @io.swagger.v3.oas.annotations.media.Schema(
        title = "Add public encryption key, used by producer to decrypt the data key."
    )
    @PluginProperty(dynamic = true)
    String getEncryptionKey();

    @io.swagger.v3.oas.annotations.media.Schema(
        title = "Set the consumer name."
    )
    @PluginProperty(dynamic = true)
    String getConsumerName();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy