syntax = "proto3";

package armonik.api.grpc.v1.partitions;

option csharp_namespace = "ArmoniK.Api.gRPC.V1.Partitions";

/**
 * Represents every available field in a partition.
 */
enum PartitionRawEnumField {
  PARTITION_RAW_ENUM_FIELD_UNSPECIFIED = 0; /** Unspecified. */
  PARTITION_RAW_ENUM_FIELD_ID = 1; /** The partition ID. */
  PARTITION_RAW_ENUM_FIELD_PARENT_PARTITION_IDS = 2; /** The parent partition IDs. */
  PARTITION_RAW_ENUM_FIELD_POD_RESERVED = 3; /** Whether the partition is reserved for pods. */
  PARTITION_RAW_ENUM_FIELD_POD_MAX = 4; /** The maximum number of pods that can be used by sessions using the partition. */
  PARTITION_RAW_ENUM_FIELD_PREEMPTION_PERCENTAGE = 5; /** The percentage of the partition that can be preempted. */
  PARTITION_RAW_ENUM_FIELD_PRIORITY = 6; /** The priority of the partition. */
}

/**
 * This message is used to wrap the enum in order to facilitate the 'oneOf' generation.
 */
message PartitionRawField {
  PartitionRawEnumField field = 1;
}

message PartitionField {
  oneof field {
    PartitionRawField partition_raw_field = 1; /** The partition raw field. */
  }
}
