{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/agentstack-tech/json-schema/agentstack-tech-generation-settings-patch-schema.json",
  "title": "GenerationSettingsPatch",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/agentstack-tech-openapi.json#/components/schemas/GenerationSettingsPatch",
  "properties": {
    "auto_generation_mode": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Generation Mode"
    },
    "auto_checkpoint_before_promote": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Checkpoint Before Promote"
    },
    "require_gates_passed_on_promote": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Require Gates Passed On Promote"
    },
    "auto_generation_categories": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Generation Categories"
    },
    "auto_generation_soak_minutes": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 1440.0,
          "minimum": 1.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Generation Soak Minutes"
    },
    "auto_generation_require_approval": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Generation Require Approval"
    },
    "auto_generation_approval_mode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Generation Approval Mode",
      "description": "off | at_least_one | min_count | min_percent | manual_only"
    },
    "auto_generation_approval_min_count": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 50.0,
          "minimum": 1.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Generation Approval Min Count"
    },
    "auto_generation_approval_min_percent": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 1.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Generation Approval Min Percent"
    },
    "direct_prod_roles": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Direct Prod Roles"
    },
    "auto_promote_on_all_pass": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Promote On All Pass"
    },
    "auto_promote_strategy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Auto Promote Strategy",
      "description": "immediate | canary | blue_green"
    },
    "canary_auto_route": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Canary Auto Route"
    },
    "canary_error_rate_threshold": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Canary Error Rate Threshold"
    },
    "canary_p99_latency_ms_threshold": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Canary P99 Latency Ms Threshold"
    },
    "canary_watchdog_interval_seconds": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 3600.0,
          "minimum": 10.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Canary Watchdog Interval Seconds"
    }
  },
  "type": "object"
}