> ## Documentation Index
> Fetch the complete documentation index at: https://docs.graphiant.com/llms.txt
> Use this file to discover all available pages before exploring further.

# /v1/software/rollouts

> Modify update rollout

## OpenAPI

````json PUT /v1/software/rollouts
{
  "openapi": "3.0.0",
  "info": {
    "title": "Graphiant APIs",
    "version": "1.0.0",
    "description": "Graphiant API documentation."
  },
  "servers": [
    {
      "url": "https://api.graphiant.com"
    }
  ],
  "security": [
    {
      "jwtAuth": []
    }
  ],
  "tags": [],
  "paths": {
    "/v1/software/rollouts": {
      "put": {
        "security": [
          {
            "jwtAuth": []
          }
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token. Format: Bearer <your_token_here>"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/v1SoftwareRolloutsPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1SoftwareRolloutsPutResponse"
                }
              }
            }
          }
        },
        "description": "Modify update rollout"
      }
    }
  },
  "components": {
    "schemas": {
      "v1SoftwareRolloutsPutRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 42,
            "description": "Rollout identifier to update. (required)"
          },
          "rolloutConfig": {
            "$ref": "#/components/schemas/upgradeRolloutConfig"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "rolloutConfig"
        ]
      },
      "v1SoftwareRolloutsPutResponse": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "upgradeRolloutConfig": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "example": "InstallActivate",
            "description": "Upgrade action to perform (e.g. install+activate, install only, activate, auto-upgrade). (required)"
          },
          "description": {
            "type": "string",
            "example": "Upgrade branch sites to release 25.4",
            "description": "Optional longer description of the rollout."
          },
          "deviceIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64",
              "example": "1001,1002,1003",
              "description": "Device IDs included in the rollout (field name retained for API compatibility)."
            }
          },
          "name": {
            "type": "string",
            "example": "Q2 edge upgrade",
            "description": "Human-readable rollout name unique within the enterprise. (required)"
          },
          "release": {
            "type": "string",
            "example": "Recommended",
            "description": "Target software release for devices in this rollout. (required)"
          },
          "schedule": {
            "$ref": "#/components/schemas/upgradeRecurringSchedule"
          }
        },
        "additionalProperties": false,
        "required": [
          "action",
          "name",
          "release"
        ]
      },
      "upgradeRecurringSchedule": {
        "type": "object",
        "properties": {
          "monthly": {
            "$ref": "#/components/schemas/upgradeMonthlyRecurrence"
          },
          "startsAtTs": {
            "$ref": "#/components/schemas/googleProtobufTimestamp"
          },
          "weekly": {
            "$ref": "#/components/schemas/upgradeWeeklyRecurrence"
          },
          "yearly": {
            "$ref": "#/components/schemas/upgradeYearlyRecurrence"
          }
        },
        "additionalProperties": false,
        "required": [
          "startsAtTs"
        ]
      },
      "upgradeMonthlyRecurrence": {
        "type": "object",
        "properties": {
          "date": {
            "type": "integer",
            "format": "int32",
            "example": 15,
            "minimum": 0,
            "description": "Calendar day of month (1–31) for fixed-date monthly recurrence; optional if ordinal and weekday are set."
          },
          "ordinal": {
            "type": "string",
            "example": "Second",
            "description": "For nth-weekday-of-month style recurrence; use together with weekday, or use date instead."
          },
          "weekday": {
            "type": "string",
            "example": "Tuesday",
            "description": "Weekday paired with ordinal for monthly nth-weekday recurrence; optional if date is set."
          }
        },
        "additionalProperties": false
      },
      "googleProtobufTimestamp": {
        "type": "object",
        "properties": {
          "nanos": {
            "type": "integer",
            "format": "int32",
            "example": 123
          },
          "seconds": {
            "type": "integer",
            "format": "int64",
            "example": 1234567891011
          }
        },
        "additionalProperties": false
      },
      "upgradeWeeklyRecurrence": {
        "type": "object",
        "properties": {
          "interval": {
            "type": "integer",
            "format": "int32",
            "example": 2,
            "minimum": 0,
            "description": "Which occurrence of the weekday in the month applies for weekly-style recurrence (1–52, aligned with schedule validation). (required)"
          },
          "weekday": {
            "type": "string",
            "example": "Monday",
            "description": "Day of week for the weekly recurrence. (required)"
          }
        },
        "additionalProperties": false,
        "required": [
          "interval",
          "weekday"
        ]
      },
      "upgradeYearlyRecurrence": {
        "type": "object",
        "properties": {
          "date": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "minimum": 0,
            "description": "Calendar day (1–31) for fixed month+date yearly recurrence."
          },
          "month": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "minimum": 0,
            "description": "Month of year (1–12) for yearly recurrence. (required)"
          },
          "ordinal": {
            "type": "string",
            "example": "First",
            "description": "For nth-weekday-in-month yearly recurrence; use with weekday, or use month + date."
          },
          "weekday": {
            "type": "string",
            "example": "Wednesday",
            "description": "Weekday paired with ordinal for yearly recurrence."
          }
        },
        "additionalProperties": false,
        "required": [
          "month"
        ]
      }
    },
    "securitySchemes": {
      "jwtAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "authorization",
        "description": "Use `Bearer <token>`"
      }
    }
  }
}
````

