mirror of
https://github.com/hanzokms/terraform-provider.git
synced 2026-10-30 20:29:45 +00:00
100 lines
3.2 KiB
Go
100 lines
3.2 KiB
Go
package kmsclient
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/hanzokms/terraform-provider/internal/errors"
|
|
"net/http"
|
|
)
|
|
|
|
const (
|
|
operationCreateSecretApprovalPolicy = "CallCreateSecretApprovalPolicy"
|
|
operationGetSecretApprovalPolicyByID = "CallGetSecretApprovalPolicyByID"
|
|
operationUpdateSecretApprovalPolicy = "CallUpdateSecretApprovalPolicy"
|
|
operationDeleteSecretApprovalPolicy = "CallDeleteSecretApprovalPolicy"
|
|
)
|
|
|
|
func (client Client) CreateSecretApprovalPolicy(request CreateSecretApprovalPolicyRequest) (CreateSecretApprovalPolicyResponse, error) {
|
|
var body CreateSecretApprovalPolicyResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&body).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
SetBody(request).
|
|
Post("api/v1/secret-approvals")
|
|
|
|
if err != nil {
|
|
return CreateSecretApprovalPolicyResponse{}, errors.NewGenericRequestError(operationCreateSecretApprovalPolicy, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return CreateSecretApprovalPolicyResponse{}, errors.NewAPIErrorWithResponse(operationCreateSecretApprovalPolicy, response, nil)
|
|
}
|
|
|
|
return body, nil
|
|
}
|
|
|
|
func (client Client) GetSecretApprovalPolicyByID(request GetSecretApprovalPolicyByIDRequest) (GetSecretApprovalPolicyByIDResponse, error) {
|
|
var body GetSecretApprovalPolicyByIDResponse
|
|
|
|
httpRequest := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&body).
|
|
SetHeader("User-Agent", USER_AGENT)
|
|
|
|
response, err := httpRequest.Get(fmt.Sprintf("api/v1/secret-approvals/%s", request.ID))
|
|
|
|
if response.StatusCode() == http.StatusNotFound {
|
|
return GetSecretApprovalPolicyByIDResponse{}, ErrNotFound
|
|
}
|
|
|
|
if err != nil {
|
|
return GetSecretApprovalPolicyByIDResponse{}, errors.NewGenericRequestError(operationGetSecretApprovalPolicyByID, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return GetSecretApprovalPolicyByIDResponse{}, errors.NewAPIErrorWithResponse(operationGetSecretApprovalPolicyByID, response, nil)
|
|
}
|
|
|
|
return body, nil
|
|
}
|
|
|
|
func (client Client) UpdateSecretApprovalPolicy(request UpdateSecretApprovalPolicyRequest) (UpdateSecretApprovalPolicyResponse, error) {
|
|
var body UpdateSecretApprovalPolicyResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&body).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
SetBody(request).
|
|
Patch(fmt.Sprintf("api/v1/secret-approvals/%s", request.ID))
|
|
|
|
if err != nil {
|
|
return UpdateSecretApprovalPolicyResponse{}, errors.NewGenericRequestError(operationUpdateSecretApprovalPolicy, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return UpdateSecretApprovalPolicyResponse{}, errors.NewAPIErrorWithResponse(operationUpdateSecretApprovalPolicy, response, nil)
|
|
}
|
|
|
|
return body, nil
|
|
}
|
|
|
|
func (client Client) DeleteSecretApprovalPolicy(request DeleteSecretApprovalPolicyRequest) (DeleteSecretApprovalPolicyResponse, error) {
|
|
var responseData DeleteSecretApprovalPolicyResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&responseData).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
SetBody(request).
|
|
Delete(fmt.Sprintf("/api/v1/secret-approvals/%s", request.ID))
|
|
|
|
if err != nil {
|
|
return DeleteSecretApprovalPolicyResponse{}, errors.NewGenericRequestError(operationDeleteSecretApprovalPolicy, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return DeleteSecretApprovalPolicyResponse{}, errors.NewAPIErrorWithResponse(operationDeleteSecretApprovalPolicy, response, nil)
|
|
}
|
|
|
|
return responseData, nil
|
|
}
|