Files

271 lines
9.6 KiB
C
Raw Permalink Normal View History

// CkSecrets.h: interface for the CkSecrets class.
//
//////////////////////////////////////////////////////////////////////
// This header is generated for Chilkat 11.3.0
#define _CkVersion 11.3.0
#ifndef _CkSecrets_H
#define _CkSecrets_H
#include "chilkatDefs.h"
#include "CkString.h"
#include "CkClassWithCallbacks.h"
class CkTask;
class CkJsonObject;
class CkBinData;
class CkStringBuilder;
class CkBaseProgress;
#if !defined(__sun__) && !defined(__sun)
#pragma pack (push, 8)
#endif
#undef Copy
// CLASS: CkSecrets
class CK_VISIBLE_PUBLIC CkSecrets : public CkClassWithCallbacks
{
private:
// Don't allow assignment or copying these objects.
CkSecrets(const CkSecrets &);
CkSecrets &operator=(const CkSecrets &);
public:
CkSecrets(void);
virtual ~CkSecrets(void);
static CkSecrets *createNew(void);
static CkSecrets *createNew2(int progLang);
void CK_VISIBLE_PRIVATE inject(void *impl);
// May be called when finished with the object to free/dispose of any
// internal resources held by the object.
void dispose(void);
CkBaseProgress *get_EventCallbackObject(void) const;
void put_EventCallbackObject(CkBaseProgress *progress);
// BEGIN PUBLIC INTERFACE
// ----------------------
// Properties
// ----------------------
// The AutoSplit property is specific to local_manager secrets on Windows. The
// Windows Credentials Manager supports a maximum of 2560 bytes per secret. If a
// secret exceeds this size, it will be automatically compressed and split when
// created or updated, and automatically recomposed when retrieved.
//
// A secret can be split into a maximum of 10 parts.
//
// The default value is true.
//
bool get_AutoSplit(void);
// The AutoSplit property is specific to local_manager secrets on Windows. The
// Windows Credentials Manager supports a maximum of 2560 bytes per secret. If a
// secret exceeds this size, it will be automatically compressed and split when
// created or updated, and automatically recomposed when retrieved.
//
// A secret can be split into a maximum of 10 parts.
//
// The default value is true.
//
void put_AutoSplit(bool newVal);
// If set to true, then the contents of the secret will be stored compressed. The
// default value of this property is false.
bool get_Compression(void);
// If set to true, then the contents of the secret will be stored compressed. The
// default value of this property is false.
void put_Compression(bool newVal);
// The location of the secrets. Possible values are:
// * local_manager - On Windows this is the Credentials Manager. On MacOS and
// iOS it is the Keychain. This is not yet an option on Linux or Android.
// * aws_secrets_manager - AWS Secrets Manager
// * azure_key_vault - Azure Key Vault
// * ibm_cloud - IBM Cloud Secrets Manager
// * oracle_cloud - Oracle Cloud Secrets
// * doppler - Doppler Secrets
// * memory - In-Memory Secrets
//
// The default location is the local_manager . On Linux and Android, local_manager
// will behave the same as memory .
//
void get_Location(CkString &str);
// The location of the secrets. Possible values are:
// * local_manager - On Windows this is the Credentials Manager. On MacOS and
// iOS it is the Keychain. This is not yet an option on Linux or Android.
// * aws_secrets_manager - AWS Secrets Manager
// * azure_key_vault - Azure Key Vault
// * ibm_cloud - IBM Cloud Secrets Manager
// * oracle_cloud - Oracle Cloud Secrets
// * doppler - Doppler Secrets
// * memory - In-Memory Secrets
//
// The default location is the local_manager . On Linux and Android, local_manager
// will behave the same as memory .
//
const char *location(void);
// The location of the secrets. Possible values are:
// * local_manager - On Windows this is the Credentials Manager. On MacOS and
// iOS it is the Keychain. This is not yet an option on Linux or Android.
// * aws_secrets_manager - AWS Secrets Manager
// * azure_key_vault - Azure Key Vault
// * ibm_cloud - IBM Cloud Secrets Manager
// * oracle_cloud - Oracle Cloud Secrets
// * doppler - Doppler Secrets
// * memory - In-Memory Secrets
//
// The default location is the local_manager . On Linux and Android, local_manager
// will behave the same as memory .
//
void put_Location(const char *newVal);
// This is a catch-all property to be used for uncommon needs. This property
// defaults to the empty string and should typically remain empty.
void get_UncommonOptions(CkString &str);
// This is a catch-all property to be used for uncommon needs. This property
// defaults to the empty string and should typically remain empty.
const char *uncommonOptions(void);
// This is a catch-all property to be used for uncommon needs. This property
// defaults to the empty string and should typically remain empty.
void put_UncommonOptions(const char *newVal);
// ----------------------
// Methods
// ----------------------
// Deletes a secret. Cloud secrets managers will typically disable the secret and
// schedule the secret for deletion after some number of days.
bool DeleteSecret(CkJsonObject &jsonId);
// Deletes a secret. Cloud secrets managers will typically disable the secret and
// schedule the secret for deletion after some number of days.
CkTask *DeleteSecretAsync(CkJsonObject &jsonId);
// Fetches a binary secret and returns the content in bd.
bool GetSecretBd(CkJsonObject &jsonId, CkBinData &bd);
// Fetches a binary secret and returns the content in bd.
CkTask *GetSecretBdAsync(CkJsonObject &jsonId, CkBinData &bd);
// Fetches a JSON secret and returns the content in jsonOut.
bool GetSecretJson(CkJsonObject &jsonId, CkJsonObject &jsonOut);
// Fetches a JSON secret and returns the content in jsonOut.
CkTask *GetSecretJsonAsync(CkJsonObject &jsonId, CkJsonObject &jsonOut);
// Fetches a string secret and returns the content in sb.
bool GetSecretSb(CkJsonObject &jsonId, CkStringBuilder &sb);
// Fetches a string secret and returns the content in sb.
CkTask *GetSecretSbAsync(CkJsonObject &jsonId, CkStringBuilder &sb);
// Fetches a string secret and returns the content of the secret.
bool GetSecretStr(CkJsonObject &jsonId, CkString &outStr);
// Fetches a string secret and returns the content of the secret.
const char *getSecretStr(CkJsonObject &jsonId);
// Fetches a string secret and returns the content of the secret.
const char *secretStr(CkJsonObject &jsonId);
// Fetches a string secret and returns the content of the secret.
CkTask *GetSecretStrAsync(CkJsonObject &jsonId);
// Lists secrets matching the wildcarded or exact values passed in json. The
// results of the query are returned in jsonOut.
bool ListSecrets(CkJsonObject &json, CkJsonObject &jsonOut);
// Lists secrets matching the wildcarded or exact values passed in json. The
// results of the query are returned in jsonOut.
CkTask *ListSecretsAsync(CkJsonObject &json, CkJsonObject &jsonOut);
// Accessing a cloud-based secrets manager requires authentication credentials,
// which cannot be stored in the manager itself. Instead, they must be securely
// stored locally.
//
// One solution is to store the authentication credentials as a secret in the
// Windows Credentials Manager or Apple Keychain. These credentials serve as the
// bootstrap secret for authenticating with the cloud-based secrets manager.
//
// jsonId contains the name of the bootstrap secret. secretContent contains the bootstrap's
// secret content.
//
bool SetBootstrapSecret(CkJsonObject &jsonId, CkSecrets &secretContent);
// Creates a binary secret if it does not yet exist, or updates an existing secret.
// The name of the secret is specified in jsonId, and the binary content of the
// secret in secret.
bool UpdateSecretBd(CkJsonObject &jsonId, CkBinData &secret);
// Creates a binary secret if it does not yet exist, or updates an existing secret.
// The name of the secret is specified in jsonId, and the binary content of the
// secret in secret.
CkTask *UpdateSecretBdAsync(CkJsonObject &jsonId, CkBinData &secret);
// Creates a JSON secret if it does not yet exist, or updates an existing secret.
// The name of the secret is specified in jsonId, and the JSON content of the secret
// in secret.
bool UpdateSecretJson(CkJsonObject &jsonId, CkJsonObject &secret);
// Creates a JSON secret if it does not yet exist, or updates an existing secret.
// The name of the secret is specified in jsonId, and the JSON content of the secret
// in secret.
CkTask *UpdateSecretJsonAsync(CkJsonObject &jsonId, CkJsonObject &secret);
// Creates a string secret if it does not yet exist, or updates an existing secret.
// The name of the secret is specified in jsonId, and the string content of the
// secret in sb.
bool UpdateSecretSb(CkJsonObject &jsonId, CkStringBuilder &sb);
// Creates a string secret if it does not yet exist, or updates an existing secret.
// The name of the secret is specified in jsonId, and the string content of the
// secret in sb.
CkTask *UpdateSecretSbAsync(CkJsonObject &jsonId, CkStringBuilder &sb);
// Creates a string secret if it does not yet exist, or updates an existing secret.
// The name of the secret is specified in jsonId, and the string content of the
// secret in secret.
bool UpdateSecretStr(CkJsonObject &jsonId, const char *secret);
// Creates a string secret if it does not yet exist, or updates an existing secret.
// The name of the secret is specified in jsonId, and the string content of the
// secret in secret.
CkTask *UpdateSecretStrAsync(CkJsonObject &jsonId, const char *secret);
// END PUBLIC INTERFACE
};
#if !defined(__sun__) && !defined(__sun)
#pragma pack (pop)
#endif
#endif