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  }