Vault | Golang SDK
Asymmetric generate
func (v *vault) AsymmetricGenerate(ctx context.Context, input *AsymmetricGenerateRequest) (*pangea.PangeaResponse[AsymmetricGenerateResult], error)Generate an asymmetric key.
input := &vault.AsymmetricGenerateRequest{
Algorithm: vault.AArsa2048_pkcs1v15_sha256,
Purpose: vault.KPsigning,
CommonGenerateRequest: vault.CommonGenerateRequest{
Name: pangea.StringValue("my-very-secret-secret"),
Folder: pangea.StringValue("/personal"),
Metadata: vault.Metadata{
"created_by": pangea.StringValue("John Doe"),
"used_in": pangea.StringValue("Google products"),
},
Tags: vault.Tags{
pangea.StringValue("irs_2023"),
pangea.StringValue("personal"),
},
RotationFrequency: pangea.StringValue("10d"),
RotationState: pangea.StringValue("deactivated"),
Expiration: pangea.StringValue("2025-01-01T10:00:00Z"),
},
}
agr, err := vaultcli.AsymmetricGenerate(ctx, input)
Asymmetric store
func (v *vault) AsymmetricStore(ctx context.Context, input *AsymmetricStoreRequest) (*pangea.PangeaResponse[AsymmetricStoreResult], error)Import an asymmetric key.
var PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA8s5JopbEPGBylPBcMK+L5PqHMqPJW/5KYPgBHzZGncc=\n-----END PUBLIC KEY-----"
var PRIVATE_KEY = "private key example"
input := &vault.AsymmetricStoreRequest{
Algorithm: vault.AArsa2048_pkcs1v15_sha256,
PublicKey: vault.EncodedPublicKey(PUBLIC_KEY),
PrivateKey: vault.EncodedPrivateKey(PRIVATE_KEY),
Purpose: vault.KPsigning,
CommonStoreRequest: vault.CommonStoreRequest{
Name: pangea.StringValue("my-very-secret-secret"),
Folder: pangea.StringValue("/personal"),
Metadata: vault.Metadata{
"created_by": pangea.StringValue("John Doe"),
"used_in": pangea.StringValue("Google products"),
},
Tags: vault.Tags{
pangea.StringValue("irs_2023"),
pangea.StringValue("personal"),
},
RotationFrequency: pangea.StringValue("10d"),
RotationState: pangea.StringValue("deactivated"),
Expiration: pangea.StringValue("2025-01-01T10:00:00Z"),
},
}
asr, err := vaultcli.AsymmetricStore(ctx, input)
Decrypt
func (v *vault) Decrypt(ctx context.Context, input *DecryptRequest) (*pangea.PangeaResponse[DecryptResult], error)Decrypt a message using a key.
input := &vault.DecryptRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
CipherText: pangea.StringValue("lJkk0gCLux+Q+rPNqLPEYw=="),
Version: pangea.Int(1),
}
dr, err := vaultcli.Decrypt(ctx, input)
Decrypt structured
func (v *vault) DecryptStructured(ctx context.Context, input *EncryptStructuredRequest) (*pangea.PangeaResponse[EncryptStructuredResult], error)Decrypt parts of a JSON object.
data := map[string]interface{}{
"field1": [4]interface{}{1, 2, "kxcbC9E9IlgVaSCChPWUMgUC3ko=", "6FfI/LCzatLRLNAc8SuBK/TDnGxp"},
"field2": "true",
}
decryptedResponse, err := client.DecryptStructured(
ctx,
&vault.EncryptStructuredRequest{
ID: "pvi_[...]",
StructuredData: data,
Filter: "$.field1[2:4]",
},
)
Delete
func (v *vault) Delete(ctx context.Context, input *DeleteRequest) (*pangea.PangeaResponse[DeleteResult], error)Delete a secret or key.
input := &vault.DeleteRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
}
dr, err := vaultcli.Delete(ctx, input)
Encrypt
func (v *vault) Encrypt(ctx context.Context, input *EncryptRequest) (*pangea.PangeaResponse[EncryptResult], error)Encrypt a message using a key.
msg := "message to encrypt..."
data := base64.StdEncoding.EncodeToString([]byte(msg))
input := &vault.EncryptRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
PlainText: data,
Version: pangea.Int(1),
}
enc, err := vaultcli.Encrypt(ctx, input)
Encrypt structured
func (v *vault) EncryptStructured(ctx context.Context, input *EncryptStructuredRequest) (*pangea.PangeaResponse[EncryptStructuredResult], error)Encrypt parts of a JSON object.
data := map[string]interface{}{
"field1": [4]interface{}{1, 2, "true", "false"},
"field2": "true",
}
encryptedResponse, err := client.EncryptStructured(
ctx,
&vault.EncryptStructuredRequest{
ID: "pvi_[...]",
StructuredData: data,
Filter: "$.field1[2:4]",
},
)
Create
func (v *vault) FolderCreate(ctx context.Context, input *FolderCreateRequest) (*pangea.PangeaResponse[FolderCreateResult], error)Creates a folder.
input := &vault.FolderCreateRequest{
Name: "folder_name",
Folder: "parent/folder/name",
}
enc, err := vaultcli.FolderCreate(ctx, input)
Retrieve
func (v *vault) Get(ctx context.Context, input *GetRequest) (*pangea.PangeaResponse[GetResult], error)Retrieve a secret or key, and any associated information.
input := &vault.GetRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
Version: pangea.StringValue(1),
Verbose: pangea.Bool(true),
VersionState: &vault.IVSactive,
}
gr, err := vaultcli.Get(ctx, input)
JWT Retrieve
func (v *vault) JWKGet(ctx context.Context, input *JWKGetRequest) (*pangea.PangeaResponse[JWKGetResult], error)Retrieve a key in JWK format.
input := &vault.JWKGetRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
}
jr, err := vaultcli.JWKGet(ctx, input)
JWT Sign
func (v *vault) JWTSign(ctx context.Context, input *JWTSignRequest) (*pangea.PangeaResponse[JWTSignResult], error)Sign a JSON Web Token (JWT) using a key.
input := &vault.JWTSignRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
Payload: pangea.StringValue("{\"sub\": \"1234567890\",\"name\": \"John Doe\",\"admin\": true}"),
}
jr, err := vaultcli.JWTSign(ctx, input)
JWT Verify
func (v *vault) JWTVerify(ctx context.Context, input *JWTVerifyRequest) (*pangea.PangeaResponse[JWTVerifyResult], error)Verify the signature of a JSON Web Token (JWT).
input := &vault.JWTVerifyRequest{
JWS: pangea.StringValue("ewogICJhbGciO..."),
}
jr, err := vaultcli.JWTVerify(ctx, input)
Key rotate
func (v *vault) KeyRotate(ctx context.Context, input *KeyRotateRequest) (*pangea.PangeaResponse[KeyRotateResult], error)Manually rotate a symmetric or asymmetric key.
var SYMMETRIC_KEY = "lJkk0gCLux+Q+rPNqLPEYw=="
input := &vault.KeyRotateRequest{
CommonRotateRequest: vault.CommonRotateRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
RotationState: vault.IVSdeactivated,
},
Key: &vault.EncodedSymmetricKey(SYMMETRIC_KEY),
}
krr, err := vaultcli.KeyRotate(ctx, input)
List
func (v *vault) List(ctx context.Context, input *ListRequest) (*pangea.PangeaResponse[ListResult], error)Retrieve a list of secrets, keys and folders, and their associated information.
input := &vault.ListRequest{
Filter: map[string]string{
"folder": "/",
"type": "asymmetric_key",
"name__contains": "test",
"metadata_key1": "value1",
"created_at__lt": "2023-12-12T00:00:00Z",
},
Last: pangea.StringValue("WyIvdGVzdF8yMDdfc3ltbWV0cmljLyJd"),
Size: pangea.IntValue(20),
Order: vault.IOasc,
OrderBy: vault.IOBname,
}
lr, err := vaultcli.List(ctx, input)
Token rotate
func (v *vault) PangeaTokenRotate(ctx context.Context, input *PangeaTokenRotateRequest) (*pangea.PangeaResponse[SecretRotateResult], error)Rotate a Pangea token.
input := &vault.PangeaTokenRotateRequest{
RotationGracePeriod: pangea.StringValue("1d"),
CommonRotateRequest: vault.CommonRotateRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
},
}
trp, err := vaultcli.PangeaTokenRotate(ctx, input)
Pangea token store
func (v *vault) PangeaTokenStore(ctx context.Context, input *PangeaTokenStoreRequest) (*pangea.PangeaResponse[SecretStoreResult], error)Import a secret
input := &vault.PangeaTokenStoreRequest{
Token: pangea.StringValue("ptv_x6fdiizbon6j3bsdvnpmwxsz2aan7fqd"),
CommonStoreRequest: vault.CommonStoreRequest{
Name: pangea.StringValue("my-very-secret-secret"),
Folder: pangea.StringValue("/personal"),
Metadata: vault.Metadata{
"created_by": pangea.StringValue("John Doe"),
"used_in": pangea.StringValue("Google products"),
},
Tags: vault.Tags{
pangea.StringValue("irs_2023"),
pangea.StringValue("personal"),
},
RotationFrequency: pangea.StringValue("10d"),
RotationState: pangea.StringValue("deactivated"),
Expiration: pangea.StringValue("2025-01-01T10:00:00Z"),
},
}
tsr, err := vaultcli.PangeaTokenStore(ctx, input)
Secret rotate
func (v *vault) SecretRotate(ctx context.Context, input *SecretRotateRequest) (*pangea.PangeaResponse[SecretRotateResult], error)Rotate a secret.
input := &vault.SecretRotateRequest{
Secret: pangea.StringValue("12sdfgs4543qv@#%$casd"),
CommonRotateRequest: vault.CommonRotateRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
RotationState vault.IVSdeactivated,
},
}
srr, err := vaultcli.SecretRotate(ctx, input)
Secret store
func (v *vault) SecretStore(ctx context.Context, input *SecretStoreRequest) (*pangea.PangeaResponse[SecretStoreResult], error)Import a secret
input := &vault.SecretStoreRequest{
Secret: pangea.StringValue("12sdfgs4543qv@#%$casd"),
CommonStoreRequest: vault.CommonStoreRequest{
Name: pangea.StringValue("my-very-secret-secret"),
Folder: pangea.StringValue("/personal"),
Metadata: vault.Metadata{
"created_by": pangea.StringValue("John Doe"),
"used_in": pangea.StringValue("Google products"),
},
Tags: vault.Tags{
pangea.StringValue("irs_2023"),
pangea.StringValue("personal"),
},
RotationFrequency: pangea.StringValue("10d"),
RotationState: pangea.StringValue("deactivated"),
Expiration: pangea.StringValue("2025-01-01T10:00:00Z"),
},
}
ssr, err := vaultcli.SecretStore(ctx, input)
Sign
func (v *vault) Sign(ctx context.Context, input *SignRequest) (*pangea.PangeaResponse[SignResult], error)Sign a message using a key.
msg := "message to sign..."
data := base64.StdEncoding.EncodeToString([]byte(msg))
input := &vault.SignRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
Message: data,
Version: pangea.Int(1),
}
sr, err := vaultcli.Sign(ctx, input)
State change
func (v *vault) StateChange(ctx context.Context, input *StateChangeRequest) (*pangea.PangeaResponse[StateChangeResult], error)Change the state of a specific version of a secret or key.
input := &vault.StateChangeRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
State: vault.IVSdeactivated,
}
scr, err := vaultcli.StateChange(ctx, input)
Symmetric generate
func (v *vault) SymmetricGenerate(ctx context.Context, input *SymmetricGenerateRequest) (*pangea.PangeaResponse[SymmetricGenerateResult], error)Generate a symmetric key.
input := &vault.SymmetricGenerateRequest{
Algorithm: vault.SYAaes128_cfb,
Purpose: vault.KPencryption,
CommonGenerateRequest: vault.CommonGenerateRequest{
Name: pangea.StringValue("my-very-secret-secret"),
Folder: pangea.StringValue("/personal"),
Metadata: vault.Metadata{
"created_by": pangea.StringValue("John Doe"),
"used_in": pangea.StringValue("Google products"),
},
Tags: vault.Tags{
pangea.StringValue("irs_2023"),
pangea.StringValue("personal"),
},
RotationFrequency: pangea.StringValue("10d"),
RotationState: pangea.StringValue("deactivated"),
Expiration: pangea.StringValue("2025-01-01T10:00:00Z"),
},
}
sgr, err := vaultcli.SymmetricGenerate(ctx, input)
Symmetric store
func (v *vault) SymmetricStore(ctx context.Context, input *SymmetricStoreRequest) (*pangea.PangeaResponse[SymmetricStoreResult], error)Import a symmetric key.
input := &vault.SymmetricStoreRequest{
Key: vault.EncodedSymmetricKey("lJkk0gCLux+Q+rPNqLPEYw=="),
Algorithm: vault.SYAaes128_cfb,
Purpose: vault.KPencryption,
CommonStoreRequest: vault.CommonStoreRequest{
Name: pangea.StringValue("my-very-secret-secret"),
Folder: pangea.StringValue("/personal"),
Metadata: vault.Metadata{
"created_by": pangea.StringValue("John Doe"),
"used_in": pangea.StringValue("Google products"),
},
Tags: vault.Tags{
pangea.StringValue("irs_2023"),
pangea.StringValue("personal"),
},
RotationFrequency: pangea.StringValue("10d"),
RotationState: pangea.StringValue("deactivated"),
Expiration: pangea.StringValue("2025-01-01T10:00:00Z"),
},
}
ssr, err := vaultcli.SymmetricStore(ctx, input)
Update
func (v *vault) Update(ctx context.Context, input *UpdateRequest) (*pangea.PangeaResponse[UpdateResult], error)Update information associated with a secret or key.
input := &vault.Update Request{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
Name: pangea.StringValue("my-very-secret-secret"),
Folder: pangea.StringValue("/personal"),
Metadata: vault.Metadata{
"created_by": pangea.StringValue("John Doe"),
"used_in": pangea.StringValue("Google products"),
},
Tags: vault.Tags{
pangea.StringValue("irs_2023"),
pangea.StringValue("personal"),
},
RotationFrequency: pangea.StringValue("10d"),
RotationState: pangea.StringValue("deactivated"),
RotationGracePeriod: pangea.StringValue("1d"),
Expiration: pangea.StringValue("2025-01-01T10:00:00Z"),
ItemState: vault.ISdisabled,
}
ur, err := vaultcli.Update(ctx, input)
Verify
func (v *vault) Verify(ctx context.Context, input *VerifyRequest) (*pangea.PangeaResponse[VerifyResult], error)Verify a signature using a key.
input := &vault.VerifyRequest{
ID: pangea.StringValue("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5"),
Version: pangea.Int(1),
Message: pangea.StringValue("lJkk0gCLux+Q+rPNqLPEYw=="),
Signature: pangea.StringValue("FfWuT2Mq/+cxa7wIugfhzi7ktZxVf926idJNgBDCysF/knY9B7M6wxqHMMPDEBs86D8OsEGuED21y3J7IGOpCQ=="),
}
vr, err := vaultcli.Verify(ctx, input)
Type AsymmetricAlgorithm
type AsymmetricAlgorithm stringtype AsymmetricAlgorithm string
Type AsymmetricGenerateRequest
type AsymmetricGenerateRequest structtype AsymmetricGenerateRequest struct {
CommonGenerateRequest
Algorithm AsymmetricAlgorithm `json:"algorithm,omitempty"`
Purpose KeyPurpose `json:"purpose,omitempty"`
}
Type AsymmetricGenerateResult
type AsymmetricGenerateResult structtype AsymmetricGenerateResult struct {
CommonGenerateResult
PublicKey EncodedPublicKey `json:"public_key"`
Algorithm string `json:"algorithm"`
Purpose string `json:"purpose"`
}
Type AsymmetricStoreRequest
type AsymmetricStoreRequest structtype AsymmetricStoreRequest struct {
CommonStoreRequest
Algorithm AsymmetricAlgorithm `json:"algorithm"`
PublicKey EncodedPublicKey `json:"public_key"`
PrivateKey EncodedPrivateKey `json:"private_key"`
Purpose KeyPurpose `json:"purpose,omitempty"`
}
Type AsymmetricStoreResult
type AsymmetricStoreResult structtype AsymmetricStoreResult struct {
CommonStoreResult
PublicKey EncodedPublicKey `json:"public_key"`
Algorithm string `json:"algorithm"`
Purpose string `json:"purpose"`
}
Type Client
type Client interfacetype Client interface {
StateChange(ctx context.Context, req *StateChangeRequest) (*pangea.PangeaResponse[StateChangeResult], error)
Delete(ctx context.Context, req *DeleteRequest) (*pangea.PangeaResponse[DeleteResult], error)
Get(ctx context.Context, req *GetRequest) (*pangea.PangeaResponse[GetResult], error)
JWKGet(ctx context.Context, req *JWKGetRequest) (*pangea.PangeaResponse[JWKGetResult], error)
List(ctx context.Context, req *ListRequest) (*pangea.PangeaResponse[ListResult], error)
Update(ctx context.Context, req *UpdateRequest) (*pangea.PangeaResponse[UpdateResult], error)
SecretStore(ctx context.Context, req *SecretStoreRequest) (*pangea.PangeaResponse[SecretStoreResult], error)
PangeaTokenStore(ctx context.Context, req *PangeaTokenStoreRequest) (*pangea.PangeaResponse[SecretStoreResult], error)
SecretRotate(ctx context.Context, req *SecretRotateRequest) (*pangea.PangeaResponse[SecretRotateResult], error)
PangeaTokenRotate(ctx context.Context, req *PangeaTokenRotateRequest) (*pangea.PangeaResponse[SecretRotateResult], error)
SymmetricGenerate(ctx context.Context, req *SymmetricGenerateRequest) (*pangea.PangeaResponse[SymmetricGenerateResult], error)
AsymmetricGenerate(ctx context.Context, req *AsymmetricGenerateRequest) (*pangea.PangeaResponse[AsymmetricGenerateResult], error)
SymmetricStore(ctx context.Context, req *SymmetricStoreRequest) (*pangea.PangeaResponse[SymmetricStoreResult], error)
AsymmetricStore(ctx context.Context, req *AsymmetricStoreRequest) (*pangea.PangeaResponse[AsymmetricStoreResult], error)
KeyRotate(ctx context.Context, req *KeyRotateRequest) (*pangea.PangeaResponse[KeyRotateResult], error)
Encrypt(ctx context.Context, req *EncryptRequest) (*pangea.PangeaResponse[EncryptResult], error)
Decrypt(ctx context.Context, req *DecryptRequest) (*pangea.PangeaResponse[DecryptResult], error)
Sign(ctx context.Context, req *SignRequest) (*pangea.PangeaResponse[SignResult], error)
Verify(ctx context.Context, req *VerifyRequest) (*pangea.PangeaResponse[VerifyResult], error)
JWTSign(ctx context.Context, req *JWTSignRequest) (*pangea.PangeaResponse[JWTSignResult], error)
JWTVerify(ctx context.Context, req *JWTVerifyRequest) (*pangea.PangeaResponse[JWTVerifyResult], error)
FolderCreate(ctx context.Context, req *FolderCreateRequest) (*pangea.PangeaResponse[FolderCreateResult], error)
// Encrypt parts of a JSON object.
EncryptStructured(ctx context.Context, input *EncryptStructuredRequest) (*pangea.PangeaResponse[EncryptStructuredResult], error)
// Decrypt parts of a JSON object.
DecryptStructured(ctx context.Context, input *EncryptStructuredRequest) (*pangea.PangeaResponse[EncryptStructuredResult], error)
// Base service methods
pangea.BaseServicer
}
Type CommonGenerateRequest
type CommonGenerateRequest structtype CommonGenerateRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
Type ItemType `json:"type"`
Name string `json:"name,omitempty"`
Folder string `json:"folder,omitempty"`
Metadata Metadata `json:"metadata,omitempty"`
Tags Tags `json:"tags,omitempty"`
RotationFrequency string `json:"rotation_frequency,omitempty"`
RotationState ItemVersionState `json:"rotation_state,omitempty"`
Expiration string `json:"expiration,omitempty"`
}
Type CommonGenerateResult
type CommonGenerateResult structtype CommonGenerateResult struct {
ID string `json:"id"`
Type string `json:"type"`
Version int `json:"version"`
}
Type CommonRotateRequest
type CommonRotateRequest structtype CommonRotateRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
RotationState ItemVersionState `json:"rotation_state,omitempty"`
}
Type CommonRotateResult
type CommonRotateResult structtype CommonRotateResult struct {
ID string `json:"id"`
Version int `json:"version"`
Type string `json:"type"`
}
Type CommonStoreRequest
type CommonStoreRequest structtype CommonStoreRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
Type ItemType `json:"type"`
Name string `json:"name,omitempty"`
Folder string `json:"folder,omitempty"`
Metadata Metadata `json:"metadata,omitempty"`
Tags Tags `json:"tags,omitempty"`
RotationFrequency string `json:"rotation_frequency,omitempty"`
RotationState ItemVersionState `json:"rotation_state,omitempty"`
Expiration string `json:"expiration,omitempty"`
}
Type CommonStoreResult
type CommonStoreResult structtype CommonStoreResult struct {
ID string `json:"id"`
Type string `json:"type"`
Version int `json:"version"`
}
Type DecryptRequest
type DecryptRequest structtype DecryptRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
CipherText string `json:"cipher_text"`
Version *int `json:"version,omitempty"`
AdditionalData *string `json:"additional_data,omitempty"`
}
Type DecryptResult
type DecryptResult structtype DecryptResult struct {
ID string `json:"id"`
Version int `json:"version"`
Algorithm string `json:"algorithm"`
PlainText string `json:"plain_text"`
}
Type DeleteRequest
type DeleteRequest structtype DeleteRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
}
Type DeleteResult
type DeleteResult structtype DeleteResult struct {
ID string `json:"id"`
}
Type EncodedPrivateKey
type EncodedPrivateKey stringEncodedPrivateKey is a PEM private key, with no further encoding (i.e. no base64). It may be used for example in openssh with no further processing
type EncodedPrivateKey string
Type EncodedPublicKey
type EncodedPublicKey stringEncodedPublicKey is a PEM public key, with no further encoding (i.e. no base64) It may be used for example in openssh with no further processing
type EncodedPublicKey string
Type EncodedSymmetricKey
type EncodedSymmetricKey stringEncodedSymmetricKey is a base64 encoded key
type EncodedSymmetricKey string
Type EncryptRequest
type EncryptRequest structtype EncryptRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
PlainText string `json:"plain_text"`
Version *int `json:"version,omitempty"`
AdditionalData *string `json:"additional_data,omitempty"`
}
Type EncryptResult
type EncryptResult structtype EncryptResult struct {
ID string `json:"id"`
Version int `json:"version"`
Algorithm string `json:"algorithm"`
CipherText string `json:"cipher_text"`
}
Type EncryptStructuredRequest
type EncryptStructuredRequest structParameters for an encrypt/decrypt structured request.
type EncryptStructuredRequest struct {
pangea.BaseRequest
// The ID of the key to use. It must be an item of type `symmetric_key` or
// `asymmetric_key` and purpose `encryption`.
ID string `json:"id"`
// Structured data for applying bulk operations.
StructuredData map[string]interface{} `json:"structured_data"`
// A filter expression. It must point to string elements of the
// `StructuredData` field.
Filter string `json:"filter"`
// The item version. Defaults to the current version.
Version *int `json:"version,omitempty"`
// User provided authentication data.
AdditionalData *string `json:"additional_data,omitempty"`
}
Type EncryptStructuredResult
type EncryptStructuredResult structResult of an encrypt/decrypt structured request.
type EncryptStructuredResult struct {
// The ID of the item.
ID string `json:"id"`
// The item version.
Version int `json:"version"`
// The algorithm of the key.
Algorithm string `json:"algorithm"`
// Structured data with filtered fields encrypted/decrypted.
StructuredData map[string]interface{} `json:"structured_data"`
}
Type FolderCreateRequest
type FolderCreateRequest structtype FolderCreateRequest struct {
pangea.BaseRequest
Name string `json:"name"`
Folder string `json:"folder"`
Metadata Metadata `json:"metadata,omitempty"`
Tags Tags `json:"tags,omitempty"`
RotationFrequency string `json:"rotation_frequency,omitempty"`
RotationState ItemVersionState `json:"rotation_state,omitempty"`
RotationGracePeriod string `json:"rotation_grace_period,omitempty"`
}
Type FolderCreateResult
type FolderCreateResult structtype FolderCreateResult struct {
ID string `json:"id"`
}
Type GetRequest
type GetRequest structtype GetRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
Version string `json:"version,omitempty"`
Verbose *bool `json:"verbose,omitempty"`
VersionState *ItemVersionState `json:"version_state,omitempty"`
}
Type GetResult
type GetResult structtype GetResult struct {
ItemData
Versions []ItemVersionData `json:"versions"`
RotationGracePeriod string `json:"rotation_grace_period,omitempty"`
InheritedSettings *InheritedSettings `json:"inherited_settings,omitempty"`
}
Type InheritedSettings
type InheritedSettings structtype InheritedSettings struct {
RotationFrequency string `json:"rotation_frequency,omitempty"`
RotationState string `json:"rotation_state,omitempty"`
RotationGracePeriod string `json:"rotation_grace_period,omitempty"`
}
Type ItemData
type ItemData structtype ItemData struct {
ID string `json:"id"`
Type string `json:"type"`
ItemState string `json:"item_state"`
CurrentVersion ItemVersionData `json:"current_version"`
Name string `json:"name,omitempty"`
Folder string `json:"folder,omitempty"`
Metadata Metadata `json:"metadata,omitempty"`
Tags Tags `json:"tags,omitempty"`
RotationFrequency string `json:"rotation_frequency,omitempty"`
RotationState string `json:"rotation_state,omitempty"`
LastRotated string `json:"last_rotated,omitempty"`
NextRotation string `json:"next_rotation,omitempty"`
Expiration string `json:"expiration,omitempty"`
CreatedAt string `json:"created_at"`
Algorithm string `json:"algorithm,omitempty"`
Purpose string `json:"purpose,omitempty"`
}
Type ItemOrder
type ItemOrder stringtype ItemOrder string
Type ItemOrderBy
type ItemOrderBy stringtype ItemOrderBy string
Type ItemState
type ItemState stringtype ItemState string
Type ItemType
type ItemType stringtype ItemType string
Type ItemVersionData
type ItemVersionData structtype ItemVersionData struct {
Version int `json:"version"`
State string `json:"state"`
CreatedAt string `json:"created_at"`
DestroyAt *string `json:"destroy_at,omitempty"`
PublicKey *EncodedPublicKey `json:"public_key,omitempty"`
Secret *string `json:"secret,omitempty"`
}
Type ItemVersionState
type ItemVersionState stringtype ItemVersionState string
Type JWKGetRequest
type JWKGetRequest structtype JWKGetRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
Version *string `json:"version,omitempty"`
}
Type JWKGetResult
type JWKGetResult structtype JWKGetResult struct {
Keys []JWT `json:"keys"`
}
Type JWT
type JWT structtype JWT struct {
Alg string `json:"alg"`
Kid *string `json:"kid,omitempty"`
Kty string `json:"kty"`
Use *string `json:"use,omitempty"`
Crv *string `json:"crv,omitempty"`
D *string `json:"d,omitempty"`
X *string `json:"x,omitempty"`
Y *string `json:"y,omitempty"`
N *string `json:"n,omitempty"`
E *string `json:"e,omitempty"`
}
Type JWTSignRequest
type JWTSignRequest structtype JWTSignRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
Payload string `json:"payload"`
}
Type JWTSignResult
type JWTSignResult structtype JWTSignResult struct {
JWS string `json:"jws"`
}
Type JWTVerifyRequest
type JWTVerifyRequest structtype JWTVerifyRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
JWS string `json:"jws"`
}
Type JWTVerifyResult
type JWTVerifyResult structtype JWTVerifyResult struct {
ValidSignature bool `json:"valid_signature"`
}
Type KeyPurpose
type KeyPurpose stringtype KeyPurpose string
Type KeyRotateRequest
type KeyRotateRequest structtype KeyRotateRequest struct {
CommonRotateRequest
PublicKey *EncodedPublicKey `json:"public_key,omitempty"`
PrivateKey *EncodedPrivateKey `json:"private_key,omitempty"`
Key *EncodedSymmetricKey `json:"key,omitempty"`
}
Type KeyRotateResult
type KeyRotateResult structtype KeyRotateResult struct {
CommonRotateResult
PublicKey *EncodedPublicKey `json:"public_key,omitempty"`
Algorithm string `json:"algorithm"`
Purpose string `json:"purpose"`
}
Type ListItemData
type ListItemData structtype ListItemData struct {
ItemData
CompromisedVersions []ItemVersionData `json:"compromised_versions"`
}
Type ListRequest
type ListRequest structtype ListRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
Filter map[string]string `json:"filter,omitempty"`
Last string `json:"last,omitempty"`
Size int `json:"size,omitempty"`
Order ItemOrder `json:"order,omitempty"`
OrderBy ItemOrderBy `json:"order_by,omitempty"`
}
Type ListResult
type ListResult structtype ListResult struct {
Items []ListItemData `json:"items"`
Count int `json:"count"`
Last string `json:"last,omitempty"`
}
Type Metadata
type Metadata map[string]stringtype Metadata map[string]string
Type PangeaTokenRotateRequest
type PangeaTokenRotateRequest structtype PangeaTokenRotateRequest struct {
CommonRotateRequest
RotationGracePeriod string `json:"rotation_grace_period"`
}
Type PangeaTokenStoreRequest
type PangeaTokenStoreRequest structtype PangeaTokenStoreRequest struct {
CommonStoreRequest
Token string `json:"secret"`
}
Type SecretRotateRequest
type SecretRotateRequest structtype SecretRotateRequest struct {
CommonRotateRequest
Secret string `json:"secret"`
}
Type SecretRotateResult
type SecretRotateResult structtype SecretRotateResult struct {
CommonRotateResult
Secret string `json:"secret"`
}
Type SecretStoreRequest
type SecretStoreRequest structtype SecretStoreRequest struct {
CommonStoreRequest
Secret string `json:"secret"`
}
Type SecretStoreResult
type SecretStoreResult structtype SecretStoreResult struct {
CommonStoreResult
Secret string `json:"secret"`
}
Type SignRequest
type SignRequest structtype SignRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
Message string `json:"message"`
Version *int `json:"version,omitempty"`
}
Type SignResult
type SignResult structtype SignResult struct {
ID string `json:"id"`
Version int `json:"version"`
Signature string `json:"signature"`
Algorithm string `json:"algorithm"`
PublicKey *EncodedPublicKey `json:"public_key,omitempty"`
}
Type StateChangeRequest
type StateChangeRequest structtype StateChangeRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
State ItemVersionState `json:"state"`
Version *int `json:"version,omitempty"`
DestroyPeriod string `json:"destroy_period,omitempty"`
}
Type StateChangeResult
type StateChangeResult structtype StateChangeResult struct {
ID string `json:"id"`
Version int `json:"version"`
State string `json:"state"`
DestroyAt *string `json:"destroy_at,omitempty"`
}
Type SymmetricAlgorithm
type SymmetricAlgorithm stringtype SymmetricAlgorithm string
Type SymmetricGenerateRequest
type SymmetricGenerateRequest structtype SymmetricGenerateRequest struct {
CommonGenerateRequest
Algorithm SymmetricAlgorithm `json:"algorithm"`
Purpose KeyPurpose `json:"purpose"`
}
Type SymmetricGenerateResult
type SymmetricGenerateResult structtype SymmetricGenerateResult struct {
CommonGenerateResult
Algorithm string `json:"algorithm"`
Purpose string `json:"purpose"`
}
Type SymmetricStoreRequest
type SymmetricStoreRequest structtype SymmetricStoreRequest struct {
CommonStoreRequest
Key EncodedSymmetricKey `json:"key"`
Algorithm SymmetricAlgorithm `json:"algorithm"`
Purpose KeyPurpose `json:"purpose,omitempty"`
}
Type SymmetricStoreResult
type SymmetricStoreResult structtype SymmetricStoreResult struct {
CommonStoreResult
Algorithm string `json:"algorithm"`
Purpose string `json:"purpose"`
}
Type Tags
type Tags []stringtype Tags []string
Type UpdateRequest
type UpdateRequest structtype UpdateRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
Name string `json:"name,omitempty"`
Folder string `json:"folder,omitempty"`
Metadata Metadata `json:"metadata,omitempty"`
Tags Tags `json:"tags,omitempty"`
RotationFrequency string `json:"rotation_frequency,omitempty"`
RotationState ItemVersionState `json:"rotation_state,omitempty"`
RotationGracePeriod string `json:"rotation_grace_period,omitempty"`
Expiration string `json:"expiration,omitempty"`
ItemState ItemState `json:"item_state,omitempty"`
}
Type UpdateResult
type UpdateResult structtype UpdateResult struct {
ID string `json:"id"`
}
Type VerifyRequest
type VerifyRequest structtype VerifyRequest struct {
// Base request has ConfigID for multi-config projects
pangea.BaseRequest
ID string `json:"id"`
Version *int `json:"version,omitempty"`
Message string `json:"message"`
Signature string `json:"signature"`
}
Type VerifyResult
type VerifyResult structtype VerifyResult struct {
ID string `json:"id"`
Version int `json:"version"`
Algorithm string `json:"algorithm"`
ValidSignature bool `json:"valid_signature"`
}
Type vault
type vault structtype vault struct {
pangea.BaseService
}