curl --request POST \
--url https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle \
--header 'Content-Type: application/json' \
--data '
{
"sourceBundleId": "<string>",
"nameSuffix": "<string>",
"sourceEnforcePoliciesFor": "App"
}
'import requests
url = "https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle"
payload = {
"sourceBundleId": "<string>",
"nameSuffix": "<string>",
"sourceEnforcePoliciesFor": "App"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
sourceBundleId: '<string>',
nameSuffix: '<string>',
sourceEnforcePoliciesFor: 'App'
})
};
fetch('https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'sourceBundleId' => '<string>',
'nameSuffix' => '<string>',
'sourceEnforcePoliciesFor' => 'App'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle"
payload := strings.NewReader("{\n \"sourceBundleId\": \"<string>\",\n \"nameSuffix\": \"<string>\",\n \"sourceEnforcePoliciesFor\": \"App\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle")
.header("Content-Type", "application/json")
.body("{\n \"sourceBundleId\": \"<string>\",\n \"nameSuffix\": \"<string>\",\n \"sourceEnforcePoliciesFor\": \"App\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"sourceBundleId\": \"<string>\",\n \"nameSuffix\": \"<string>\",\n \"sourceEnforcePoliciesFor\": \"App\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"attachments": [
{
"approvalTimelineMap": {},
"createdAt": "<string>",
"createdBy": {},
"id": "<string>",
"identifier": {}
}
],
"classificationValue": "<string>",
"commentsCount": 123,
"createdAt": "<string>",
"createdBy": {},
"currentStageInfo": {
"openFindingsCount": 123,
"pendingApprovalsCount": 123
},
"enforcedPolicyIds": [
"<string>"
],
"evidenceRestricted": true,
"gates": [
{
"approvals": [
{
"id": "<string>",
"name": "<string>",
"stageApprovalId": "<string>"
}
],
"bundleId": "<string>",
"id": "<string>",
"isOpen": true,
"name": "<string>",
"policyGateId": "<string>",
"policyId": "<string>",
"policyVersionId": "<string>",
"reason": "<string>",
"resources": [
{
"failOpen": true,
"parameters": {}
}
]
}
],
"hasRevalidationSchedule": true,
"name": "<string>",
"policies": [
{
"allowProjectApprovers": true,
"bundleId": "<string>",
"classificationValue": "<string>",
"compliantToCurrentStage": true,
"createdAt": "<string>",
"deactivatedAt": "<string>",
"enforceSequentialOrder": true,
"hasRevalidationSchedule": true,
"isLatestVersion": true,
"isPolicyArchived": true,
"policyId": "<string>",
"policyName": "<string>",
"policyVersion": "<string>",
"policyVersionId": "<string>",
"stage": "<string>",
"stageAssignee": {
"id": "<string>",
"name": "<string>"
},
"upgradeRequired": true
}
],
"policyId": "<string>",
"policyName": "<string>",
"policyVersion": "<string>",
"policyVersionId": "<string>",
"projectId": "<string>",
"projectName": "<string>",
"projectOwner": "<string>",
"stage": "<string>",
"stageApprovals": [
{
"approvers": [
{
"editable": true,
"id": "<string>",
"name": "<string>",
"showByDefault": true,
"fromOrganizationUserId": "<string>",
"isOrganizationUser": true
}
],
"evidence": {
"artifacts": [
{
"details": {},
"id": "<string>",
"policyEntityId": "<string>",
"required": true,
"visibilityRule": "<string>",
"visible": true
}
],
"createdAt": "<string>",
"description": "<string>",
"externalId": "<string>",
"id": "<string>",
"name": "<string>",
"policyId": "<string>",
"policyVersionId": "<string>",
"visible": true
},
"id": "<string>",
"name": "<string>",
"policyEntityId": "<string>",
"revalidationConfig": {
"openWindowDaysBefore": 2,
"recurring": {
"every": 2,
"startDate": "<string>"
}
}
}
],
"stageAssignee": {
"id": "<string>",
"name": "<string>"
},
"stages": [
{
"assignedAt": "<string>",
"assignee": {
"id": "<string>",
"name": "<string>"
},
"bundleId": "<string>",
"stage": {
"approvals": [
{
"approvers": [
{
"editable": true,
"id": "<string>",
"name": "<string>",
"showByDefault": true,
"fromOrganizationUserId": "<string>",
"isOrganizationUser": true
}
],
"evidence": {
"artifacts": [
{
"details": {},
"id": "<string>",
"policyEntityId": "<string>",
"required": true,
"visibilityRule": "<string>",
"visible": true
}
],
"createdAt": "<string>",
"description": "<string>",
"externalId": "<string>",
"id": "<string>",
"name": "<string>",
"policyId": "<string>",
"policyVersionId": "<string>",
"visible": true
},
"id": "<string>",
"name": "<string>",
"policyEntityId": "<string>",
"revalidationConfig": {
"openWindowDaysBefore": 2,
"recurring": {
"every": 2,
"startDate": "<string>"
}
}
}
],
"evidenceSet": [
{
"artifacts": [
{
"details": {},
"id": "<string>",
"policyEntityId": "<string>",
"required": true,
"visibilityRule": "<string>",
"visible": true
}
],
"createdAt": "<string>",
"description": "<string>",
"externalId": "<string>",
"id": "<string>",
"name": "<string>",
"policyId": "<string>",
"policyVersionId": "<string>",
"visible": true
}
],
"id": "<string>",
"name": "<string>",
"notifyOnTransition": true,
"policyEntityId": "<string>",
"policyVersionId": "<string>"
},
"stageId": "<string>"
}
]
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}Snapshot a bundle into an evidence-restricted copy and revoke the source's gated approvals
Create an evidence-restricted copy of source named <source.Name><nameSuffix>, appending a number (e.g. 2) on conflict. Attachments, drafts, results, stage assignees, and approvals are copied; findings and comments are not.
The source’s gated approvals are revoked (reset to PendingSubmission) so it can begin a new approval cycle.
If sourceEnforcePoliciesFor is set (e.g. App), the source (not the snapshot) is synced to that target’s current mandatory policies after the snapshot is taken.
curl --request POST \
--url https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle \
--header 'Content-Type: application/json' \
--data '
{
"sourceBundleId": "<string>",
"nameSuffix": "<string>",
"sourceEnforcePoliciesFor": "App"
}
'import requests
url = "https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle"
payload = {
"sourceBundleId": "<string>",
"nameSuffix": "<string>",
"sourceEnforcePoliciesFor": "App"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
sourceBundleId: '<string>',
nameSuffix: '<string>',
sourceEnforcePoliciesFor: 'App'
})
};
fetch('https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'sourceBundleId' => '<string>',
'nameSuffix' => '<string>',
'sourceEnforcePoliciesFor' => 'App'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle"
payload := strings.NewReader("{\n \"sourceBundleId\": \"<string>\",\n \"nameSuffix\": \"<string>\",\n \"sourceEnforcePoliciesFor\": \"App\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle")
.header("Content-Type", "application/json")
.body("{\n \"sourceBundleId\": \"<string>\",\n \"nameSuffix\": \"<string>\",\n \"sourceEnforcePoliciesFor\": \"App\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/governance/v1/rpc/snapshot-bundle")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"sourceBundleId\": \"<string>\",\n \"nameSuffix\": \"<string>\",\n \"sourceEnforcePoliciesFor\": \"App\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"attachments": [
{
"approvalTimelineMap": {},
"createdAt": "<string>",
"createdBy": {},
"id": "<string>",
"identifier": {}
}
],
"classificationValue": "<string>",
"commentsCount": 123,
"createdAt": "<string>",
"createdBy": {},
"currentStageInfo": {
"openFindingsCount": 123,
"pendingApprovalsCount": 123
},
"enforcedPolicyIds": [
"<string>"
],
"evidenceRestricted": true,
"gates": [
{
"approvals": [
{
"id": "<string>",
"name": "<string>",
"stageApprovalId": "<string>"
}
],
"bundleId": "<string>",
"id": "<string>",
"isOpen": true,
"name": "<string>",
"policyGateId": "<string>",
"policyId": "<string>",
"policyVersionId": "<string>",
"reason": "<string>",
"resources": [
{
"failOpen": true,
"parameters": {}
}
]
}
],
"hasRevalidationSchedule": true,
"name": "<string>",
"policies": [
{
"allowProjectApprovers": true,
"bundleId": "<string>",
"classificationValue": "<string>",
"compliantToCurrentStage": true,
"createdAt": "<string>",
"deactivatedAt": "<string>",
"enforceSequentialOrder": true,
"hasRevalidationSchedule": true,
"isLatestVersion": true,
"isPolicyArchived": true,
"policyId": "<string>",
"policyName": "<string>",
"policyVersion": "<string>",
"policyVersionId": "<string>",
"stage": "<string>",
"stageAssignee": {
"id": "<string>",
"name": "<string>"
},
"upgradeRequired": true
}
],
"policyId": "<string>",
"policyName": "<string>",
"policyVersion": "<string>",
"policyVersionId": "<string>",
"projectId": "<string>",
"projectName": "<string>",
"projectOwner": "<string>",
"stage": "<string>",
"stageApprovals": [
{
"approvers": [
{
"editable": true,
"id": "<string>",
"name": "<string>",
"showByDefault": true,
"fromOrganizationUserId": "<string>",
"isOrganizationUser": true
}
],
"evidence": {
"artifacts": [
{
"details": {},
"id": "<string>",
"policyEntityId": "<string>",
"required": true,
"visibilityRule": "<string>",
"visible": true
}
],
"createdAt": "<string>",
"description": "<string>",
"externalId": "<string>",
"id": "<string>",
"name": "<string>",
"policyId": "<string>",
"policyVersionId": "<string>",
"visible": true
},
"id": "<string>",
"name": "<string>",
"policyEntityId": "<string>",
"revalidationConfig": {
"openWindowDaysBefore": 2,
"recurring": {
"every": 2,
"startDate": "<string>"
}
}
}
],
"stageAssignee": {
"id": "<string>",
"name": "<string>"
},
"stages": [
{
"assignedAt": "<string>",
"assignee": {
"id": "<string>",
"name": "<string>"
},
"bundleId": "<string>",
"stage": {
"approvals": [
{
"approvers": [
{
"editable": true,
"id": "<string>",
"name": "<string>",
"showByDefault": true,
"fromOrganizationUserId": "<string>",
"isOrganizationUser": true
}
],
"evidence": {
"artifacts": [
{
"details": {},
"id": "<string>",
"policyEntityId": "<string>",
"required": true,
"visibilityRule": "<string>",
"visible": true
}
],
"createdAt": "<string>",
"description": "<string>",
"externalId": "<string>",
"id": "<string>",
"name": "<string>",
"policyId": "<string>",
"policyVersionId": "<string>",
"visible": true
},
"id": "<string>",
"name": "<string>",
"policyEntityId": "<string>",
"revalidationConfig": {
"openWindowDaysBefore": 2,
"recurring": {
"every": 2,
"startDate": "<string>"
}
}
}
],
"evidenceSet": [
{
"artifacts": [
{
"details": {},
"id": "<string>",
"policyEntityId": "<string>",
"required": true,
"visibilityRule": "<string>",
"visible": true
}
],
"createdAt": "<string>",
"description": "<string>",
"externalId": "<string>",
"id": "<string>",
"name": "<string>",
"policyId": "<string>",
"policyVersionId": "<string>",
"visible": true
}
],
"id": "<string>",
"name": "<string>",
"notifyOnTransition": true,
"policyEntityId": "<string>",
"policyVersionId": "<string>"
},
"stageId": "<string>"
}
]
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}{
"code": "BUNDLE_REQUIRES_POLICY",
"message": "<string>"
}Body
Request for snapshotting a bundle
Response
OK
Active, Archived, Complete Show child attributes
Show child attributes
The classification value of the primary policy
Show child attributes
Show child attributes
Policy IDs mandated by a PolicyEnforcer; these cannot be deactivated
Show child attributes
Show child attributes
Whether the bundle has an active revalidation schedule
Show child attributes
Show child attributes
The ID of the primary policy
The version of the primary policy
The version ID of the primary policy
The stage of the primary policy
Show child attributes
Show child attributes
The assignee to the stage of the primary policy
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Related topics
Clone a bundle into a new, standalone bundleCopy the transferable results from one bundle to anotherApprovalsList bundlesWas this page helpful?