From 896dc7c92281766f226ec851689efb61138f4769 Mon Sep 17 00:00:00 2001 From: pabepadu <45884742+pabepadu@users.noreply.github.com> Date: Fri, 17 Jul 2026 08:20:21 +0200 Subject: [PATCH] fix(hvac): add dynamic attributes in secret_engines + add types in kv --- .../hvac/api/secrets_engines/__init__.pyi | 19 +++++++++++++++++++ stubs/hvac/hvac/api/secrets_engines/kv.pyi | 11 ++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/stubs/hvac/hvac/api/secrets_engines/__init__.pyi b/stubs/hvac/hvac/api/secrets_engines/__init__.pyi index b74e0da3363b..00e078835556 100644 --- a/stubs/hvac/hvac/api/secrets_engines/__init__.pyi +++ b/stubs/hvac/hvac/api/secrets_engines/__init__.pyi @@ -1,6 +1,7 @@ from hvac.api.secrets_engines.active_directory import ActiveDirectory as ActiveDirectory from hvac.api.secrets_engines.aws import Aws as Aws from hvac.api.secrets_engines.azure import Azure as Azure +from hvac.api.secrets_engines.consul import Consul as Consul from hvac.api.secrets_engines.database import Database as Database from hvac.api.secrets_engines.gcp import Gcp as Gcp from hvac.api.secrets_engines.identity import Identity as Identity @@ -38,3 +39,21 @@ __all__ = ( class SecretsEngines(VaultApiCategory): implemented_classes: list[type[VaultApiBase]] unimplemented_classes: list[str] + + # The following attributes are dynamically created at runtime by + # VaultApiCategory based on implemented_classes. + # These explicit assignments make them visible for static type checkers. + aws: Aws + azure: Azure + gcp: Gcp + activedirectory: ActiveDirectory + identity: Identity + kv: Kv + ldap: Ldap + pki: Pki + transform: Transform + transit: Transit + database: Database + consul: Consul + rabbitmq: RabbitMQ + ssh: Ssh diff --git a/stubs/hvac/hvac/api/secrets_engines/kv.pyi b/stubs/hvac/hvac/api/secrets_engines/kv.pyi index bd7a1c1b2a28..3a5f72c3356c 100644 --- a/stubs/hvac/hvac/api/secrets_engines/kv.pyi +++ b/stubs/hvac/hvac/api/secrets_engines/kv.pyi @@ -1,5 +1,6 @@ import logging +from hvac.api.secrets_engines import KvV1, KvV2 from hvac.api.vault_api_base import VaultApiBase logger: logging.Logger @@ -8,13 +9,13 @@ class Kv(VaultApiBase): allowed_kv_versions: list[str] def __init__(self, adapter, default_kv_version: str = "2") -> None: ... @property - def v1(self): ... + def v1(self) -> KvV1: ... @property - def v2(self): ... + def v2(self) -> KvV2: ... @property - def default_kv_version(self): ... + def default_kv_version(self) -> str: ... @default_kv_version.setter - def default_kv_version(self, default_kv_version) -> None: ... + def default_kv_version(self, default_kv_version: str) -> None: ... - def __getattr__(self, item): ... + def __getattr__(self, item: str): ...