github.com/aiven/aiven-go-client@v1.36.0/service_task_acc.go (about) 1 package aiven 2 3 type ( 4 // ServiceTaskHandler Aiven go-client handler for Service tesks 5 ServiceTaskHandler struct { 6 client *Client 7 } 8 9 // ServiceTaskResponse represents service task response 10 ServiceTaskResponse struct { 11 APIResponse 12 Task ServiceTask `json:"task"` 13 } 14 15 // ServiceTask represents a service task 16 ServiceTask struct { 17 CreateTime string `json:"create_time"` 18 Result string `json:"result"` 19 TaskType string `json:"task_type"` 20 Success *bool `json:"success"` 21 SourcePgVersion string `json:"source_pg_version,omitempty"` 22 TargetPgVersion string `json:"target_pg_version,omitempty"` 23 Id string `json:"task_id,omitempty"` 24 } 25 26 // ServiceTaskRequest represents service task request 27 ServiceTaskRequest struct { 28 TargetVersion string `json:"target_version"` 29 TaskType string `json:"task_type"` 30 } 31 ) 32 33 // Create creates a bew service task 34 func (h ServiceTaskHandler) Create(project, service string, r ServiceTaskRequest) (*ServiceTaskResponse, error) { 35 path := buildPath("project", project, "service", service, "task") 36 bts, err := h.client.doPostRequest(path, r) 37 if err != nil { 38 return nil, err 39 } 40 41 var rsp ServiceTaskResponse 42 if errR := checkAPIResponse(bts, &rsp); errR != nil { 43 return nil, errR 44 } 45 46 return &rsp, nil 47 } 48 49 // Get retrieves a new service task 50 func (h ServiceTaskHandler) Get(project, service, id string) (*ServiceTaskResponse, error) { 51 path := buildPath("project", project, "service", service, "task", id) 52 bts, err := h.client.doGetRequest(path, nil) 53 if err != nil { 54 return nil, err 55 } 56 57 var rsp ServiceTaskResponse 58 if errR := checkAPIResponse(bts, &rsp); errR != nil { 59 return nil, errR 60 } 61 62 return &rsp, nil 63 }