Source code for azure.ai.resources.entities.ai_resource

# ---------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# ---------------------------------------------------------


from typing import Dict, List, Optional

from azure.ai.ml.entities import CustomerManagedKey, WorkspaceHub
from azure.ai.ml.entities._credentials import IdentityConfiguration
from azure.ai.ml.entities._workspace.networking import ManagedNetwork
from azure.ai.ml.entities._workspace_hub.workspace_hub_config import WorkspaceHubConfig


# Effectively a lightweight wrapper around a v2 WorkspaceHub
[docs]class AIResource: """An AI Resource, which serves as a container for projects and other AI-related objects :param name: The name for the AI resource. :type name: str :param description: The description of the AI resource. :type description: Optional[str] :param tags: The tags for the AI resource. :type tags: Optional[Dict[str, str]] :param display_name: The display name for the AI resource. :type display_name: Optional[str] :param location: The location for the AI resource. :type location: Optional[str] :param resource_group: The resource group associated with the AI resource. :type resource_group: Optional[str] :param managed_network: The managed network associated with the AI resource. :type managed_network: Optional[~azure.ai.ml.entities._workspace.networking.ManagedNetwork] :param storage_account: The storage account associated with the AI resource. :type storage_account: Optional[str] :param customer_managed_key: The customer managed key associated with the AI resource. :type customer_managed_key: Optional[~azure.ai.ml.entities.CustomerManagedKey] :param public_network_access: The public network access associated with the AI resource. :type public_network_access: Optional[str] :param identity: The identity associated with the AI resource. :type identity: Optional[~azure.ai.ml.entities.IdentityConfiguration] :param container_registry: The container registry associated with the AI resource. :type container_registry: Optional[str] :param primary_user_assigned_identity: The primary user assigned identity associated with the AI resource. :type primary_user_assigned_identity: Optional[str] :param default_project_resource_group: The default project's resource group. :type default_project_resource_group: Optional[str] """ def __init__( self, *, name: str, description: Optional[str] = None, tags: Optional[Dict[str, str]] = None, display_name: Optional[str] = None, location: Optional[str] = None, resource_group: Optional[str] = None, managed_network: Optional[ManagedNetwork] = None, storage_account: Optional[str] = None, customer_managed_key: Optional[CustomerManagedKey] = None, public_network_access: Optional[str] = None, identity: Optional[IdentityConfiguration] = None, container_registry: Optional[str] = None, primary_user_assigned_identity: Optional[str] = None, default_project_resource_group: Optional[str] = None, # Unpacked WorkspaceHubConfig field **kwargs, ) -> None: self._workspace_hub = WorkspaceHub( name=name, description=description, tags=tags, display_name=display_name, location=location, resource_group=resource_group, managed_network=managed_network, storage_account=storage_account, customer_managed_key=customer_managed_key, public_network_access=public_network_access, identity=identity, container_registry=container_registry, primary_user_assigned_identity=primary_user_assigned_identity, workspace_hub_config=WorkspaceHubConfig( additional_workspace_storage_accounts=[], default_workspace_resource_group=default_project_resource_group, ), **kwargs, ) @classmethod def _from_v2_workspace_hub(cls, workspace_hub: WorkspaceHub) -> "AIResource": """Create a connection from a v2 AML SDK workspace hub. For internal use. :param workspace_hub: The workspace connection object to convert into a workspace. :type workspace_hub: ~azure.ai.ml.entities.WorkspaceConnection :return: The converted AI resource. :rtype: ~azure.ai.resources.entities.AIResource """ # It's simpler to create a placeholder resource, then overwrite the internal WC. # We don't need to worry about the potentially changing WC fields this way. resource = cls(name="a") resource._workspace_hub = workspace_hub return resource @property def id(self) -> str: """The workspace hub ID. Read-only, set by the backend. :return: The workspace hub ID. :rtype: str """ return self._workspace_hub.id @property def name(self) -> str: """The workspace hub name. :return: The workspace hub name. :rtype: str """ return self._workspace_hub.name @name.setter def name(self, value: str): """Sets the workspace hub name. :param value: The name to assign the workspace hub. :type value: str """ if not value: return self._workspace_hub.name = value @property def description(self) -> str: """The workspace hub description. :return: The workspace hub description. :rtype: str """ return self._workspace_hub.description @description.setter def description(self, value: str): """Sets the description of the workspace hub. :param value: The description to assign the workspace hub. :type value: str """ if not value: return self._workspace_hub.description = value @property def tags(self) -> Optional[Dict[str, str]]: """Tags for the workspace hub. :return: The tags of the workspace hub. :rtype: str """ return self._workspace_hub.tags @tags.setter def tags(self, value: Optional[Dict[str, str]]): """Sets the tags on the workspace hub. :param value: The tags to assign to the workspace hub. :type value: str """ if not value: return self._workspace_hub.tags = value @property def display_name(self) -> str: """The workspace hub's display name. :return: The display name of the workspace hub. :rtype: str """ return self._workspace_hub.display_name @display_name.setter def display_name(self, value: str): """Sets the display name of the workspace hub. :param value: The display name to assign to the workspace hub. :type value: str """ if not value: return self._workspace_hub.display_name = value @property def location(self) -> str: """The workspace hub location. :return: The location of the workspace hub. :rtype: str """ return self._workspace_hub.location @location.setter def location(self, value: str): """Sets the location of the workspace hub. :param value: The location to assign to the workspace hub. :type value: str """ if not value: return self._workspace_hub.location = value @property def resource_group(self) -> str: """The workspace hub's resource group. :return: The name of the resource group associated with the workspace hub. :rtype: str """ return self._workspace_hub.resource_group @resource_group.setter def resource_group(self, value: str): """Sets the workspace hub's resource group. :param value: The name of the resource group to associate with the workspace hub. :type value: str """ if not value: return self._workspace_hub.resource_group = value @property def managed_network(self) -> Optional[ManagedNetwork]: """The managed network to which the workspace hub is connected. :return: The name of the managed network associated with the workspace hub. :rtype: Optional[~azure.ai.ml.entities._workspace.networking.ManagedNetwork] """ return self._workspace_hub.managed_network @managed_network.setter def managed_network(self, value: Optional[ManagedNetwork]): """Sets the managed network to associate the workspace hub with :param value: The name of the managed network to associate the workspace hub with. :type value: Optional[~azure.ai.ml.entities._workspace.networking.ManagedNetwork] """ if not value: return self._workspace_hub.managed_network = value @property def storage_account(self) -> str: """The storage account for the workspace hub. :return: The name of the storage account associated with the workspace hub. :rtype: str """ return self._workspace_hub.storage_account @storage_account.setter def storage_account(self, value: str): """Sets the storage account for the workspace hub. :param value: The name of the storage account to associate with the workspace hub. :type value: str """ if not value: return self._workspace_hub.storage_account = value # read only so no setter @property def existing_workspaces(self) -> List[str]: """The existing workspaces related to the workspace hub. :return: The names of the existing workspaces related to the workspace hub. :rtype: List[str] """ return self._workspace_hub.existing_workspaces @property def customer_managed_key(self) -> Optional[CustomerManagedKey]: """The customer managed key associated with the workspace hub. :return: The customer managed key associated with the workspace hub. :rtype: Optional[~azure.ai.ml.entities.CustomerManagedKey] """ return self._workspace_hub.customer_managed_key @customer_managed_key.setter def customer_managed_key(self, value: Optional[CustomerManagedKey]): """Sets the customer managed key associated with the workspace hub. :param value: The customer managed key to associate with the workspace hub. :type value: Optional[~azure.ai.ml.entities.CustomerManagedKey] """ if not value: return self._workspace_hub.customer_managed_key = value @property def public_network_access(self) -> str: """The public network access to assign to the workspace hub. :return: The public network access to assign to the workspace hub. :rtype: str """ return self._workspace_hub.public_network_access @public_network_access.setter def public_network_access(self, value: str): """Sets the public network access for the workspace hub. :param value: The public network access for the workspace hub :type value: str """ if not value: return self._workspace_hub.public_network_access = value @property def identity(self) -> Optional[IdentityConfiguration]: """The identity associated with the workspace hub. :return: The identity associated with the workspace hub. :rtype: Optional[~azure.ai.ml.entities.IdentityConfiguration] """ return self._workspace_hub.identity @identity.setter def identity(self, value: Optional[IdentityConfiguration]): """Sets the identity associated with the workspace hub. :param value: The identity to associate with the workspace hub. :type value: Optional[~azure.ai.ml.entities.IdentityConfiguration] """ if not value: return self._workspace_hub.identity = value @property def container_registry(self) -> str: """The container registry associated with the workspace hub. :return: The container registry associated with the workspace hub. :rtype: str """ return self._workspace_hub.container_registry @container_registry.setter def container_registry(self, value: str): """Sets the container registry for the workspace hub. :param value: The container registry to assign to the resource. :type value: str """ if not value: return self._workspace_hub.container_registry = value @property def primary_user_assigned_identity(self) -> str: """The primary user assigned identity associated with the workspace hub. :return: The primary user assigned identity associated with the workspace hub. :rtype: str """ return self._workspace_hub.primary_user_assigned_identity @primary_user_assigned_identity.setter def primary_user_assigned_identity(self, value: str): """Sets the primary user assigned identity for the workspace hub. :param value: The primary user assigned identity to assign to the resource. :type value: str """ if not value: return self._workspace_hub.primary_user_assigned_identity = value # Read only so no setter. @property def enable_data_isolation(self) -> bool: """Whether or not data isolation is enabled for the workspace hub. :return: Boolean value indicating whether or not data isolation is enabled for the workspace hub. :rtype: bool """ return self._workspace_hub.enable_data_isolation @property def default_project_resource_group(self) -> str: """The default project's resource group. :return: The name of the default project's resource group. :rtype: str """ return self._workspace_hub.workspace_hub_config.default_workspace_resource_group @default_project_resource_group.setter def default_project_resource_group(self, value: str): """Sets the default project's resource group. :param value: The name of the resource group for the default project. :type value: str """ if not value: return self._workspace_hub.workspace_hub_config.default_workspace_resource_group = value