Create a rollout
Creates a rollout in the pending state without shifting traffic. Start the rollout in a separate request after reviewing its strategy and metric gates.
Authorization
bearerAuth In: header
Path Parameters
Project identifier.
Endpoint identifier.
Request Body
application/json
Strategy, metric gates, timing, and cleanup policy for shifting traffic between two deployments under one endpoint.
Strategy, metric gates, timing, and cleanup policy for shifting traffic between two deployments under one endpoint.
Deployment that traffic shifts away from.
Deployment that traffic shifts toward.
Canary rollout strategy configuration. Mutually exclusive with blueGreen and rolling.
Blue-green rollout strategy configuration. Mutually exclusive with canary and rolling.
Rolling rollout strategy configuration. Mutually exclusive with canary and blueGreen.
Optional metric gates evaluated after each step's soak. Canary only; rejected on rolling and blue-green rollouts.
Optional final replica count for the source deployment. Defaults to 0, which drains and stops the source.
Optional target replica floor at completion. Must be at least 1 when set; defaults to the source deployment's replica count at create time, or to the source and target deployments' combined replica count when both already stand in the endpoint traffic split after a cancel. The completed target's autoscaling max lands at the landing ceiling, max(this value, the source max, the target's own max); the rollout may lift the target max at first wake, at the first step that needs it, or at completion unless an operator changes max mid-run. The lifted ceiling remains after completion, and PreviewRolloutDefaults reports a coming lift as ROLLOUT_WILL_RAISE_TARGET_MAX. A pre-existing target whose own autoscaling min is higher keeps that floor, reported as FINAL_BELOW_INHERITED_MIN. A target that starts stopped lands exactly at this value; if the source min was higher, PreviewRolloutDefaults reports FINAL_BELOW_SOURCE_MIN.
Response Body
application/json
application/json
curl -X POST "https://example.com/projects/string/endpoints/string/rollouts" \ -H "Content-Type: application/json" \ -d '{ "sourceDeploymentId": "dep_source123", "targetDeploymentId": "dep_target456", "canary": { "steps": [ { "traffic": 25 }, { "traffic": 50 }, { "traffic": 100 } ], "stepInterval": "300s" }, "metrics": [ { "name": "router_latency", "stat": "METRIC_STAT_TYPE_PERCENTILE", "percentile": 95, "thresholdCheck": { "value": 30000, "operator": "THRESHOLD_OPERATOR_LT" }, "window": "300s" } ] }'{ "id": "string", "endpointId": "string", "sourceDeploymentId": "string", "targetDeploymentId": "string", "strategy": "ROLLOUT_STRATEGY_TYPE_ROLLING", "state": "ROLLOUT_STATE_RUNNING", "currentStep": 0, "currentTrafficPercent": 0, "createdAt": "2019-08-24T14:15:22Z", "startedAt": "2019-08-24T14:15:22Z", "completedAt": "2019-08-24T14:15:22Z", "etag": "string", "status": { "totalSteps": 0, "condition": { "category": "ROLLOUT_FAILURE_CATEGORY_METRIC_REGRESSION", "message": "string", "atStep": 0, "observedAt": "2019-08-24T14:15:22Z", "metrics": [ { "name": "string", "stat": "METRIC_STAT_TYPE_AVG", "percentile": 0, "check": "METRIC_CHECK_TYPE_THRESHOLD", "sourceValue": 0, "targetValue": 0, "threshold": 0, "operator": "THRESHOLD_OPERATOR_GT", "maxRegressionPercent": 0, "direction": "REGRESSION_DIRECTION_HIGHER_IS_WORSE", "verdict": "METRIC_VERDICT_PASS", "failureReason": "string" } ], "type": "CapacityLimited" }, "steps": [ { "stepIndex": 0, "targetTrafficPercent": 0, "state": "ROLLOUT_STEP_STATE_PENDING", "metrics": [ { "name": "string", "stat": "METRIC_STAT_TYPE_AVG", "percentile": 0, "check": "METRIC_CHECK_TYPE_THRESHOLD", "sourceValue": 0, "targetValue": 0, "threshold": 0, "operator": "THRESHOLD_OPERATOR_GT", "maxRegressionPercent": 0, "direction": "REGRESSION_DIRECTION_HIGHER_IS_WORSE", "verdict": "METRIC_VERDICT_PASS", "failureReason": "string" } ], "startedAt": "2019-08-24T14:15:22Z", "completedAt": "2019-08-24T14:15:22Z", "failureReason": "string" } ], "updatedAt": "2019-08-24T14:15:22Z", "conditions": [ { "category": "ROLLOUT_FAILURE_CATEGORY_METRIC_REGRESSION", "message": "string", "atStep": 0, "observedAt": "2019-08-24T14:15:22Z", "metrics": [ { "name": "string", "stat": "METRIC_STAT_TYPE_AVG", "percentile": 0, "check": "METRIC_CHECK_TYPE_THRESHOLD", "sourceValue": 0, "targetValue": 0, "threshold": 0, "operator": "THRESHOLD_OPERATOR_GT", "maxRegressionPercent": 0, "direction": "REGRESSION_DIRECTION_HIGHER_IS_WORSE", "verdict": "METRIC_VERDICT_PASS", "failureReason": "string" } ], "type": "CapacityLimited" } ] }, "pauseInfo": { "reason": "string", "pausedAt": "2019-08-24T14:15:22Z" }}List endpoint rollouts GET
Lists rollout histories for an endpoint. Use `filter=ROLLOUT_FILTER_ACTIVE` to return only the active rollout, if one exists.
Preview rollout defaults POST
Returns the values a create request would pick for any field left unset, plus the capacity context needed to display them, without creating a rollout. Responses are display state only and re-validated authoritatively at create and start; do not copy response values back into a create request.