mirror of
https://github.com/hanzokms/terraform-provider.git
synced 2026-10-30 20:29:45 +00:00
111 lines
3.3 KiB
Go
111 lines
3.3 KiB
Go
package kmsclient
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/hanzokms/terraform-provider/internal/errors"
|
|
"net/http"
|
|
)
|
|
|
|
type DynamicSecretProvider string
|
|
|
|
const (
|
|
DynamicSecretProviderSQLDatabase DynamicSecretProvider = "sql-database"
|
|
DynamicSecretProviderAWSIAM DynamicSecretProvider = "aws-iam"
|
|
DynamicSecretProviderKubernetes DynamicSecretProvider = "kubernetes"
|
|
DynamicSecretProviderMongoAtlas DynamicSecretProvider = "mongo-db-atlas"
|
|
DynamicSecretProviderMongoDb DynamicSecretProvider = "mongo-db"
|
|
)
|
|
|
|
const (
|
|
operationCreateDynamicSecret = "CallCreateDynamicSecret"
|
|
operationGetDynamicSecretByName = "CallGetDynamicSecretByName"
|
|
operationUpdateDynamicSecret = "CallUpdateDynamicSecret"
|
|
operationDeleteDynamicSecret = "CallDeleteDynamicSecret"
|
|
)
|
|
|
|
func (client Client) CreateDynamicSecret(request CreateDynamicSecretRequest) (DynamicSecret, error) {
|
|
var body CreateDynamicSecretResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&body).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
SetBody(request).
|
|
Post("api/v1/dynamic-secrets")
|
|
|
|
if err != nil {
|
|
return DynamicSecret{}, errors.NewGenericRequestError(operationCreateDynamicSecret, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return DynamicSecret{}, errors.NewAPIErrorWithResponse(operationCreateDynamicSecret, response, nil)
|
|
}
|
|
|
|
return body.DynamicSecret, nil
|
|
}
|
|
|
|
func (client Client) GetDynamicSecretByName(request GetDynamicSecretByNameRequest) (DynamicSecret, error) {
|
|
var body GetDynamicSecretByNameResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&body).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
SetQueryParam("projectSlug", request.ProjectSlug).
|
|
SetQueryParam("environmentSlug", request.EnvironmentSlug).
|
|
SetQueryParam("path", request.Path).
|
|
Get(fmt.Sprintf("api/v1/dynamic-secrets/%s", request.Name))
|
|
|
|
if err != nil {
|
|
return DynamicSecret{}, errors.NewGenericRequestError(operationGetDynamicSecretByName, err)
|
|
}
|
|
|
|
if response.StatusCode() == http.StatusNotFound {
|
|
return DynamicSecret{}, ErrNotFound
|
|
}
|
|
|
|
if response.IsError() {
|
|
return DynamicSecret{}, errors.NewAPIErrorWithResponse(operationGetDynamicSecretByName, response, nil)
|
|
}
|
|
|
|
return body.DynamicSecret, nil
|
|
}
|
|
|
|
func (client Client) UpdateDynamicSecret(request UpdateDynamicSecretRequest) (DynamicSecret, error) {
|
|
var body UpdateDynamicSecretResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&body).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
SetBody(request).
|
|
Patch(fmt.Sprintf("api/v1/dynamic-secrets/%s", request.Name))
|
|
|
|
if err != nil {
|
|
return DynamicSecret{}, errors.NewGenericRequestError(operationUpdateDynamicSecret, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return DynamicSecret{}, errors.NewAPIErrorWithResponse(operationUpdateDynamicSecret, response, nil)
|
|
}
|
|
|
|
return body.DynamicSecret, nil
|
|
}
|
|
|
|
func (client Client) DeleteDynamicSecret(request DeleteDynamicSecretRequest) (DynamicSecret, error) {
|
|
var body DeleteDynamicSecretResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&body).
|
|
SetBody(request).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
Delete(fmt.Sprintf("api/v1/dynamic-secrets/%s", request.Name))
|
|
|
|
if err != nil {
|
|
return DynamicSecret{}, errors.NewGenericRequestError(operationDeleteDynamicSecret, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return DynamicSecret{}, errors.NewAPIErrorWithResponse(operationDeleteDynamicSecret, response, nil)
|
|
}
|
|
|
|
return body.DynamicSecret, nil
|
|
}
|