// Proto file representing the EDB Component Property class

syntax = "proto3";

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

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

// Component Property service definition
service ComponentPropertyService {
  // Clone a component property
  rpc Clone(EDBObjMessage) returns (EDBObjMessage) {}

  // Get/Set Package mounting offset
  rpc GetPackageMountingOffset(EDBObjMessage) returns (ValueMessage) {}
  rpc SetPackageMountingOffset(ValuePropertyMessage) returns (google.protobuf.Empty) {}

  // Get/Set Package def
  rpc GetPackageDef(EDBObjMessage) returns (EDBObjMessage) {}
  rpc SetPackageDef(PointerPropertyMessage) returns (google.protobuf.Empty) {}

  // Get/Set Model
  rpc GetModel(EDBObjMessage) returns (ComponentPropModelMessage) {}
  rpc SetModel(PointerPropertyMessage) returns (google.protobuf.Empty) {}
}

message ComponentPropModelMessage {
  EDBObjMessage model = 1;
  ModelType model_type = 2;
}