Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright 2022 The Dapr Authors
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
limitations under the License.
*/
package io.dapr.client;
import io.dapr.client.domain.BulkPublishEntry;
import io.dapr.client.domain.BulkPublishRequest;
import io.dapr.client.domain.BulkPublishResponse;
import io.dapr.client.domain.BulkPublishResponseFailedEntry;
import io.dapr.client.domain.LockRequest;
import io.dapr.client.domain.QueryStateRequest;
import io.dapr.client.domain.QueryStateResponse;
import io.dapr.client.domain.UnlockRequest;
import io.dapr.client.domain.UnlockResponseStatus;
import io.dapr.client.domain.query.Query;
import io.dapr.utils.TypeRef;
import reactor.core.publisher.Mono;
import java.util.List;
import java.util.Map;
/**
* Generic client interface for preview or alpha APIs in Dapr, regardless of GRPC or HTTP.
*
* @see io.dapr.client.DaprClientBuilder for information on how to make instance for this interface.
*/
public interface DaprPreviewClient extends AutoCloseable {
/**
* Query for states using a query string.
*
* @param storeName Name of the state store to query.
* @param query String value of the query.
* @param metadata Optional metadata passed to the state store.
* @param clazz The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(String storeName, String query,
Map metadata, Class clazz);
/**
* Query for states using a query string.
*
* @param storeName Name of the state store to query.
* @param query String value of the query.
* @param metadata Optional metadata passed to the state store.
* @param type The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(String storeName, String query,
Map metadata, TypeRef type);
/**
* Query for states using a query string.
*
* @param storeName Name of the state store to query.
* @param query String value of the query.
* @param clazz The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(String storeName, String query, Class clazz);
/**
* Query for states using a query string.
*
* @param storeName Name of the state store to query.
* @param query String value of the query.
* @param type The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(String storeName, String query, TypeRef type);
/**
* Query for states using a query domain object.
*
* @param storeName Name of the state store to query.
* @param query Query value domain object.
* @param metadata Optional metadata passed to the state store.
* @param clazz The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(String storeName, Query query,
Map metadata, Class clazz);
/**
* Query for states using a query domain object.
*
* @param storeName Name of the state store to query.
* @param query Query value domain object.
* @param metadata Optional metadata passed to the state store.
* @param type The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(String storeName, Query query,
Map metadata, TypeRef type);
/**
* Query for states using a query domain object.
*
* @param storeName Name of the state store to query.
* @param query Query value domain object.
* @param clazz The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(String storeName, Query query, Class clazz);
/**
* Query for states using a query domain object.
*
* @param storeName Name of the state store to query.
* @param query Query value domain object.
* @param type The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(String storeName, Query query, TypeRef type);
/**
* Query for states using a query request.
*
* @param request Query request object.
* @param clazz The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(QueryStateRequest request, Class clazz);
/**
* Query for states using a query request.
*
* @param request Query request object.
* @param type The type needed as return for the call.
* @param The Type of the return, use byte[] to skip serialization.
* @return A Mono of QueryStateResponse of type T.
*/
Mono> queryState(QueryStateRequest request, TypeRef type);
/**
* Publish multiple events to Dapr in a single request.
*
* @param request {@link BulkPublishRequest} object.
* @return A Mono of {@link BulkPublishResponse} object.
* @param The type of events to publish in the call.
*/
Mono> publishEvents(BulkPublishRequest request);
/**
* Publish multiple events to Dapr in a single request.
*
* @param pubsubName the pubsub name we will publish the event to.
* @param topicName the topicName where the event will be published.
* @param events the {@link List} of events to be published.
* @param contentType the content type of the event. Use Mime based types.
* @return the {@link BulkPublishResponse} containing publish status of each event.
* The "entryID" field in {@link BulkPublishEntry} in {@link BulkPublishResponseFailedEntry} will be
* generated based on the order of events in the {@link List}.
* @param The type of the events to publish in the call.
*/
Mono> publishEvents(String pubsubName, String topicName, String contentType,
List events);
/**
* Publish multiple events to Dapr in a single request.
*
* @param pubsubName the pubsub name we will publish the event to.
* @param topicName the topicName where the event will be published.
* @param events the varargs of events to be published.
* @param contentType the content type of the event. Use Mime based types.
* @return the {@link BulkPublishResponse} containing publish status of each event.
* The "entryID" field in {@link BulkPublishEntry} in {@link BulkPublishResponseFailedEntry} will be
* generated based on the order of events in the {@link List}.
* @param The type of the events to publish in the call.
*/
Mono> publishEvents(String pubsubName, String topicName, String contentType,
T... events);
/**
* Publish multiple events to Dapr in a single request.
*
* @param pubsubName the pubsub name we will publish the event to.
* @param topicName the topicName where the event will be published.
* @param events the {@link List} of events to be published.
* @param contentType the content type of the event. Use Mime based types.
* @param requestMetadata the metadata to be set at the request level for the {@link BulkPublishRequest}.
* @return the {@link BulkPublishResponse} containing publish status of each event.
* The "entryID" field in {@link BulkPublishEntry} in {@link BulkPublishResponseFailedEntry} will be
* generated based on the order of events in the {@link List}.
* @param The type of the events to publish in the call.
*/
Mono> publishEvents(String pubsubName, String topicName, String contentType,
Map requestMetadata, List events);
/**
* Publish multiple events to Dapr in a single request.
*
* @param pubsubName the pubsub name we will publish the event to.
* @param topicName the topicName where the event will be published.
* @param events the varargs of events to be published.
* @param contentType the content type of the event. Use Mime based types.
* @param requestMetadata the metadata to be set at the request level for the {@link BulkPublishRequest}.
* @return the {@link BulkPublishResponse} containing publish status of each event.
* The "entryID" field in {@link BulkPublishEntry} in {@link BulkPublishResponseFailedEntry} will be
* generated based on the order of events in the {@link List}.
* @param The type of the events to publish in the call.
*/
Mono> publishEvents(String pubsubName, String topicName, String contentType,
Map requestMetadata, T... events);
/**
* Tries to get a lock with an expiry.
* @param storeName Name of the store
* @param resourceId Lock key
* @param lockOwner The identifier of lock owner
* @param expiryInSeconds The time before expiry
* @return Whether the lock is successful
*/
Mono tryLock(String storeName, String resourceId, String lockOwner, Integer expiryInSeconds);
/**
* Tries to get a lock with an expiry.
* @param request The request to lock
* @return Whether the lock is successful
*/
Mono tryLock(LockRequest request);
/**
* Unlocks a lock.
* @param storeName Name of the store
* @param resourceId Lock key
* @param lockOwner The identifier of lock owner
* @return Unlock result
*/
Mono unlock(String storeName, String resourceId, String lockOwner);
/**
* Unlocks a lock.
* @param request The request to unlock
* @return Unlock result
*/
Mono unlock(UnlockRequest request);
}