---
title: "Updates an existing Runbook"
method: PUT
path: "/{spaceId}/projects/{projectId}/{gitRef}/runbooks/{id}"
tags: ["Runbooks"]
---

# Updates an existing Runbook

`PUT /{spaceId}/projects/{projectId}/{gitRef}/runbooks/{id}`

## Path parameters

- `spaceId` string, required
- `projectId` string, required
- `gitRef` string, required
- `id` string, required

## Request body

- ModifyRunbookInGitCommand
  - `CancelQueuedTasks` boolean
  - `CancelRunningTasks` boolean
  - `ChangeDescription` string
  - `ConnectivityPolicy` DeploymentConnectivityPolicy
    - `AllowDeploymentsToNoTargets` boolean
    - `ExcludeUnhealthyTargets` boolean
    - `SkipMachineBehavior` 'None' | 'SkipUnavailableMachines'
    - `TargetRoles` string[]
  - `DefaultGuidedFailureMode` 'EnvironmentDefault' | 'Off' | 'On'
  - `Description` string
  - `Environments` string[]
  - `EnvironmentScope` 'All' | 'Specified' | 'FromProjectLifecycles'
  - `FailTargetDiscovery` boolean
  - `ForcePackageDownload` boolean
  - `GitRef` string, required
  - `Id` string, required
  - `MultiTenancyMode` 'Untenanted' | 'TenantedOrUntenanted' | 'Tenanted'
  - `Name` string, required
  - `ProjectId` string, required
  - `PublishedRunbookSnapshotId` string
  - `RunbookProcessId` string
  - `RunbookTags` string[]
  - `RunRetentionPolicy` RunbookRetentionPolicy, required
    - `QuantityToKeep` integer
    - `ShouldKeepForever` boolean
    - `Strategy` string
    - `Unit` 'Days' | 'Items'
  - `Slug` string
  - `SpaceId` string, required

## Response `200`

Confirmation that the Runbook has been modified, containing the updated Runbook

- RunbookResource
  - `CancelQueuedTasks` boolean
  - `CancelRunningTasks` boolean
  - `ConnectivityPolicy` DeploymentConnectivityPolicy
    - `AllowDeploymentsToNoTargets` boolean
    - `ExcludeUnhealthyTargets` boolean
    - `SkipMachineBehavior` 'None' | 'SkipUnavailableMachines'
    - `TargetRoles` string[]
  - `DefaultGuidedFailureMode` 'EnvironmentDefault' | 'Off' | 'On'
  - `Description` string
  - `Environments` string[]
  - `EnvironmentScope` 'All' | 'Specified' | 'FromProjectLifecycles'
  - `FailTargetDiscovery` boolean
  - `ForcePackageDownload` boolean
  - `Id` string
  - `LastModifiedBy` string
  - `LastModifiedOn` string, date-time
  - `Links` object
  - `MultiTenancyMode` 'Untenanted' | 'TenantedOrUntenanted' | 'Tenanted'
  - `Name` string
  - `ProjectId` string
  - `PublishedRunbookSnapshotId` string
  - `RunbookProcessId` string
  - `RunbookTags` string[]
  - `RunRetentionPolicy` RunbookRetentionPolicy
    - `QuantityToKeep` integer
    - `ShouldKeepForever` boolean
    - `Strategy` string
    - `Unit` 'Days' | 'Items'
  - `Slug` string
  - `SpaceId` string

## Other responses

- `400` — Bad request. Either the payload was not structurally valid or business rules did not permit the operation.
- `404` — Not found. One or more of the entities involved in the operation was not found.

---

[API](https://skmtc.net/octopus/apis/octopus-server-api.md) · [All operations](https://skmtc.net/octopus/apis/octopus-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/octopus/octopus-server-api/versions/bc9158facfc7/schema)
