Spaces#
- class SpacesClient(*, sdk_config: SDKConfiguration, generated_client: ApiClient)[source]#
Bases:
objectClient for managing Arize spaces.
This class is primarily intended for internal use within the SDK. Users are highly encouraged to access resource-specific functionality via
arize.ArizeClient.The spaces client is a thin wrapper around the generated REST API client, using the shared generated API client owned by
arize.config.SDKConfiguration.- Parameters:
sdk_config (SDKConfiguration) – Resolved SDK configuration.
generated_client (ApiClient) – Shared generated API client instance.
- list(*, organization_id: str | None = None, name: str | None = None, limit: int = DEFAULT_LIST_LIMIT, cursor: str | None = None) SpaceListResponse[source]#
List spaces the user has access to.
This endpoint supports cursor-based pagination. When provided,
organization_idfilters results to a particular organization.namefilters results to spaces whose name contains the given substring (case-insensitive).- Parameters:
organization_id (str | None) – Optional organization ID to filter results.
name (str | None) – Optional case-insensitive substring filter on space name.
limit (int) – Maximum number of spaces to return. The server may enforce an upper bound.
cursor (str | None) – Opaque pagination cursor from a previous response.
- Returns:
A paginated space list response from the Arize REST API.
- Raises:
ApiException – If the API request fails.
- Return type:
- create(*, name: str, organization_id: str, description: str | None = None) Space[source]#
Create a new space.
Space names must be unique within the target organization.
- Parameters:
- Returns:
The created space object.
- Raises:
ApiException – If the API request fails.
- Return type:
- delete(*, space: str) None[source]#
Delete a space by ID or name.
This operation is irreversible. It deletes the space and all resources that belong to it (models, monitors, dashboards, datasets, custom metrics, etc).
- Parameters:
space (str) – Space ID or name to delete.
- Returns:
This method returns None on success (204 No Content response).
- Raises:
ApiException – If the API request fails (for example, space not found or insufficient permissions).
- Return type:
None
- update(*, space: str, name: str | None = None, description: str | None = None) Space[source]#
Update a space by ID or name.
- Parameters:
- Returns:
The updated space object.
- Raises:
ValueError – If neither
namenordescriptionis provided.ApiException – If the API request fails (for example, space not found or insufficient permissions).
- Return type:
- add_user(*, space: str, user_id: str, role: PredefinedSpaceRole | CustomSpaceRole) SpaceMembership[source]#
Add a user to a space (or update their role if already a member).
If the user is already a member of the space, their role is updated to the specified value (upsert). The user must already be a member of the space’s parent organization — auto-enrollment is not performed.
Role constraints
Users with an
annotatoraccount role can only be assigned theannotatorpredefined space role.Users with a non-annotator account role cannot be assigned the
annotatorpredefined space role.
Requires space admin role for predefined roles, or
ROLE_BINDING_CREATEpermission for custom roles.- Parameters:
space (str) – Space ID or name.
user_id (str) – Global ID of the user to add.
role (PredefinedSpaceRole | CustomSpaceRole) – Role assignment for the user. Use
PredefinedSpaceRole(name="<role>")for predefined roles (admin,member,read-only,annotator), orCustomRoleAssignment(type="custom", id="<role_id>")for a custom RBAC role.
- Returns:
The created or updated space membership record.
- Raises:
ApiException – If the API request fails (for example, space or user not found, user not in the parent organization, role constraint violation, or insufficient permissions).
- Return type:
- remove_user(*, space: str, user_id: str) None[source]#
Remove a user from a space.
Removes both the legacy space-membership row and any RBAC role bindings for the user on this space.
Requires space admin role (legacy auth) or
ROLE_BINDING_DELETEpermission (RBAC).- Parameters:
- Returns:
This method returns None on success (204 No Content response).
- Raises:
ApiException – If the API request fails (for example, space or user not found, or user is not a member of the space).
- Return type:
None
Response Types#
- class CustomSpaceRole(*, type: Literal['custom'] = 'custom', id: Annotated[str, Strict(strict=True)], name: Annotated[str, Strict(strict=True)] | None = None)[source]#
Bases:
CustomRoleAssignmentA custom RBAC role assignment for a space.
The
typediscriminator is set to"custom"automatically.- Parameters:
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'protected_namespaces': (), 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class PredefinedSpaceRole(*, type: Literal['predefined'] = 'predefined', name: UserSpaceRole)[source]#
Bases:
PredefinedRoleAssignmentA predefined space role assignment.
The
typediscriminator is set to"predefined"automatically.- Parameters:
name (UserSpaceRole) – The predefined role name (
"admin","member","read-only", or"annotator").type (Literal['predefined'])
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'protected_namespaces': (), 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class Space(*, id: Annotated[str, Strict(strict=True)], name: Annotated[str, Strict(strict=True)], description: Annotated[str, Strict(strict=True)], created_at: datetime)[source]#
Bases:
BaseModelA space is a container within an organization for grouping related projects, datasets, and experiments. Spaces enable team collaboration or isolated experimentation with role-based access control.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
- id: StrictStr#
- name: StrictStr#
- description: StrictStr#
- created_at: datetime#
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'protected_namespaces': (), 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- classmethod from_json(json_str: str) Self | None[source]#
Create an instance of Space from a JSON string
- to_dict() Dict[str, Any][source]#
Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic’s self.model_dump(by_alias=True):
None is only added to the output dict for nullable fields that were set at model initialization. Other fields with value None are ignored.
- class SpaceListResponse(*, spaces: List[Space], pagination: PaginationMetadata)[source]#
Bases:
BaseModelCreate a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
pagination (PaginationMetadata)
- pagination: PaginationMetadata#
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'protected_namespaces': (), 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- classmethod from_json(json_str: str) Self | None[source]#
Create an instance of SpaceListResponse from a JSON string
- to_dict() Dict[str, Any][source]#
Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic’s self.model_dump(by_alias=True):
None is only added to the output dict for nullable fields that were set at model initialization. Other fields with value None are ignored.
- classmethod from_dict(obj: Dict[str, Any] | None) Self | None[source]#
Create an instance of SpaceListResponse from a dict
- to_df(by_alias: bool = False, exclude_none: str | bool = True, json_normalize: bool = False, convert_dtypes: bool = True, expand_field: str = 'additional_properties', expand_prefix: str = '') pd.DataFrame#
Convert a list of objects to a
pandas.DataFrame.- Behavior:
If an item is a Pydantic v2 model, use .model_dump(by_alias=…).
If an item is a mapping (dict-like), use it as-is.
Otherwise, raise a ValueError (unsupported row type).
- Parameters:
self (object) – The object instance containing the field to convert.
by_alias (bool) – Use field aliases when dumping Pydantic models.
exclude_none (str | bool) – Control None/NaN column dropping. - False: keep Nones as-is - “all”: drop columns where all values are None/NaN - “any”: drop columns where any value is None/NaN - True: alias for “all”
json_normalize (bool) – If True, flatten nested dicts via
pandas.json_normalize.convert_dtypes (bool) – If True, call
DataFrame.convert_dtypes()at the end.expand_field (str) – If set, look for this field in each row and expand its keys into top-level columns.
expand_prefix (str) – If set, prefix expanded column names with this string.
- Returns:
The converted DataFrame.
- Return type:
- class SpaceMembership(*, id: str, user_id: str, space_id: str, role: PredefinedSpaceRole | CustomSpaceRole)[source]#
Bases:
BaseModelA space membership record with domain-typed role.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
id (str)
user_id (str)
space_id (str)
role (Annotated[PredefinedSpaceRole | CustomSpaceRole, FieldInfo(annotation=NoneType, required=True, discriminator='type')])
- role: Annotated[PredefinedSpaceRole | CustomSpaceRole, FieldInfo(annotation=NoneType, required=True, discriminator='type')]#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class SpaceMembershipInput(*, user_id: Annotated[str, Strict(strict=True)], role: SpaceRoleAssignment)[source]#
Bases:
BaseModelCreate a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
role (SpaceRoleAssignment)
- user_id: StrictStr#
- role: SpaceRoleAssignment#
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'protected_namespaces': (), 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- classmethod from_json(json_str: str) Self | None[source]#
Create an instance of SpaceMembershipInput from a JSON string
- to_dict() Dict[str, Any][source]#
Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic’s self.model_dump(by_alias=True):
None is only added to the output dict for nullable fields that were set at model initialization. Other fields with value None are ignored.
- class SpaceRoleAssignment(*args, oneof_schema_1_validator: PredefinedRoleAssignment | None = None, oneof_schema_2_validator: CustomRoleAssignment | None = None, actual_instance: CustomRoleAssignment | PredefinedRoleAssignment | None = None, one_of_schemas: Set[str] = {'CustomRoleAssignment', 'PredefinedRoleAssignment'}, discriminator_value_class_map: Dict[str, str] = {})[source]#
Bases:
BaseModelA role assignment for a space membership. Discriminated by type: - predefined: one of the predefined roles (admin, member, read-only, annotator) - custom: a custom RBAC role identified by its ID
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'protected_namespaces': (), 'validate_assignment': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- classmethod from_json(json_str: str) Self[source]#
Returns the object represented by the json string
- class UserSpaceRole(value, names=_not_given, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
-
Space-level role for the user. - admin: Full access to the space and its resources. - member: Standard access to the space. - read-only: Read-only access to the space. - annotator: Limited access for annotation tasks only.
- ADMIN = 'admin'#
- MEMBER = 'member'#
- READ_MINUS_ONLY = 'read-only'#
- ANNOTATOR = 'annotator'#