// Proto file representing the EDB Instance Array class

syntax = "proto3";

// Package
package ansys.api.edb.v1;

// Imports
import "ansys/api/edb/v1/edb_messages.proto";
import "ansys/api/edb/v1/point_data.proto";

// Instance Array service definition
service InstArrayService {
  rpc Create(InstArrayCreationMessage) returns (EDBObjMessage) {}

  rpc FindByName(StringPropertyMessage) returns (EDBObjMessage) {}
  
  rpc GetOrig(EDBObjMessage) returns (PointMessage) {}
  
  rpc GetXAxis(EDBObjMessage) returns (PointMessage) {}
  rpc SetXAxis(PointPropertyMessage) returns (google.protobuf.Empty) {}
  
  rpc GetYAxis(EDBObjMessage) returns (PointMessage) {}
  rpc SetYAxis(PointPropertyMessage) returns (google.protobuf.Empty) {}
  
  rpc GetXCount(EDBObjMessage) returns (ValueMessage) {}
  rpc SetXCount(ValuePropertyMessage) returns (google.protobuf.Empty) {}
  
  rpc GetYCount(EDBObjMessage) returns (ValueMessage) {}
  rpc SetYCount(ValuePropertyMessage) returns (google.protobuf.Empty) {}
  
  rpc Decompose(EDBObjMessage) returns (google.protobuf.Empty) {}
}

message InstArrayCreationMessage {
  StringPropertyMessage layout = 1;
  EDBObjMessage ref = 2;
  PointMessage orig = 3;
  PointMessage xaxis = 4;
  PointMessage yaxis = 5;
  ValueMessage xcount = 6;
  ValueMessage ycount = 7;
}
