{
  "description": "CompositePodGroupSchedulingPolicy defines the scheduling configuration for a CompositePodGroup. Exactly one policy must be set. The policy is chosen at creation time by setting either the Basic or Gang field. The CompositePodGroup may not change policy after creation. Fields within chosen policy may be updated after creation when their individual fields allow it.",
  "properties": {
    "basic": {
      "description": "CompositeBasicSchedulingPolicy indicates that the groups belonging to the composite group should be scheduled independently.",
      "type": [
        "object",
        "null"
      ]
    },
    "gang": {
      "description": "CompositeGangSchedulingPolicy indicates that the groups belonging to the composite group should be scheduled using all-or-nothing semantics.",
      "properties": {
        "minGroupCount": {
          "description": "minGroupCount is the minimum number of child groups that must be schedulable or scheduled at the same time for the scheduler to admit the entire group. It must be a positive integer. This field is mutable to support workload scaling.\n\nNote that the scheduler operates on an eventually consistent model. Updates to minGroupCount may not be immediately reflected in scheduling decisions due to propagation delays. If minGroupCount is updated while a scheduling cycle is in progress for that group, the new value may not take effect until the next cycle. Moreover, minGroupCount is only enforced during scheduling, meaning that modifications to this field do not affect already-scheduled pods, applying only to those evaluated in future cycles.",
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "minGroupCount"
      ],
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object",
  "x-kubernetes-unions": [
    {
      "fields-to-discriminateBy": {
        "basic": "Basic",
        "gang": "Gang"
      }
    }
  ],
  "$schema": "http://json-schema.org/schema#"
}