Skip to content

Secret

zenml.secret special

Initialization of the ZenML Secret module.

A ZenML Secret is a grouping of key-value pairs. These are accessed and administered via the ZenML Secret Store.

base_secret

Implementation of the Base SecretSchema class.

BaseSecretSchema (BaseModel) pydantic-model

Base class for all Secret Schemas.

Source code in zenml/secret/base_secret.py
class BaseSecretSchema(BaseModel):
    """Base class for all Secret Schemas."""

    @classmethod
    def get_schema_keys(cls) -> List[str]:
        """Get all attributes that are part of the schema.

        These schema keys can be used to define all required key-value pairs of
        a secret schema.

        Returns:
            A list of all attribute names that are part of the schema.
        """
        return list(cls.__fields__.keys())

    def get_values(self) -> Dict[str, Any]:
        """Get all values of the secret schema.

        Returns:
            A dictionary of all attribute names and their corresponding values.
        """
        return self.dict(exclude_none=True)

    class Config:
        """Pydantic configuration class."""

        # validate attribute assignments
        validate_assignment = True
        # report extra attributes as validation failures
        extra = "forbid"
Config

Pydantic configuration class.

Source code in zenml/secret/base_secret.py
class Config:
    """Pydantic configuration class."""

    # validate attribute assignments
    validate_assignment = True
    # report extra attributes as validation failures
    extra = "forbid"
get_schema_keys() classmethod

Get all attributes that are part of the schema.

These schema keys can be used to define all required key-value pairs of a secret schema.

Returns:

Type Description
List[str]

A list of all attribute names that are part of the schema.

Source code in zenml/secret/base_secret.py
@classmethod
def get_schema_keys(cls) -> List[str]:
    """Get all attributes that are part of the schema.

    These schema keys can be used to define all required key-value pairs of
    a secret schema.

    Returns:
        A list of all attribute names that are part of the schema.
    """
    return list(cls.__fields__.keys())
get_values(self)

Get all values of the secret schema.

Returns:

Type Description
Dict[str, Any]

A dictionary of all attribute names and their corresponding values.

Source code in zenml/secret/base_secret.py
def get_values(self) -> Dict[str, Any]:
    """Get all values of the secret schema.

    Returns:
        A dictionary of all attribute names and their corresponding values.
    """
    return self.dict(exclude_none=True)

schemas special

Initialization of secret schemas.

aws_secret_schema

AWS Authentication Secret Schema definition.

AWSSecretSchema (BaseSecretSchema) pydantic-model

AWS Authentication Secret Schema definition.

Source code in zenml/secret/schemas/aws_secret_schema.py
class AWSSecretSchema(BaseSecretSchema):
    """AWS Authentication Secret Schema definition."""

    aws_access_key_id: str
    aws_secret_access_key: str
    aws_session_token: Optional[str] = None

azure_secret_schema

Azure Authentication Secret Schema definition.

AzureSecretSchema (BaseSecretSchema) pydantic-model

Azure Authentication Secret Schema definition.

Source code in zenml/secret/schemas/azure_secret_schema.py
class AzureSecretSchema(BaseSecretSchema):
    """Azure Authentication Secret Schema definition."""

    account_name: Optional[str] = None
    account_key: Optional[str] = None
    sas_token: Optional[str] = None
    connection_string: Optional[str] = None
    client_id: Optional[str] = None
    client_secret: Optional[str] = None
    tenant_id: Optional[str] = None

basic_auth_secret_schema

Basic Authentication Secret Schema definition.

BasicAuthSecretSchema (BaseSecretSchema) pydantic-model

Secret schema for basic authentication.

Attributes:

Name Type Description
username str

The username that should be used for authentication.

password str

The password that should be used for authentication.

Source code in zenml/secret/schemas/basic_auth_secret_schema.py
class BasicAuthSecretSchema(BaseSecretSchema):
    """Secret schema for basic authentication.

    Attributes:
        username: The username that should be used for authentication.
        password: The password that should be used for authentication.
    """

    username: str
    password: str

gcp_secret_schema

GCP Authentication Secret Schema definition.

GCPSecretSchema (BaseSecretSchema) pydantic-model

GCP Authentication Secret Schema definition.

Source code in zenml/secret/schemas/gcp_secret_schema.py
class GCPSecretSchema(BaseSecretSchema):
    """GCP Authentication Secret Schema definition."""

    token: str

    def get_credential_dict(self) -> Dict[str, Any]:
        """Gets a dictionary of credentials for authenticating to GCP.

        Returns:
            A dictionary representing GCP credentials.

        Raises:
            ValueError: If the token value is not a JSON string of a dictionary.
        """
        try:
            dict_ = json.loads(self.token)
        except json.JSONDecodeError:
            raise ValueError(
                "Failed to parse GCP secret token. The token value is not a "
                "valid JSON string."
            )

        if not isinstance(dict_, Dict):
            raise ValueError(
                "Failed to parse GCP secret token. The token value does not "
                "represent a GCP credential dictionary."
            )

        return dict_
get_credential_dict(self)

Gets a dictionary of credentials for authenticating to GCP.

Returns:

Type Description
Dict[str, Any]

A dictionary representing GCP credentials.

Exceptions:

Type Description
ValueError

If the token value is not a JSON string of a dictionary.

Source code in zenml/secret/schemas/gcp_secret_schema.py
def get_credential_dict(self) -> Dict[str, Any]:
    """Gets a dictionary of credentials for authenticating to GCP.

    Returns:
        A dictionary representing GCP credentials.

    Raises:
        ValueError: If the token value is not a JSON string of a dictionary.
    """
    try:
        dict_ = json.loads(self.token)
    except json.JSONDecodeError:
        raise ValueError(
            "Failed to parse GCP secret token. The token value is not a "
            "valid JSON string."
        )

    if not isinstance(dict_, Dict):
        raise ValueError(
            "Failed to parse GCP secret token. The token value does not "
            "represent a GCP credential dictionary."
        )

    return dict_