""" This is a file for the Google KMS integration Relevant issue: https://github.com/BerriAI/litellm/issues/1235 Requires: * `os.environ["GOOGLE_APPLICATION_CREDENTIALS"], os.environ["GOOGLE_KMS_RESOURCE_NAME"]` * `pip install google-cloud-kms` """ import litellm, os from typing import Optional from litellm.proxy._types import KeyManagementSystem def validate_environment(): if "GOOGLE_APPLICATION_CREDENTIALS" not in os.environ: raise ValueError( "Missing required environment variable - GOOGLE_APPLICATION_CREDENTIALS" ) if "GOOGLE_KMS_RESOURCE_NAME" not in os.environ: raise ValueError( "Missing required environment variable - GOOGLE_KMS_RESOURCE_NAME" ) def load_google_kms(use_google_kms: Optional[bool]): if use_google_kms is None or use_google_kms == False: return try: from google.cloud import kms_v1 # type: ignore validate_environment() # Create the KMS client client = kms_v1.KeyManagementServiceClient() litellm.secret_manager_client = client litellm._key_management_system = KeyManagementSystem.GOOGLE_KMS litellm._google_kms_resource_name = os.getenv("GOOGLE_KMS_RESOURCE_NAME") except Exception as e: raise e