Roles#
- class RolesClient(*, sdk_config: SDKConfiguration, generated_client: ApiClient)[source]#
Bases:
objectClient for managing Arize roles.
This class is primarily intended for internal use within the SDK. Users are highly encouraged to access resource-specific functionality via
arize.ArizeClient.The roles 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(*, limit: int = DEFAULT_LIST_LIMIT, cursor: str | None = None, is_predefined: bool | None = None) ListRolesResponse[source]#
List roles for the authenticated user’s account.
This endpoint supports cursor-based pagination. When provided,
is_predefinedfilters results to predefined or custom roles only.- Parameters:
limit (int) – Maximum number of roles to return. The server enforces an upper bound of 100.
cursor (str | None) – Opaque pagination cursor from a previous response.
is_predefined (bool | None) – When
True, return only system-defined predefined roles. WhenFalse, return only custom (account-defined) roles. WhenNone(default), return all roles.
- Returns:
A paginated role list response from the Arize REST API.
- Raises:
ApiException – If the API request fails.
- Return type:
- get(*, role: str) Role[source]#
Get a role by name or ID.
- Parameters:
role (str) – Role name or identifier (base64). If the value looks like an ID it is used directly; otherwise it is resolved by name.
- Returns:
The role object.
- Raises:
NotFoundError – If the role name cannot be found.
ApiException – If the API request fails (for example, role not found).
- Return type:
- create(*, name: str, permissions: builtins.list[Permission], description: str | None = None) Role[source]#
Create a new custom role.
Role names must be unique within the account. At least one permission must be provided. Predefined (system-managed) roles cannot be created through this endpoint.
- Parameters:
name (str) – Role name (must be unique within the account, max 255 chars).
permissions (builtins.list[Permission]) – List of permissions to grant (e.g.
[Permission.PROJECT_READ, Permission.DATASET_CREATE]). At least one is required.description (str | None) – Optional description of the role’s purpose (max 1000 chars).
- Returns:
The created role object.
- Raises:
ApiException – If the API request fails.
- Return type:
- update(*, role: str, name: str | None | UNSET = _UNSET, description: str | None | UNSET = _UNSET, permissions: builtins.list[Permission] | None | UNSET = _UNSET) Role[source]#
Update a custom role by name or ID.
At least one field must be provided. Omitted fields are preserved. Passing
description=Noneclears the description. Predefined roles cannot be updated. Whenpermissionsis provided, the existing permissions are fully replaced with the new set.- Parameters:
role (str) – Role name or identifier (base64). If the value looks like an ID it is used directly; otherwise it is resolved by name.
name (str | None | UNSET) – Updated name for the role (max 255 chars). Omit to preserve.
description (str | None | UNSET) – Updated description of the role (max 1000 chars). Omit to preserve, or pass
Noneto clear.permissions (builtins.list[Permission] | None | UNSET) – Replacement set of permissions. When provided, fully replaces existing permissions. Omit or pass
Noneto preserve.
- Returns:
The updated role object.
- Raises:
NotFoundError – If the role name cannot be found.
ValueError – If none of
name,description, orpermissionsis provided.ApiException – If the API request fails (for example, role not found, insufficient permissions, or attempting to update a predefined role).
- Return type:
- delete(*, role: str) None[source]#
Delete a custom role by name or ID.
Predefined (system-managed) roles cannot be deleted.
- Parameters:
role (str) – Role name or identifier (base64). If the value looks like an ID it is used directly; otherwise it is resolved by name.
- Raises:
NotFoundError – If the role name cannot be found.
ApiException – If the API request fails (for example, role not found, insufficient permissions, or attempting to delete a predefined role).
- Return type:
None
Response Types#
Public type re-exports for the roles subdomain.
- class ListRolesResponse(*, roles: List[Role], 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 ListRolesResponse 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 ListRolesResponse 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 Permission(value, names=_not_given, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
-
A permission identifier following the pattern {RESOURCE}_{ACTION}. Auto-generated from proto/auth/protocol/permissions.proto.
- AGENT_ROLE_CREATE = 'AGENT_ROLE_CREATE'#
- AGENT_ROLE_DELETE = 'AGENT_ROLE_DELETE'#
- AGENT_ROLE_READ = 'AGENT_ROLE_READ'#
- AGENT_ROLE_UPDATE = 'AGENT_ROLE_UPDATE'#
- AI_PROVIDER_READ = 'AI_PROVIDER_READ'#
- ALYX_RUN = 'ALYX_RUN'#
- ANNOTATION_CONFIG_CREATE = 'ANNOTATION_CONFIG_CREATE'#
- ANNOTATION_CONFIG_DELETE = 'ANNOTATION_CONFIG_DELETE'#
- ANNOTATION_CONFIG_READ = 'ANNOTATION_CONFIG_READ'#
- ANNOTATION_CONFIG_UPDATE = 'ANNOTATION_CONFIG_UPDATE'#
- COST_CONFIG_CREATE = 'COST_CONFIG_CREATE'#
- COST_CONFIG_DELETE = 'COST_CONFIG_DELETE'#
- COST_CONFIG_READ = 'COST_CONFIG_READ'#
- COST_CONFIG_UPDATE = 'COST_CONFIG_UPDATE'#
- CUSTOM_METRIC_CREATE = 'CUSTOM_METRIC_CREATE'#
- CUSTOM_METRIC_DELETE = 'CUSTOM_METRIC_DELETE'#
- CUSTOM_METRIC_READ = 'CUSTOM_METRIC_READ'#
- CUSTOM_METRIC_UPDATE = 'CUSTOM_METRIC_UPDATE'#
- DASHBOARD_CREATE = 'DASHBOARD_CREATE'#
- DASHBOARD_DELETE = 'DASHBOARD_DELETE'#
- DASHBOARD_READ = 'DASHBOARD_READ'#
- DASHBOARD_RESTRICT = 'DASHBOARD_RESTRICT'#
- DASHBOARD_UPDATE = 'DASHBOARD_UPDATE'#
- DATASET_CREATE = 'DATASET_CREATE'#
- DATASET_DELETE = 'DATASET_DELETE'#
- DATASET_EXAMPLE_ANNOTATE = 'DATASET_EXAMPLE_ANNOTATE'#
- DATASET_EXAMPLE_CREATE = 'DATASET_EXAMPLE_CREATE'#
- DATASET_EXAMPLE_DELETE = 'DATASET_EXAMPLE_DELETE'#
- DATASET_EXAMPLE_READ = 'DATASET_EXAMPLE_READ'#
- DATASET_EXAMPLE_UPDATE = 'DATASET_EXAMPLE_UPDATE'#
- DATASET_READ = 'DATASET_READ'#
- DATASET_UPDATE = 'DATASET_UPDATE'#
- DATASET_VIEW_CREATE = 'DATASET_VIEW_CREATE'#
- DATASET_VIEW_DELETE = 'DATASET_VIEW_DELETE'#
- DATASET_VIEW_READ = 'DATASET_VIEW_READ'#
- DATASET_VIEW_UPDATE = 'DATASET_VIEW_UPDATE'#
- DATA_FABRIC_CONNECTOR_CREATE = 'DATA_FABRIC_CONNECTOR_CREATE'#
- DATA_FABRIC_CONNECTOR_DELETE = 'DATA_FABRIC_CONNECTOR_DELETE'#
- DATA_FABRIC_CONNECTOR_READ = 'DATA_FABRIC_CONNECTOR_READ'#
- DATA_FABRIC_CONNECTOR_UPDATE = 'DATA_FABRIC_CONNECTOR_UPDATE'#
- EVALUATOR_CREATE = 'EVALUATOR_CREATE'#
- EVALUATOR_DELETE = 'EVALUATOR_DELETE'#
- EVALUATOR_READ = 'EVALUATOR_READ'#
- EVALUATOR_UPDATE = 'EVALUATOR_UPDATE'#
- EXPERIMENT_CREATE = 'EXPERIMENT_CREATE'#
- EXPERIMENT_DELETE = 'EXPERIMENT_DELETE'#
- EXPERIMENT_EVAL_TASK_CREATE = 'EXPERIMENT_EVAL_TASK_CREATE'#
- EXPERIMENT_EVAL_TASK_DELETE = 'EXPERIMENT_EVAL_TASK_DELETE'#
- EXPERIMENT_EVAL_TASK_READ = 'EXPERIMENT_EVAL_TASK_READ'#
- EXPERIMENT_EVAL_TASK_UPDATE = 'EXPERIMENT_EVAL_TASK_UPDATE'#
- EXPERIMENT_READ = 'EXPERIMENT_READ'#
- EXPERIMENT_RUN_ANNOTATE = 'EXPERIMENT_RUN_ANNOTATE'#
- EXPERIMENT_RUN_READ = 'EXPERIMENT_RUN_READ'#
- EXPERIMENT_UPDATE = 'EXPERIMENT_UPDATE'#
- FILE_IMPORT_CREATE = 'FILE_IMPORT_CREATE'#
- FILE_IMPORT_DELETE = 'FILE_IMPORT_DELETE'#
- FILE_IMPORT_READ = 'FILE_IMPORT_READ'#
- FILE_IMPORT_UPDATE = 'FILE_IMPORT_UPDATE'#
- LLM_INTEGRATION_CREATE = 'LLM_INTEGRATION_CREATE'#
- LLM_INTEGRATION_DELETE = 'LLM_INTEGRATION_DELETE'#
- LLM_INTEGRATION_UPDATE = 'LLM_INTEGRATION_UPDATE'#
- MANAGED_AGENT_CREATE = 'MANAGED_AGENT_CREATE'#
- MANAGED_AGENT_DELETE = 'MANAGED_AGENT_DELETE'#
- MANAGED_AGENT_READ = 'MANAGED_AGENT_READ'#
- MANAGED_AGENT_UPDATE = 'MANAGED_AGENT_UPDATE'#
- ML_MODEL_CREATE = 'ML_MODEL_CREATE'#
- ML_MODEL_DELETE = 'ML_MODEL_DELETE'#
- ML_MODEL_READ = 'ML_MODEL_READ'#
- ML_MODEL_UPDATE = 'ML_MODEL_UPDATE'#
- MONITOR_CREATE = 'MONITOR_CREATE'#
- MONITOR_DELETE = 'MONITOR_DELETE'#
- MONITOR_READ = 'MONITOR_READ'#
- MONITOR_TRIGGER = 'MONITOR_TRIGGER'#
- MONITOR_UPDATE = 'MONITOR_UPDATE'#
- ORGANIZATION_CREATE = 'ORGANIZATION_CREATE'#
- ORGANIZATION_DELETE = 'ORGANIZATION_DELETE'#
- ORGANIZATION_READ = 'ORGANIZATION_READ'#
- ORGANIZATION_UPDATE = 'ORGANIZATION_UPDATE'#
- PLAYGROUND_RUN = 'PLAYGROUND_RUN'#
- PLAYGROUND_VIEW_CREATE = 'PLAYGROUND_VIEW_CREATE'#
- PLAYGROUND_VIEW_DELETE = 'PLAYGROUND_VIEW_DELETE'#
- PLAYGROUND_VIEW_READ = 'PLAYGROUND_VIEW_READ'#
- PLAYGROUND_VIEW_UPDATE = 'PLAYGROUND_VIEW_UPDATE'#
- PROJECT_CREATE = 'PROJECT_CREATE'#
- PROJECT_DELETE = 'PROJECT_DELETE'#
- PROJECT_EVAL_TASK_CREATE = 'PROJECT_EVAL_TASK_CREATE'#
- PROJECT_EVAL_TASK_DELETE = 'PROJECT_EVAL_TASK_DELETE'#
- PROJECT_EVAL_TASK_READ = 'PROJECT_EVAL_TASK_READ'#
- PROJECT_EVAL_TASK_UPDATE = 'PROJECT_EVAL_TASK_UPDATE'#
- PROJECT_READ = 'PROJECT_READ'#
- PROJECT_RESTRICT = 'PROJECT_RESTRICT'#
- PROJECT_SPAN_ANNOTATE = 'PROJECT_SPAN_ANNOTATE'#
- PROJECT_SPAN_CREATE = 'PROJECT_SPAN_CREATE'#
- PROJECT_SPAN_DELETE = 'PROJECT_SPAN_DELETE'#
- PROJECT_SPAN_READ = 'PROJECT_SPAN_READ'#
- PROJECT_SPAN_UPDATE = 'PROJECT_SPAN_UPDATE'#
- PROJECT_UPDATE = 'PROJECT_UPDATE'#
- PROMPT_CREATE = 'PROMPT_CREATE'#
- PROMPT_DELETE = 'PROMPT_DELETE'#
- PROMPT_OPTIMIZE_TASK_CREATE = 'PROMPT_OPTIMIZE_TASK_CREATE'#
- PROMPT_OPTIMIZE_TASK_DELETE = 'PROMPT_OPTIMIZE_TASK_DELETE'#
- PROMPT_OPTIMIZE_TASK_READ = 'PROMPT_OPTIMIZE_TASK_READ'#
- PROMPT_OPTIMIZE_TASK_UPDATE = 'PROMPT_OPTIMIZE_TASK_UPDATE'#
- PROMPT_READ = 'PROMPT_READ'#
- PROMPT_UPDATE = 'PROMPT_UPDATE'#
- QUEUE_CREATE = 'QUEUE_CREATE'#
- QUEUE_DELETE = 'QUEUE_DELETE'#
- QUEUE_READ = 'QUEUE_READ'#
- QUEUE_RECORD_ANNOTATE = 'QUEUE_RECORD_ANNOTATE'#
- QUEUE_RECORD_CREATE = 'QUEUE_RECORD_CREATE'#
- QUEUE_RECORD_DELETE = 'QUEUE_RECORD_DELETE'#
- QUEUE_RECORD_READ = 'QUEUE_RECORD_READ'#
- QUEUE_RECORD_UPDATE = 'QUEUE_RECORD_UPDATE'#
- QUEUE_UPDATE = 'QUEUE_UPDATE'#
- REMOTE_ENDPOINT_INTEGRATION_CREATE = 'REMOTE_ENDPOINT_INTEGRATION_CREATE'#
- REMOTE_ENDPOINT_INTEGRATION_DELETE = 'REMOTE_ENDPOINT_INTEGRATION_DELETE'#
- REMOTE_ENDPOINT_INTEGRATION_READ = 'REMOTE_ENDPOINT_INTEGRATION_READ'#
- REMOTE_ENDPOINT_INTEGRATION_UPDATE = 'REMOTE_ENDPOINT_INTEGRATION_UPDATE'#
- ROLE_BINDING_CREATE = 'ROLE_BINDING_CREATE'#
- ROLE_BINDING_DELETE = 'ROLE_BINDING_DELETE'#
- ROLE_BINDING_READ = 'ROLE_BINDING_READ'#
- ROLE_CREATE = 'ROLE_CREATE'#
- ROLE_DELETE = 'ROLE_DELETE'#
- ROLE_READ = 'ROLE_READ'#
- ROLE_UPDATE = 'ROLE_UPDATE'#
- SERVICE_KEY_CREATE = 'SERVICE_KEY_CREATE'#
- SERVICE_KEY_READ = 'SERVICE_KEY_READ'#
- SERVICE_KEY_REVOKE = 'SERVICE_KEY_REVOKE'#
- SPACE_CREATE = 'SPACE_CREATE'#
- SPACE_DELETE = 'SPACE_DELETE'#
- SPACE_READ = 'SPACE_READ'#
- SPACE_UPDATE = 'SPACE_UPDATE'#
- TAG_CREATE = 'TAG_CREATE'#
- TAG_DELETE = 'TAG_DELETE'#
- TAG_READ = 'TAG_READ'#
- TAG_UPDATE = 'TAG_UPDATE'#
- TRACE_VIEW_CREATE = 'TRACE_VIEW_CREATE'#
- TRACE_VIEW_DELETE = 'TRACE_VIEW_DELETE'#
- TRACE_VIEW_READ = 'TRACE_VIEW_READ'#
- TRACE_VIEW_UPDATE = 'TRACE_VIEW_UPDATE'#
- USER_CREATE = 'USER_CREATE'#
- USER_DELETE = 'USER_DELETE'#
- USER_PERMISSION_UPDATE = 'USER_PERMISSION_UPDATE'#
- USER_READ = 'USER_READ'#
- USER_UPDATE = 'USER_UPDATE'#
- class Role(*, id: Annotated[str, Strict(strict=True)], name: Annotated[str, Strict(strict=True)], description: Annotated[str, Strict(strict=True)] | None = None, permissions: List[Permission], is_predefined: Annotated[bool, Strict(strict=True)], created_at: datetime, updated_at: datetime)[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:
- id: StrictStr#
- name: StrictStr#
- permissions: List[Permission]#
- is_predefined: StrictBool#
- created_at: datetime#
- updated_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 Role 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.