// Proto file representing simulation setup 

syntax = "proto3";

package ansys.api.edb.v1;

import "ansys/api/edb/v1/edb_messages.proto";
import "ansys/api/edb/v1/edb_defs.proto";

service SimulationSetupService {
  rpc Create(SimulationSetupCreationMessage) returns (EDBObjMessage) {}

  rpc GetName (EDBObjMessage) returns (google.protobuf.StringValue) {}
  rpc SetName (StringPropertyMessage) returns (google.protobuf.Empty) {}
  
  rpc GetPosition (EDBObjMessage) returns (google.protobuf.UInt64Value) {} 
  rpc SetPosition (UInt64PropertyMessage) returns (google.protobuf.Empty) {}
  
  rpc GetSweepData (EDBObjMessage) returns (SweepDataListMessage) {}
  rpc SetSweepData (SweepDataListPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetType (EDBObjMessage) returns (SimulationSetupTypeMessage) {}
}

message SimulationSetupCreationMessage {
  EDBObjMessage cell = 1;
  string name = 2;
  SimulationSetupType type = 3;
}

message SweepDataMessage {
  string name = 1;
  string frequency_string = 2;
  bool fast_sweep = 3;
}

message SweepDataListMessage {
  repeated SweepDataMessage sweep_data = 1;
}

message SweepDataListPropertyMessage {
  EDBObjMessage target = 1;
  SweepDataListMessage sweeps = 2;
}

message SimulationSetupTypeMessage {
  SimulationSetupType type = 1;
}