github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/csbs/v1/backup/ExecBackupPolicy.go (about) 1 package backup 2 3 import ( 4 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/build" 6 "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" 7 ) 8 9 type CheckpointOpts struct { 10 // Backup policy ID. Refer to the backup policy ID that is returned by the API of 2.2.5 Querying the Backup Policy List. 11 PlanId string `json:"plan_id"` 12 // Backup parameters 13 Parameters CheckpointParam `json:"parameters"` 14 } 15 16 type CheckpointParam struct { 17 // Whether automatic trigger is enabled 18 AutoTrigger bool `json:"auto_trigger"` 19 // ID list of resources to be backed up 20 Resources []string `json:"resources"` 21 } 22 23 func ExecBackupPolicy(client *golangsdk.ServiceClient, opts CheckpointOpts) (*Checkpoint, error) { 24 b, err := build.RequestBody(opts, "checkpoint") 25 if err != nil { 26 return nil, err 27 } 28 29 // POST https://{endpoint}/v1/{project_id}/providers/{provider_id}/checkpoints 30 raw, err := client.Post(client.ServiceURL("providers", ProviderID, "checkpoints"), b, nil, &golangsdk.RequestOpts{ 31 OkCodes: []int{200}, 32 }) 33 if err != nil { 34 return nil, err 35 } 36 37 var res Checkpoint 38 err = extract.IntoStructPtr(raw.Body, &res, "checkpoint") 39 return &res, err 40 }