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  }