public interface MassManagementEngine
MassManagementEngine
service provides functionality for appointing and monitoring of Task
executions
and automation Rule
s for mass management over devices or arbitrary business logic.Modifier and Type | Method and Description |
---|---|
CompletionStage<DeviceRuleStatus> |
cancelDeviceInRule(String ruleId,
String deviceId)
Cancel a specific involved device execution in scope of a rule
|
CompletionStage<Void> |
cancelDeviceInTask(String taskId,
String deviceId)
Cancel a specific involved device execution in scope of a task
|
MassManagementEngine |
createInstanceForTenant(String tenantId) |
CompletionStage<Rule> |
createRule(RuleParameters parameters) |
CompletionStage<Rule> |
createRule(String ruleDef)
Creates a Rule by given JSON-encoded Rule definition.
|
CompletionStage<Rule> |
createRule(String ruleDisplayName,
Scope scope,
TriggerList trigger,
ExecOptions options,
Action action)
Creates a Rule with given attributes - display name, execution scope, trigger definition, execution options and groovy script text.
|
RuleBuilder |
createRuleBuilder(String ruleName)
Deprecated.
Use
createRule(RuleParameters) instead. |
TaskBuilder |
createTaskBuilder(String taskName)
Deprecated.
Use
launchTask(TaskParameters) instead. |
CompletionStage<String> |
getActionDefMetadata(String actionType) |
CompletionStage<List<String>> |
getActionTypes() |
CompletionStage<String> |
getEventsMetadata(String triggerType) |
CompletionStage<DeviceExecItem> |
getExecItem(String execItemId)
Retrieves a partial execution report -
DeviceExecItem - by given execution item id. |
static MassManagementEngine |
getInstance() |
CompletionStage<Rule> |
getRule(String ruleId)
Retrieves a Rule by given Rule Id.
|
CompletionStage<Task> |
getTask(String taskId)
Retrieves a Task by given Task Id.
|
CompletionStage<String> |
getTriggerInputMetadata(String triggerType) |
CompletionStage<List<String>> |
getTriggerTypes() |
CompletionStage<Task> |
launchTask(String taskDef)
Launches a Task by given JSON-encoded Task definition.
|
CompletionStage<Task> |
launchTask(String displayName,
Scope scope,
ExecOptions options,
Action action)
Launches a Task with given attributes - display name, execution scope, execution options and groovy script text.
|
CompletionStage<Task> |
launchTask(TaskParameters parameters) |
void |
launchTask(TaskParameters parameters,
StreamConsumer<TaskEvent> consumer) |
com.bosch.iot.dm.util.PageIterator<DeviceTaskStatus> |
listExecutions(boolean loadHistoricalData,
int pageSize)
Deprecated.
Use
listExecutions(ListOptions, boolean) instead. |
FilteredSet<DeviceTaskStatus> |
listExecutions(ListOptions listOptions,
boolean loadHistoricalData)
Returns a list of Executions that satisfy given filtering and/or sorting criteria.
|
FilteredSet<DeviceTaskStatus> |
listExecutions(String executionFilter,
boolean loadHistoricalData)
Deprecated.
Use
listExecutions(ListOptions, boolean) instead. |
CompletionStage<List<DeviceExecItem>> |
listExecutionsForDevice(String deviceId,
DeviceExecStatus.State execStatusFilter)
Retrieves all execution items for a given device.
|
com.bosch.iot.dm.util.PageIterator<DeviceExecItem> |
listExecutionsForDevice(String deviceId,
DeviceExecStatus.State execStatusFilter,
int pageSize) |
CompletionStage<List<Rule>> |
listRules()
Deprecated.
Use
listRules(ListOptions) instead.
Retrieves all Rule available in MME. |
com.bosch.iot.dm.util.PageIterator<Rule> |
listRules(int pageSize)
Deprecated.
Use
listRules(ListOptions) instead. |
FilteredSet<Rule> |
listRules(ListOptions listOptions)
Retrieves all Rules available in MME that satisfy given filtering and/or sorting criteria.
|
FilteredSet<Rule> |
listRules(String ruleFilter)
Deprecated.
Use
listRules(ListOptions) instead. |
com.bosch.iot.dm.util.PageIterator<Rule> |
listRules(String ruleFilter,
int pageSize)
Deprecated.
Use
listRules(ListOptions) instead. |
CompletionStage<List<DeviceRuleStatus>> |
listRulesForDevice(String deviceId,
DeviceExecStatus.State execStatusFilter)
Retrieves all Rules and respective execution status for a given device.
|
com.bosch.iot.dm.util.PageIterator<DeviceRuleStatus> |
listRulesForDevice(String deviceId,
DeviceExecStatus.State execStatusFilter,
int pageSize) |
CompletionStage<List<Task>> |
listTasks()
Deprecated.
Use
listTasks(ListOptions) instead. |
com.bosch.iot.dm.util.PageIterator<Task> |
listTasks(int pageSize)
Deprecated.
Use
listTasks(ListOptions) instead. |
FilteredSet<Task> |
listTasks(ListOptions listOptions)
Retrieves all Tasks available in MME that satisfy given filtering and/or sorting criteria.
|
FilteredSet<Task> |
listTasks(String taskFilter)
Deprecated.
Use
listTasks(ListOptions) instead. |
com.bosch.iot.dm.util.PageIterator<Task> |
listTasks(String taskFilter,
int pageSize)
Deprecated.
Use
listTasks(ListOptions) instead. |
CompletionStage<List<DeviceTaskStatus>> |
listTasksForDevice(String deviceId,
DeviceExecStatus.State execStatusFilter,
boolean freeTasks)
Retrieves all Tasks and respective execution status for a given device.
|
com.bosch.iot.dm.util.PageIterator<DeviceTaskStatus> |
listTasksForDevice(String deviceId,
DeviceExecStatus.State execStatusFilter,
boolean freeTasks,
int pageSize) |
com.bosch.iot.dm.util.PageIterator<Subscription<RuleEventOptions>> |
ruleEventSubscriptions(int pageSize)
List all existing persistent Rule event subscriptions.
|
void |
subscribeForDeviceStatusEvents(List<DeviceStatusEvent.Type> eventTypes,
Optional<String> deviceId,
Optional<String> ruleId,
Optional<String> taskId,
StreamConsumer<DeviceStatusEvent> consumer)
Create non-persistent subscription for
DeviceStatusEvent s. |
CompletionStage<Void> |
subscribeForDeviceStatusEvents(String subscriptionId,
List<DeviceStatusEvent.Type> eventTypes,
Optional<String> deviceId,
Optional<String> ruleId,
Optional<String> taskId,
Target target)
Create persistent subscription for
DeviceStatusEvent s. |
void |
subscribeForRuleEvents(List<RuleEvent.Type> eventTypes,
Optional<String> ruleId,
StreamConsumer<RuleEvent> consumer)
Create non-persistent subscription for
RuleEvent s. |
CompletionStage<Void> |
subscribeForRuleEvents(String subscriptionId,
List<RuleEvent.Type> eventTypes,
Optional<String> ruleId,
Target target)
Create persistent subscription for
RuleEvent s. |
void |
subscribeForTaskEvents(List<TaskEvent.Type> eventTypes,
Optional<String> taskId,
Optional<String> ruleId,
StreamConsumer<TaskEvent> consumer)
Create non-persistent subscription for
TaskEvent s |
CompletionStage<Void> |
subscribeForTaskEvents(String subscriptionId,
List<TaskEvent.Type> eventTypes,
Optional<String> taskId,
Optional<String> ruleId,
Target target)
Create persistent subscription for
TaskEvent s. |
com.bosch.iot.dm.util.PageIterator<Subscription<TaskEventOptions>> |
taskEventSubscriptions(int pageSize)
List all existing persistent Task event subscriptions.
|
CompletionStage<Void> |
unsubscribeForDeviceStatusEvents(String subscriptionId)
Remove an existing persistent subscription for
DeviceStatusEvent s. |
CompletionStage<Void> |
unsubscribeForRuleEvents(String subscriptionId)
Remove an existing persistent subscription for
RuleEvent s. |
CompletionStage<Void> |
unsubscribeForTaskEvents(String subscriptionId)
Remove an existing persistent subscription for
TaskEvent s. |
MassManagementEngine createInstanceForTenant(String tenantId)
static MassManagementEngine getInstance()
CompletionStage<Task> launchTask(String displayName, Scope scope, ExecOptions options, Action action)
displayName
- user-friendly display name of the Task.scope
- defines the execution scope of the Task to be launched.
The Task could be system-scoped or device-scoped and could cover arbitrary set of respective targets.options
- defines the execution options of the Task.
Note, that the only options applicable for the Task executions are
ExecOptions.overlap(com.bosch.iot.dm.mme.ExecOptions.Overlapping)
and ExecOptions.timeConstraint(String)
.
All other options defined in ExecOptions
class (including those two) are applicable for Rules.action
- the Task action.Task
object representing the launched Task.CompletionStage<Task> launchTask(String taskDef)
taskDef
- JSON-encoded Task definition containing all elements from launchTask(String, Scope, ExecOptions, Action)
CompletionStage<Task> launchTask(TaskParameters parameters)
void launchTask(TaskParameters parameters, StreamConsumer<TaskEvent> consumer)
@Deprecated TaskBuilder createTaskBuilder(String taskName)
launchTask(TaskParameters)
instead.taskName
- display name of the new Task.CompletionStage<Task> getTask(String taskId)
taskId
- task id.Task
object representing the current monitoring state of the requested Task
or null
if Task with the provided Task Id does not exist.@Deprecated CompletionStage<List<Task>> listTasks()
listTasks(ListOptions)
instead.Task
objects representing the monitoring state of each retrieved Task.@Deprecated com.bosch.iot.dm.util.PageIterator<Task> listTasks(int pageSize)
listTasks(ListOptions)
instead.pageSize
- the number of elements returned within a page@Deprecated FilteredSet<Task> listTasks(String taskFilter)
listTasks(ListOptions)
instead.taskFilter
- a rql query filter over the Task attributes.FilteredSet
from which the list of Tasks satisfying the filter could be listed
(see: FilteredSet.list()
) and arbitrary Tasks (potentially caught by events) could be matched
if they satisfy the filtering criteria of the FilteredSet
. See FilteredSet.match(Object)
.@Deprecated com.bosch.iot.dm.util.PageIterator<Task> listTasks(String taskFilter, int pageSize)
listTasks(ListOptions)
instead.taskFilter
- a rql query filter over the Task attributes.pageSize
- the number of elements returned within a pageFilteredSet<Task> listTasks(ListOptions listOptions)
listOptions
- list options for filter and sorting criteria.
true
when the execution is paused die to time constraint restrictions.or(eq(taskId,"tid1"),eq(props.myString,"string"))
FilteredSet
from which the list of Tasks satisfying the filter could be listed
(see: FilteredSet.list()
) and arbitrary Tasks (potentially caught by events) could be matched
if they satisfy the filtering criteria of the FilteredSet
. See FilteredSet.match(Object)
.CompletionStage<List<DeviceTaskStatus>> listTasksForDevice(String deviceId, DeviceExecStatus.State execStatusFilter, boolean freeTasks)
deviceId
- device id.execStatusFilter
- execution status filter.freeTasks
- value of true
specifies that only Task executions not bound to any Rule should be retrieved,
while value of false
specifies all task executions to be retrieved (including those bound to rules).DeviceTaskStatus
objects - one for each Task the given device is involved in.com.bosch.iot.dm.util.PageIterator<DeviceTaskStatus> listTasksForDevice(String deviceId, DeviceExecStatus.State execStatusFilter, boolean freeTasks, int pageSize)
CompletionStage<List<DeviceExecItem>> listExecutionsForDevice(String deviceId, DeviceExecStatus.State execStatusFilter)
deviceId
- device id.execStatusFilter
- execution status filter.DeviceExecItem
objects - one for each execution the given device is involved in.com.bosch.iot.dm.util.PageIterator<DeviceExecItem> listExecutionsForDevice(String deviceId, DeviceExecStatus.State execStatusFilter, int pageSize)
deviceId
- execStatusFilter
- pageSize
- @Deprecated com.bosch.iot.dm.util.PageIterator<DeviceTaskStatus> listExecutions(boolean loadHistoricalData, int pageSize)
listExecutions(ListOptions, boolean)
instead.loadHistoricalData
- load all historical executions for every Device in the Rules not only the last ones.pageSize
- the number of DeviceTaskStatuses returned within a page@Deprecated FilteredSet<DeviceTaskStatus> listExecutions(String executionFilter, boolean loadHistoricalData)
listExecutions(ListOptions, boolean)
instead.executionFilter
- аn rql filter over the execution attributes.loadHistoricalData
- load all historical executions for every Device in the Rules not only the last ones.FilteredSet
from which the list of DeviceTaskStatuses satisfying the filter could be listed
(see: FilteredSet.list()
) or pagination can be performed (see: FilteredSet.list(int pageSize)
)
and arbitrary DeviceTaskStatuses could be matched
if they satisfy the filtering criteria of the FilteredSet
. See FilteredSet.match(Object)
.FilteredSet<DeviceTaskStatus> listExecutions(ListOptions listOptions, boolean loadHistoricalData)
listOptions
- list options for filter and sorting criteria.
or(eq(deviceId,"DeviceId1"),eq(deviceId,"DeviceId2"))
loadHistoricalData
- load all historical executions for every Device in the Rules not only the last ones.FilteredSet
from which the list of DeviceTaskStatuses satisfying the filter could be listed
(see: FilteredSet.list()
) or pagination can be performed (see: FilteredSet.list(int pageSize)
)
and arbitrary DeviceTaskStatuses could be matched
if they satisfy the filtering criteria of the FilteredSet
. See FilteredSet.match(Object)
.CompletionStage<DeviceExecItem> getExecItem(String execItemId)
DeviceExecItem
- by given execution item id.execItemId
- execution item id.CompletionStage<Rule> createRule(String ruleDisplayName, Scope scope, TriggerList trigger, ExecOptions options, Action action)
ruleDisplayName
- user-friendly display name of the Rule.scope
- defines the initial execution scope of the Rule.
The Rule could be system-scoped or device-scoped and could cover arbitrary set of respective targets.trigger
- defines the triggering criteria for the Rule.options
- defines the execution options of the Rule.action
- the Rule action provided.Rule
object representing the created Rule.CompletionStage<Rule> createRule(String ruleDef)
ruleDef
- JSON-encoded Rule definition containing
all elements from createRule(String, Scope, TriggerList, ExecOptions, Action)
Rule
object representing the created Rule.@Deprecated RuleBuilder createRuleBuilder(String ruleName)
createRule(RuleParameters)
instead.ruleName
- display name of the new Rule.CompletionStage<Rule> createRule(RuleParameters parameters)
CompletionStage<Rule> getRule(String ruleId)
ruleId
- task id.Rule
object representing the current monitoring state of the requested Rule
or null
if Rule with the provided Rule Id does not exist.@Deprecated CompletionStage<List<Rule>> listRules()
listRules(ListOptions)
instead.
Retrieves all Rule available in MME.Rule
objects representing the monitoring state o f each retrieved Rule.@Deprecated com.bosch.iot.dm.util.PageIterator<Rule> listRules(int pageSize)
listRules(ListOptions)
instead.@Deprecated com.bosch.iot.dm.util.PageIterator<Rule> listRules(String ruleFilter, int pageSize)
listRules(ListOptions)
instead.@Deprecated FilteredSet<Rule> listRules(String ruleFilter)
listRules(ListOptions)
instead.ruleFilter
- a rql query filter over the Rule attributes.FilteredSet
from which the list of Rules satisfying the filter could be listed
(see: FilteredSet.list()
)and arbitrary Rules (potentially caught by events) could be matched
if they satisfy the current filtering criteria of the FilteredSet
. See FilteredSet.match(Object)
.FilteredSet<Rule> listRules(ListOptions listOptions)
listOptions
- list options for filter and sorting criteria.
or(eq(ruleId,"rid1"),eq(props.myString,"string"))
FilteredSet
from which the list of Rules satisfying the filter could be listed
(see: FilteredSet.list()
)and arbitrary Rules (potentially caught by events) could be matched
if they satisfy the current filtering criteria of the FilteredSet
. See FilteredSet.match(Object)
.CompletionStage<List<DeviceRuleStatus>> listRulesForDevice(String deviceId, DeviceExecStatus.State execStatusFilter)
deviceId
- device id.execStatusFilter
- execution status filter.DeviceRuleStatus
objects - one for each Rule the given device is involved in.com.bosch.iot.dm.util.PageIterator<DeviceRuleStatus> listRulesForDevice(String deviceId, DeviceExecStatus.State execStatusFilter, int pageSize)
CompletionStage<List<String>> getTriggerTypes()
CompletionStage<String> getTriggerInputMetadata(String triggerType)
CompletionStage<String> getEventsMetadata(String triggerType)
CompletionStage<List<String>> getActionTypes()
CompletionStage<String> getActionDefMetadata(String actionType)
void subscribeForDeviceStatusEvents(List<DeviceStatusEvent.Type> eventTypes, Optional<String> deviceId, Optional<String> ruleId, Optional<String> taskId, StreamConsumer<DeviceStatusEvent> consumer)
DeviceStatusEvent
s.eventTypes
- event typesdeviceId
- optional device idruleId
- optional rule idtaskId
- optional task idconsumer
- events consumerCompletionStage<Void> subscribeForDeviceStatusEvents(String subscriptionId, List<DeviceStatusEvent.Type> eventTypes, Optional<String> deviceId, Optional<String> ruleId, Optional<String> taskId, Target target)
DeviceStatusEvent
s.subscriptionId
- unique subscription ideventTypes
- event typesdeviceId
- optional device idruleId
- optional rule idtaskId
- optional task idtarget
- target where the events shall be sent toCompletionStage
that is completed successfully if the subscription has been finished
and exceptionally in case of failure.CompletionStage<Void> unsubscribeForDeviceStatusEvents(String subscriptionId)
DeviceStatusEvent
s.subscriptionId
- existing subscription idCompletionStage
that is completed successfully if the subscription has been removed
and exceptionally in case of failure.void subscribeForRuleEvents(List<RuleEvent.Type> eventTypes, Optional<String> ruleId, StreamConsumer<RuleEvent> consumer)
RuleEvent
s.eventTypes
- event typesruleId
- optional rule idconsumer
- events consumerCompletionStage<Void> subscribeForRuleEvents(String subscriptionId, List<RuleEvent.Type> eventTypes, Optional<String> ruleId, Target target)
RuleEvent
s.subscriptionId
- unique subscription ideventTypes
- event typesruleId
- optional rule idtarget
- target where the events shall be sent toCompletionStage
that is completed successfully if the subscription has been finished
and exceptionally in case of failure.CompletionStage<Void> unsubscribeForRuleEvents(String subscriptionId)
RuleEvent
s.subscriptionId
- existing subscription idCompletionStage
that is completed successfully if the subscription has been removed
and exceptionally in case of failure.void subscribeForTaskEvents(List<TaskEvent.Type> eventTypes, Optional<String> taskId, Optional<String> ruleId, StreamConsumer<TaskEvent> consumer)
TaskEvent
seventTypes
- event typestaskId
- optional task idruleId
- optional rule idconsumer
- events consumerCompletionStage<Void> subscribeForTaskEvents(String subscriptionId, List<TaskEvent.Type> eventTypes, Optional<String> taskId, Optional<String> ruleId, Target target)
TaskEvent
s.subscriptionId
- unique subscription ideventTypes
- event typestaskId
- optional task idruleId
- optional rule idtarget
- target where the events shall be sent toCompletionStage
that is completed successfully if the subscription has been finished
and exceptionally in case of failure.CompletionStage<Void> unsubscribeForTaskEvents(String subscriptionId)
TaskEvent
s.subscriptionId
- existing subscription id *CompletionStage
that is completed successfully if the subscription has been removed
and exceptionally in case of failure.com.bosch.iot.dm.util.PageIterator<Subscription<RuleEventOptions>> ruleEventSubscriptions(int pageSize)
pageSize
- page sizePageIterator
com.bosch.iot.dm.util.PageIterator<Subscription<TaskEventOptions>> taskEventSubscriptions(int pageSize)
pageSize
- page sizePageIterator
CompletionStage<DeviceRuleStatus> cancelDeviceInRule(String ruleId, String deviceId)
ruleId
- - rule iddeviceId
- - device idCompletionStage
that is completed successfully when the cancelation request is complete. In case of nothing to cancel,
the result would still complete successfully. The returned DeviceRuleStatus
result contains the last device execution state just
before canceling and herewith the caller can guess if something was really canceled. In case of cancelation failure the stage would complete
exceptionally. A 404 code (not found) could be expected in case there is no execution of such Device in such a Rule.CompletionStage<Void> cancelDeviceInTask(String taskId, String deviceId)
taskId
- - task iddeviceId
- - device idCompletionStage
that is completed successfully in case of successful cancellation
and exceptionally in case of failure.Copyright © 2022 Bosch.IO GmbH. All rights reserved.