syntax = "proto3";

package dbag.energy.m7t.management.request.v7;

import "dbag/energy/m7t/management/request/v7/order_entry.proto";
import "dbag/energy/m7t/management/request/v7/order_modify.proto";
import "dbag/energy/m7t/validation/v7/validation.proto";

option java_multiple_files = true;
option java_package = "com.deutscheboerse.energy.m7.api.management.request.v7";

/**
 *  Management request which represents an actionable request, such as order entry or modification.
 */
message ManagementRequest {
  // Requests's correlation ID.
  optional string correlation_id = 1 [
    (energy.m7t.validation.v7.mandatory) = true
  ];

  // UserID of the target user in case of On-behalf trading (see On-behalf Trading chapter in DFS180).
  optional int32 on_behalf_user_id = 2 [
    (energy.m7t.validation.v7.min_value) = 0
  ];

  oneof content {
    // It is mandatory to provide content.
    option (energy.m7t.validation.v7.mandatory_oneof) = true;

    // Order Entry request.
    dbag.energy.m7t.management.request.v7.OrderEntry order_entry = 3;

    // Order Modification request.
    dbag.energy.m7t.management.request.v7.OrderModify order_modify = 4;
  }
}
