116 lines
3.9 KiB
Go
116 lines
3.9 KiB
Go
package infisical
|
|
|
|
import (
|
|
api "github.com/infisical/go-sdk/packages/api/dynamic_secrets"
|
|
"github.com/infisical/go-sdk/packages/models"
|
|
)
|
|
|
|
type ListDynamicSecretLeasesOptions = api.ListDynamicSecretLeaseV1Request
|
|
type CreateDynamicSecretLeaseOptions = api.CreateDynamicSecretLeaseV1Request
|
|
type DeleteDynamicSecretLeaseOptions = api.DeleteDynamicSecretLeaseV1Request
|
|
type GetDynamicSecretLeaseByIdOptions = api.GetDynamicSecretLeaseByIdV1Request
|
|
type RenewDynamicSecretLeaseOptions = api.RenewDynamicSecretLeaseV1Request
|
|
type ListDynamicSecretsRootCredentialsOptions = api.ListDynamicSecretsV1Request
|
|
type GetDynamicSecretRootCredentialByNameOptions = api.GetDynamicSecretByNameV1Request
|
|
|
|
type DynamicSecretsInterface interface {
|
|
List(options ListDynamicSecretsRootCredentialsOptions) ([]models.DynamicSecret, error)
|
|
GetByName(options GetDynamicSecretRootCredentialByNameOptions) (models.DynamicSecret, error)
|
|
Leases() DynamicSecretLeaseInterface
|
|
}
|
|
|
|
type DynamicSecretLeaseInterface interface {
|
|
List(options ListDynamicSecretLeasesOptions) ([]models.DynamicSecretLease, error)
|
|
Create(options CreateDynamicSecretLeaseOptions) (map[string]any, models.DynamicSecret, models.DynamicSecretLease, error)
|
|
GetById(options GetDynamicSecretLeaseByIdOptions) (models.DynamicSecretLeaseWithDynamicSecret, error)
|
|
DeleteById(options DeleteDynamicSecretLeaseOptions) (models.DynamicSecretLease, error)
|
|
RenewById(options RenewDynamicSecretLeaseOptions) (models.DynamicSecretLease, error)
|
|
}
|
|
|
|
type DynamicSecrets struct {
|
|
client *InfisicalClient
|
|
leases DynamicSecretLeaseInterface
|
|
}
|
|
|
|
func (f *DynamicSecrets) List(options ListDynamicSecretsRootCredentialsOptions) ([]models.DynamicSecret, error) {
|
|
res, err := api.CallListDynamicSecretsV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return res.DynamicSecrets, nil
|
|
}
|
|
|
|
func (f *DynamicSecrets) GetByName(options GetDynamicSecretRootCredentialByNameOptions) (models.DynamicSecret, error) {
|
|
res, err := api.CallGetDynamicSecretByNameV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return models.DynamicSecret{}, err
|
|
}
|
|
|
|
return res.DynamicSecret, nil
|
|
}
|
|
|
|
func (f *DynamicSecrets) Leases() DynamicSecretLeaseInterface {
|
|
return f.leases
|
|
}
|
|
|
|
type DynamicSecretLeases struct {
|
|
client *InfisicalClient
|
|
}
|
|
|
|
func (f *DynamicSecretLeases) List(options ListDynamicSecretLeasesOptions) ([]models.DynamicSecretLease, error) {
|
|
res, err := api.CallListDynamicSecretLeaseV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return res.Leases, nil
|
|
}
|
|
|
|
func (f *DynamicSecretLeases) Create(options CreateDynamicSecretLeaseOptions) (map[string]any, models.DynamicSecret, models.DynamicSecretLease, error) {
|
|
res, err := api.CallCreateDynamicSecretLeaseV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return nil, models.DynamicSecret{}, models.DynamicSecretLease{}, err
|
|
}
|
|
|
|
return res.Data, res.DynamicSecret, res.Lease, nil
|
|
}
|
|
|
|
func (f *DynamicSecretLeases) GetById(options GetDynamicSecretLeaseByIdOptions) (models.DynamicSecretLeaseWithDynamicSecret, error) {
|
|
res, err := api.CallGetByDynamicSecretByIdLeaseV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return models.DynamicSecretLeaseWithDynamicSecret{}, err
|
|
}
|
|
|
|
return res.Lease, nil
|
|
}
|
|
|
|
func (f *DynamicSecretLeases) DeleteById(options DeleteDynamicSecretLeaseOptions) (models.DynamicSecretLease, error) {
|
|
res, err := api.CallDeleteDynamicSecretLeaseV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return models.DynamicSecretLease{}, err
|
|
}
|
|
|
|
return res.Lease, nil
|
|
}
|
|
|
|
func (f *DynamicSecretLeases) RenewById(options RenewDynamicSecretLeaseOptions) (models.DynamicSecretLease, error) {
|
|
res, err := api.CallRenewDynamicSecretLeaseV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return models.DynamicSecretLease{}, err
|
|
}
|
|
|
|
return res.Lease, nil
|
|
}
|
|
|
|
func NewDynamicSecrets(client *InfisicalClient) DynamicSecretsInterface {
|
|
return &DynamicSecrets{client: client, leases: &DynamicSecretLeases{client: client}}
|
|
}
|