Interface DaprPreviewClient

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
DaprClientImpl

public interface DaprPreviewClient extends AutoCloseable
Generic client interface for preview or alpha APIs in Dapr, regardless of GRPC or HTTP.
See Also:
  • Method Details

    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(String storeName, String query, Map<String,String> metadata, Class<T> clazz)
      Query for states using a query string.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      storeName - Name of the state store to query.
      query - String value of the query.
      metadata - Optional metadata passed to the state store.
      clazz - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(String storeName, String query, Map<String,String> metadata, TypeRef<T> type)
      Query for states using a query string.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      storeName - Name of the state store to query.
      query - String value of the query.
      metadata - Optional metadata passed to the state store.
      type - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(String storeName, String query, Class<T> clazz)
      Query for states using a query string.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      storeName - Name of the state store to query.
      query - String value of the query.
      clazz - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(String storeName, String query, TypeRef<T> type)
      Query for states using a query string.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      storeName - Name of the state store to query.
      query - String value of the query.
      type - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(String storeName, Query query, Map<String,String> metadata, Class<T> clazz)
      Query for states using a query domain object.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      storeName - Name of the state store to query.
      query - Query value domain object.
      metadata - Optional metadata passed to the state store.
      clazz - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(String storeName, Query query, Map<String,String> metadata, TypeRef<T> type)
      Query for states using a query domain object.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      storeName - Name of the state store to query.
      query - Query value domain object.
      metadata - Optional metadata passed to the state store.
      type - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(String storeName, Query query, Class<T> clazz)
      Query for states using a query domain object.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      storeName - Name of the state store to query.
      query - Query value domain object.
      clazz - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(String storeName, Query query, TypeRef<T> type)
      Query for states using a query domain object.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      storeName - Name of the state store to query.
      query - Query value domain object.
      type - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(QueryStateRequest request, Class<T> clazz)
      Query for states using a query request.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      request - Query request object.
      clazz - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • queryState

      <T> reactor.core.publisher.Mono<QueryStateResponse<T>> queryState(QueryStateRequest request, TypeRef<T> type)
      Query for states using a query request.
      Type Parameters:
      T - The Type of the return, use byte[] to skip serialization.
      Parameters:
      request - Query request object.
      type - The type needed as return for the call.
      Returns:
      A Mono of QueryStateResponse of type T.
    • publishEvents

      @Deprecated <T> reactor.core.publisher.Mono<BulkPublishResponse<T>> publishEvents(BulkPublishRequest<T> request)
      Deprecated.
      This method is now stable. Use DaprClient.publishEvents(BulkPublishRequest) instead.
      Publish multiple events to Dapr in a single request.
      Type Parameters:
      T - The type of events to publish in the call.
      Parameters:
      request - BulkPublishRequest object.
      Returns:
      A Mono of BulkPublishResponse object.
    • publishEvents

      @Deprecated <T> reactor.core.publisher.Mono<BulkPublishResponse<T>> publishEvents(String pubsubName, String topicName, String contentType, List<T> events)
      Deprecated.
      This method is now stable. Use DaprClient.publishEvents(String, String, String, List) instead.
      Publish multiple events to Dapr in a single request.
      Type Parameters:
      T - The type of the events to publish in the call.
      Parameters:
      pubsubName - the pubsub name we will publish the event to.
      topicName - the topicName where the event will be published.
      events - the List of events to be published.
      contentType - the content type of the event. Use Mime based types.
      Returns:
      the BulkPublishResponse containing publish status of each event. The "entryID" field in BulkPublishEntry in BulkPublishResponseFailedEntry will be generated based on the order of events in the List.
    • publishEvents

      @Deprecated <T> reactor.core.publisher.Mono<BulkPublishResponse<T>> publishEvents(String pubsubName, String topicName, String contentType, T... events)
      Deprecated.
      This method is now stable. Use DaprClient.publishEvents(String, String, String, Object[]) instead.
      Publish multiple events to Dapr in a single request.
      Type Parameters:
      T - The type of the events to publish in the call.
      Parameters:
      pubsubName - the pubsub name we will publish the event to.
      topicName - the topicName where the event will be published.
      events - the varargs of events to be published.
      contentType - the content type of the event. Use Mime based types.
      Returns:
      the BulkPublishResponse containing publish status of each event. The "entryID" field in BulkPublishEntry in BulkPublishResponseFailedEntry will be generated based on the order of events in the List.
    • publishEvents

      @Deprecated <T> reactor.core.publisher.Mono<BulkPublishResponse<T>> publishEvents(String pubsubName, String topicName, String contentType, Map<String,String> requestMetadata, List<T> events)
      Deprecated.
      This method is now stable. Use DaprClient.publishEvents(String, String, String, Map, List) instead.
      Publish multiple events to Dapr in a single request.
      Type Parameters:
      T - The type of the events to publish in the call.
      Parameters:
      pubsubName - the pubsub name we will publish the event to.
      topicName - the topicName where the event will be published.
      events - the List of events to be published.
      contentType - the content type of the event. Use Mime based types.
      requestMetadata - the metadata to be set at the request level for the BulkPublishRequest.
      Returns:
      the BulkPublishResponse containing publish status of each event. The "entryID" field in BulkPublishEntry in BulkPublishResponseFailedEntry will be generated based on the order of events in the List.
    • publishEvents

      @Deprecated <T> reactor.core.publisher.Mono<BulkPublishResponse<T>> publishEvents(String pubsubName, String topicName, String contentType, Map<String,String> requestMetadata, T... events)
      Deprecated.
      Publish multiple events to Dapr in a single request.
      Type Parameters:
      T - The type of the events to publish in the call.
      Parameters:
      pubsubName - the pubsub name we will publish the event to.
      topicName - the topicName where the event will be published.
      events - the varargs of events to be published.
      contentType - the content type of the event. Use Mime based types.
      requestMetadata - the metadata to be set at the request level for the BulkPublishRequest.
      Returns:
      the BulkPublishResponse containing publish status of each event. The "entryID" field in BulkPublishEntry in BulkPublishResponseFailedEntry will be generated based on the order of events in the List.
    • tryLock

      reactor.core.publisher.Mono<Boolean> tryLock(String storeName, String resourceId, String lockOwner, Integer expiryInSeconds)
      Tries to get a lock with an expiry.
      Parameters:
      storeName - Name of the store
      resourceId - Lock key
      lockOwner - The identifier of lock owner
      expiryInSeconds - The time before expiry
      Returns:
      Whether the lock is successful
    • tryLock

      reactor.core.publisher.Mono<Boolean> tryLock(LockRequest request)
      Tries to get a lock with an expiry.
      Parameters:
      request - The request to lock
      Returns:
      Whether the lock is successful
    • unlock

      reactor.core.publisher.Mono<UnlockResponseStatus> unlock(String storeName, String resourceId, String lockOwner)
      Unlocks a lock.
      Parameters:
      storeName - Name of the store
      resourceId - Lock key
      lockOwner - The identifier of lock owner
      Returns:
      Unlock result
    • unlock

      reactor.core.publisher.Mono<UnlockResponseStatus> unlock(UnlockRequest request)
      Unlocks a lock.
      Parameters:
      request - The request to unlock
      Returns:
      Unlock result
    • subscribeToEvents

      @Deprecated <T> Subscription subscribeToEvents(String pubsubName, String topic, SubscriptionListener<T> listener, TypeRef<T> type)
      Deprecated.
      Use subscribeToTopic(String, String, TypeRef) instead for a more reactive approach.
      Subscribe to pubsub via streaming.
      Type Parameters:
      T - Type of object deserialization.
      Parameters:
      pubsubName - Name of the pubsub component.
      topic - Name of the topic to subscribe to.
      listener - Callback methods to process events.
      type - Type for object deserialization.
      Returns:
      An active subscription.
    • subscribeToEvents

      @Deprecated <T> reactor.core.publisher.Flux<T> subscribeToEvents(String pubsubName, String topic, TypeRef<T> type)
      Subscribe to pubsub events via streaming using Project Reactor Flux.
      Type Parameters:
      T - Type of the event payload.
      Parameters:
      pubsubName - Name of the pubsub component.
      topic - Name of the topic to subscribe to.
      type - Type for object deserialization.
      Returns:
      A Flux of deserialized event payloads.
    • subscribeToEvents

      @Deprecated <T> reactor.core.publisher.Flux<T> subscribeToEvents(String pubsubName, String topic, TypeRef<T> type, Map<String,String> metadata)
      Subscribe to pubsub events via streaming using Project Reactor Flux with metadata support.
      Type Parameters:
      T - Type of the event payload.
      Parameters:
      pubsubName - Name of the pubsub component.
      topic - Name of the topic to subscribe to.
      type - Type for object deserialization.
      metadata - Subscription metadata (e.g., {"rawPayload": "true"}).
      Returns:
      A Flux of deserialized event payloads.
    • subscribeToTopic

      <T> reactor.core.publisher.Flux<T> subscribeToTopic(String pubsubName, String topic, TypeRef<T> type)
      Subscribe to pubsub events via streaming using Project Reactor Flux.

      The type parameter determines what is deserialized from the event data:

      • Use TypeRef.STRING or similar for raw payload data
      • Use new TypeRef<CloudEvent<String>>(){} to receive CloudEvent with metadata
      Type Parameters:
      T - Type of the event payload.
      Parameters:
      pubsubName - Name of the pubsub component.
      topic - Name of the topic to subscribe to.
      type - Type for object deserialization.
      Returns:
      A Flux of deserialized event payloads.
    • subscribeToTopic

      <T> reactor.core.publisher.Flux<T> subscribeToTopic(String pubsubName, String topic, TypeRef<T> type, Map<String,String> metadata)
      Subscribe to pubsub events via streaming using Project Reactor Flux with metadata support.

      If metadata is null or empty, this method delegates to subscribeToTopic(String, String, TypeRef). Use metadata {"rawPayload": "true"} for raw payload subscriptions where Dapr delivers messages without CloudEvent wrapping.

      Type Parameters:
      T - Type of the event payload.
      Parameters:
      pubsubName - Name of the pubsub component.
      topic - Name of the topic to subscribe to.
      type - Type for object deserialization.
      metadata - Subscription metadata (e.g., {"rawPayload": "true"}).
      Returns:
      A Flux of deserialized event payloads.
    • converse

      @Deprecated reactor.core.publisher.Mono<ConversationResponse> converse(ConversationRequest conversationRequest)
      Deprecated.
    • converseAlpha2

      reactor.core.publisher.Mono<ConversationResponseAlpha2> converseAlpha2(ConversationRequestAlpha2 conversationRequestAlpha2)
    • encrypt

      reactor.core.publisher.Flux<byte[]> encrypt(EncryptRequestAlpha1 request)
      Encrypt data using the Dapr cryptography building block. This method uses streaming to handle large payloads efficiently.
      Parameters:
      request - The encryption request containing component name, key information, and plaintext stream.
      Returns:
      A Flux of encrypted byte arrays (ciphertext chunks).
      Throws:
      IllegalArgumentException - if required parameters are missing.
    • decrypt

      reactor.core.publisher.Flux<byte[]> decrypt(DecryptRequestAlpha1 request)
      Decrypt data using the Dapr cryptography building block. This method uses streaming to handle large payloads efficiently.
      Parameters:
      request - The decryption request containing component name, optional key name, and ciphertext stream.
      Returns:
      A Flux of decrypted byte arrays (plaintext chunks).
      Throws:
      IllegalArgumentException - if required parameters are missing.