Source code for aztk.models.secrets_configuration

from aztk.core.models import Model, fields
from aztk.error import InvalidModelError


[docs]class ServicePrincipalConfiguration(Model): """ Container class for AAD authentication """ tenant_id = fields.String() client_id = fields.String() credential = fields.String() batch_account_resource_id = fields.String() storage_account_resource_id = fields.String()
[docs]class SharedKeyConfiguration(Model): """ Container class for shared key authentication """ batch_account_name = fields.String() batch_account_key = fields.String() batch_service_url = fields.String() storage_account_name = fields.String() storage_account_key = fields.String() storage_account_suffix = fields.String()
[docs]class DockerConfiguration(Model): """ Configuration for connecting to private docker Args: endpoint (str): Which docker endpoint to use. Default to docker hub. username (str): Docker endpoint username password (str): Docker endpoint password """ endpoint = fields.String(default=None) username = fields.String(default=None) password = fields.String(default=None)
[docs]class SecretsConfiguration(Model): service_principal = fields.Model(ServicePrincipalConfiguration, default=None) shared_key = fields.Model(SharedKeyConfiguration, default=None) docker = fields.Model(DockerConfiguration, default=None) ssh_pub_key = fields.String(default=None) ssh_priv_key = fields.String(default=None) def __validate__(self): if self.service_principal and self.shared_key: raise InvalidModelError("Both service_principal and shared_key auth are configured, must use only one") if not self.service_principal and not self.shared_key: raise InvalidModelError("Neither service_principal and shared_key auth are configured, must use only one")
[docs] def is_aad(self): return self.service_principal is not None