@@ -377,6 +379,11 @@
This CNAME record points traffic for that domain to ngrok's edge servers."""returnReservedDomainsClient(self)
+ @property
+ defsecrets(self)->SecretsClient:
+"""Secrets is an api service for securely storing and managing sensitive data such as secrets, credentials, and tokens."""
+ returnSecretsClient(self)
+
@propertydefssh_certificate_authorities(self)->SSHCertificateAuthoritiesClient:"""An SSH Certificate Authority is a pair of an SSH Certificate and its private
@@ -418,6 +425,11 @@
agent tunnel session or an SSH reverse tunnel session."""returnTunnelsClient(self)
+ @property
+ defvaults(self)->VaultsClient:
+"""Vaults is an api service for securely storing and managing sensitive data such as secrets, credentials, and tokens."""
+ returnVaultsClient(self)
+
@propertydefbackends(self):ns=collections.namedtuple(
diff --git a/docs/_modules/ngrok/datatypes.html b/docs/_modules/ngrok/datatypes.html
index 6db2d3d..bd7b028 100644
--- a/docs/_modules/ngrok/datatypes.html
+++ b/docs/_modules/ngrok/datatypes.html
@@ -211,12 +211,14 @@
+
+ @property
+ defid(self)->str:
+"""identifier for Secret"""
+ returnself._props["id"]
+
+ @property
+ defuri(self)->str:
+"""URI of this Secret API resource"""
+ returnself._props["uri"]
+
+ @property
+ defcreated_at(self)->datetime:
+"""Timestamp when the Secret was created (RFC 3339 format)"""
+ returnself._props["created_at"]
+
+ @property
+ defupdated_at(self)->datetime:
+"""Timestamp when the Secret was last updated (RFC 3339 format)"""
+ returnself._props["updated_at"]
+
+ @property
+ defname(self)->str:
+"""Name of secret"""
+ returnself._props["name"]
+
+ @property
+ defdescription(self)->str:
+"""description of Secret"""
+ returnself._props["description"]
+
+ @property
+ defmetadata(self)->str:
+"""Arbitrary user-defined metadata for this Secret"""
+ returnself._props["metadata"]
+
+ @property
+ defcreated_by(self)->Ref:
+"""Reference to who created this Secret"""
+ returnself._props["created_by"]
+
+ @property
+ deflast_updated_by(self)->Ref:
+"""Reference to who created this Secret"""
+ returnself._props["last_updated_by"]
+
+ @property
+ defvault(self)->Ref:
+"""Reference to the vault the secret is stored in"""
+ returnself._props["vault"]
+
+
+
[docs]classSecretList(object):
+ def__init__(self,client,props):
+ self._client=client
+ self._props=props
+ self._props["secrets"]=(
+ [Secret(client,x)forxinprops["secrets"]]
+ ifprops.get("secrets")isnotNone
+ else[]
+ )
+
+ def__eq__(self,other):
+ returnself._props==other._props
+
+ def__str__(self):
+ if"id"inself._props:
+ return"<SecretList {}{}>".format(self.id,repr(self._props))
+ else:
+ return"<SecretList {}>".format(repr(self._props))
+
+ def__iter__(self):
+ returnPagedIterator(self._client,self,"secrets")
+
+ @property
+ defsecrets(self)->Sequence[Secret]:
+"""The list of Secrets for this account"""
+ returnself._props["secrets"]
+
+ @property
+ defuri(self)->str:
+ returnself._props["uri"]
+
+ @property
+ defnext_page_uri(self)->str:
+"""URI of the next page of results, or null if there is no next page"""
+ returnself._props["next_page_uri"]
+
+
[docs]classSSHCertificateAuthority(object):def__init__(self,client,props):self._client=client
@@ -6181,6 +6305,123 @@
defnext_page_uri(self)->str:"""URI of the next page, or null if there is no next page"""returnself._props["next_page_uri"]
+
+ @property
+ defid(self)->str:
+"""identifier for Vault"""
+ returnself._props["id"]
+
+ @property
+ defuri(self)->str:
+"""URI of this Vault API resource"""
+ returnself._props["uri"]
+
+ @property
+ defcreated_at(self)->datetime:
+"""Timestamp when the Vault was created (RFC 3339 format)"""
+ returnself._props["created_at"]
+
+ @property
+ defupdated_at(self)->datetime:
+"""Timestamp when the Vault was last updated (RFC 3339 format)"""
+ returnself._props["updated_at"]
+
+ @property
+ defname(self)->str:
+"""Name of vault"""
+ returnself._props["name"]
+
+ @property
+ defdescription(self)->str:
+"""description of Vault"""
+ returnself._props["description"]
+
+ @property
+ defmetadata(self)->str:
+"""Arbitrary user-defined metadata for this Vault"""
+ returnself._props["metadata"]
+
+ @property
+ defcreated_by(self)->str:
+"""Reference to who created this Vault"""
+ returnself._props["created_by"]
+
+ @property
+ deflast_updated_by(self)->str:
+"""Reference to who created this Vault"""
+ returnself._props["last_updated_by"]
+
+
+
[docs]classVaultList(object):
+ def__init__(self,client,props):
+ self._client=client
+ self._props=props
+ self._props["vaults"]=(
+ [Vault(client,x)forxinprops["vaults"]]
+ ifprops.get("vaults")isnotNone
+ else[]
+ )
+
+ def__eq__(self,other):
+ returnself._props==other._props
+
+ def__str__(self):
+ if"id"inself._props:
+ return"<VaultList {}{}>".format(self.id,repr(self._props))
+ else:
+ return"<VaultList {}>".format(repr(self._props))
+
+ def__iter__(self):
+ returnPagedIterator(self._client,self,"vaults")
+
+ @property
+ defvaults(self)->Sequence[Vault]:
+"""The list of Vaults for this account"""
+ returnself._props["vaults"]
+
+ @property
+ defuri(self)->str:
+ returnself._props["uri"]
+
+ @property
+ defnext_page_uri(self)->str:
+"""URI of the next page of results, or null if there is no next page"""
+ returnself._props["next_page_uri"]
[docs]classSecretsClient(object):
+"""Secrets is an api service for securely storing and managing sensitive data such as secrets, credentials, and tokens."""
+
+ def__init__(self,client):
+ self._client=client
+
+
[docs]defcreate(
+ self,
+ vault_id:str,
+ name:str="",
+ value:str="",
+ metadata:str="",
+ description:str="",
+ )->Secret:
+"""Create a new Secret
+
+ :param name: Name of secret
+ :param value: Value of secret
+ :param metadata: Arbitrary user-defined metadata for this Secret
+ :param description: description of Secret
+ :param vault_id: unique identifier of the referenced vault
+
+ https://ngrok.com/docs/api#api-secrets-create
+ """
+ path="/vault_secrets"
+ body_arg=dict(
+ name=name,
+ value=value,
+ metadata=metadata,
+ description=description,
+ vault_id=vault_id,
+ )
+ result=self._client.http_client.post(path,body_arg)
+ returnSecret(self._client,result)
+
+
[docs]defupdate(
+ self,
+ id:str,
+ name:str=None,
+ value:str=None,
+ metadata:str=None,
+ description:str=None,
+ )->Secret:
+"""Update an existing Secret by ID
+
+ :param id: identifier for Secret
+ :param name: Name of secret
+ :param value: Value of secret
+ :param metadata: Arbitrary user-defined metadata for this Secret
+ :param description: description of Secret
+
+ https://ngrok.com/docs/api#api-secrets-update
+ """
+ path="/vault_secrets/{id}"
+ path=path.format(
+ id=id,
+ )
+ body_arg=dict(
+ name=name,
+ value=value,
+ metadata=metadata,
+ description=description,
+ )
+ result=self._client.http_client.patch(path,body_arg)
+ returnSecret(self._client,result)
[docs]classSSHCertificateAuthoritiesClient(object):"""An SSH Certificate Authority is a pair of an SSH Certificate and its private key that can be used to sign other SSH host and user certificates."""
@@ -5522,6 +5646,119 @@
body_arg=Noneresult=self._client.http_client.get(path,body_arg)returnTunnel(self._client,result)
+
+
+
[docs]classVaultsClient(object):
+"""Vaults is an api service for securely storing and managing sensitive data such as secrets, credentials, and tokens."""
+
+ def__init__(self,client):
+ self._client=client
+
+
[docs]defcreate(
+ self,
+ name:str="",
+ metadata:str="",
+ description:str="",
+ )->Vault:
+"""Create a new Vault
+
+ :param name: Name of vault
+ :param metadata: Arbitrary user-defined metadata for this Vault
+ :param description: description of Vault
+
+ https://ngrok.com/docs/api#api-vaults-create
+ """
+ path="/vaults"
+ body_arg=dict(
+ name=name,
+ metadata=metadata,
+ description=description,
+ )
+ result=self._client.http_client.post(path,body_arg)
+ returnVault(self._client,result)
+
+
[docs]defupdate(
+ self,
+ id:str,
+ name:str=None,
+ metadata:str=None,
+ description:str=None,
+ )->Vault:
+"""Update an existing Vault by ID
+
+ :param id: identifier for Vault
+ :param name: Name of vault
+ :param metadata: Arbitrary user-defined metadata for this Vault
+ :param description: description of Vault
+
+ https://ngrok.com/docs/api#api-vaults-update
+ """
+ path="/vaults/{id}"
+ path=path.format(
+ id=id,
+ )
+ body_arg=dict(
+ name=name,
+ metadata=metadata,
+ description=description,
+ )
+ result=self._client.http_client.patch(path,body_arg)
+ returnVault(self._client,result)