blob: 488888d8453c5c4455be344673b0cd07896f92b6 [file] [log] [blame]
using BaSys40.Models.Core.AssetAdministrationShell.Generics;
using BaSys40.Models.Core.AssetAdministrationShell.Implementations;
using BaSys40.Utils.ResultHandling;
using System.Collections.Generic;
namespace BaSys40.API.Platform.Agents
{
public interface ISubmodelAgent
{
#region Operation - CRUD-Operations
IResult<IOperation> CreateOperation(string aasId, string submodelId, IOperation operation);
IResult<ElementContainer<IOperation>> RetrieveOperations(string aasId, string submodelId);
IResult<IOperation> RetrieveOperation(string aasId, string submodelId, string operationId);
IResult DeleteOperation(string aasId, string submodelId, string operationId);
IResult InvokeOperation(string aasId, string submodelId, string operationId, List<IArgument> inputArguments, List<IArgument> outputArguments, int timeout);
#endregion
#region DataElement - CRUD-Operations
IResult<IDataElement> CreateDataElement(string aasId, string submodelId, IDataElement dataElement);
IResult<ElementContainer<IDataElement>> RetrieveDataElements(string aasId, string submodelId);
IResult<IDataElement> RetrieveDataElement(string aasId, string submodelId, string dataElementId);
IResult UpdateDataElementValue(string aasId, string submodelId, string dataElementId, IValue value);
IResult<IValue> RetrieveDataElementValue(string aasId, string submodelId, string dataElementId);
IResult DeleteDataElement(string aasId, string submodelId, string dataElementId);
#endregion
#region Event - CRUD-Operations
IResult<IEvent> CreateEvent(string aasId, string submodelId, IEvent eventable);
IResult<ElementContainer<IEvent>> RetrieveEvents(string aasId, string submodelId);
IResult<IEvent> RetrieveEvent(string aasId, string submodelId, string eventId);
IResult DeleteEvent(string aasId, string submodelId, string eventId);
#endregion
}
}