Skip to main content
Version: 2026.04

V3Client

Quick-reference table

MethodDescription
create_resource()Upload a file and register it as a new resource.
create_resource_revision()Upload a new file revision for an existing resource.
create_comment()Upload a file and attach it as a comment on a resource.
update_comment()Replace an existing comment's file.
get_content()Download raw file bytes from a resource, revision, or comment.
get_resource()Retrieve a resource by ID.
get_resource_revision()Retrieve a specific revision of a resource.
get_comment()Retrieve a comment by ID.
list_resources()List resources with optional filters.
list_resource_revisions()List revisions for a resource.
list_comments()List comments on a resource.
archive_resource()Archive a resource.
restore_resource()Restore an archived resource.
archive_comment()Archive a comment.
restore_comment()Restore an archived comment.
create_revision_relationship()Create a typed relationship between two revisions.
list_revision_relationships()List relationships for a revision.
list_revision_relationship_types()List available relationship types.
create_receiving_remote()Create a receiving remote connection.
create_sending_remote()Create a sending remote connection.
get_receiving_remote()Retrieve a receiving remote by ID.
get_sending_remote()Retrieve a sending remote by ID.
list_receiving_remotes()List receiving remote connections.
list_sending_remotes()List sending remote connections.
update_receiving_remote()Update a receiving remote connection.
update_sending_remote()Update a sending remote connection.

Upload

create_resource

V3Client.create_resource(
path,
resource_type,
*,
description=None,
version_name=None,
external_identifier=None,
display_name=None,
) -> ResourceDto

Upload a local file and register it as a new resource. The resource_type determines how the resource is classified. V3Client handles file tokenisation and storage automatically — pass a plain filesystem path.

Required parameters

NameTypeDescription
pathPathLikeFilesystem path to the file to upload.
resource_typeResourceTypeDtoClassification of the resource (e.g. ResourceTypeDto.MODEL).

Optional parameters

NameTypeDefaultDescription
descriptionstr | NoneNoneText describing the resource's purpose or contents.
version_namestr | NoneNoneUser-defined version label (e.g. "v2.1.0").
external_identifierstr | NoneNoneIdentifier from an external system for cross-referencing.
display_namestr | NoneNoneHuman-readable name for the resource.

Returns: ResourceDto — the newly created resource.

from istari_digital_client.v3.models.resource_type_dto import ResourceTypeDto

resource = client.create_resource(
path="model.onnx",
resource_type=ResourceTypeDto.MODEL,
)
print(resource.id)

create_resource_revision

V3Client.create_resource_revision(
resource_id,
path,
*,
description=None,
version_name=None,
external_identifier=None,
display_name=None,
) -> ResourceRevisionDto

Upload a new file and add it as a revision to an existing resource. Each call appends a new revision to the resource's history; previous revisions remain accessible.

Required parameters

NameTypeDescription
resource_idstrUnique identifier of the resource to add a revision to.
pathPathLikeFilesystem path to the new file.

Optional parameters

NameTypeDefaultDescription
descriptionstr | NoneNoneDescription for this revision.
version_namestr | NoneNoneVersion label for this revision.
external_identifierstr | NoneNoneExternal system identifier.
display_namestr | NoneNoneHuman-readable name for this revision.

Returns: ResourceRevisionDto — the newly created revision.

revision = client.create_resource_revision( resource_id="550e8400-e29b-41d4-a716-446655440000", path="model-v2.onnx", ) print(revision.id)

create_comment

V3Client.create_comment(
resource_id,
path,
parent_comment_id=None,
) -> CommentDto

Upload a local file and attach it as a comment on a resource. Supports threaded replies via parent_comment_id.

Required parameters

NameTypeDescription
resource_idstrUnique identifier of the resource to comment on.
pathPathLikeFilesystem path to the comment file.

Optional parameters

NameTypeDefaultDescription
parent_comment_idstr | NoneNoneID of the parent comment to reply to.

Returns: CommentDto — the newly created comment.

comment = client.create_comment( resource_id="550e8400-e29b-41d4-a716-446655440000", path="review-notes.pdf", ) print(comment.id)

update_comment

V3Client.update_comment(
resource_id,
comment_id,
path,
) -> CommentDto

Replace an existing comment's content by uploading a new file. The previous file is retained in history.

Parameters

NameTypeDescription
resource_idstrUnique identifier of the parent resource.
comment_idstrUnique identifier of the comment to update.
pathPathLikeFilesystem path to the replacement comment file.

Returns: CommentDto — the updated comment.

updated = client.update_comment( resource_id="550e8400-e29b-41d4-a716-446655440000", comment_id="aabb1234-...", path="corrected-review.pdf", )

Retrieve

get_content

V3Client.get_content(
resource,
) -> bytes

Fetch and return the raw file content bytes for a resource, resource revision, or comment. The object must have a content_token attribute set.

tip

Pass the object returned by get_resource(), get_resource_revision(), or get_comment() directly — no need to extract the token manually.

Parameters

NameTypeDescription
resourceResourceDto | ResourceRevisionDto | CommentDtoObject whose content to download. Must have a content_token.

Returns: bytes — raw file content.

resource = client.get_resource("550e8400-e29b-41d4-a716-446655440000") data = client.get_content(resource) with open("downloaded.onnx", "wb") as f: f.write(data)

get_resource

V3Client.get_resource(
resource_id,
) -> ResourceDto

Retrieve a resource by its unique identifier.

Parameters

NameTypeDescription
resource_idstrUnique identifier of the resource to retrieve.

Returns: ResourceDto — the resource.

resource = client.get_resource("550e8400-e29b-41d4-a716-446655440000") print(resource.resource_type)

get_resource_revision

V3Client.get_resource_revision(
resource_id,
revision_id,
) -> ResourceRevisionDto

Retrieve a specific revision of a resource.

Parameters

NameTypeDescription
resource_idstrUnique identifier of the parent resource.
revision_idstrUnique identifier of the revision to retrieve.

Returns: ResourceRevisionDto — the revision.

revision = client.get_resource_revision( resource_id="550e8400-e29b-41d4-a716-446655440000", revision_id="aabb1234-...", ) print(revision.version_name)

get_comment

V3Client.get_comment(
resource_id,
comment_id,
) -> CommentDto

Retrieve a comment by its ID.

Parameters

NameTypeDescription
resource_idstrUnique identifier of the parent resource.
comment_idstrUnique identifier of the comment to retrieve.

Returns: CommentDto — the comment.

comment = client.get_comment( resource_id="550e8400-e29b-41d4-a716-446655440000", comment_id="aabb1234-...", ) data = client.get_content(comment)

List

list_resources

V3Client.list_resources(
*,
cursor=None,
size=None,
include_total=None,
resource_id=None,
created_by_id=None,
name=None,
type_name=None,
description=None,
version_name=None,
external_identifier=None,
display_name=None,
mime_type=None,
archive_status=None,
) -> CursorPageResourceDto

List resources with optional filters. Results are cursor-paginated; pass the cursor field from the previous page to fetch the next.

tip

Most filter parameters accept a list and support a ! prefix for negation (e.g. type_name=["!artifact"] excludes artifacts).

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor from the previous response.
sizeint | NoneNonePage size (0–100, default 10).
include_totalbool | NoneNoneInclude total item count in the response.
resource_idlist[str] | NoneNoneFilter by resource ID(s). Supports ! negation.
created_by_idlist[str] | NoneNoneFilter by creator user ID(s).
namelist[str] | NoneNoneFilter by filename (exact match).
type_namelist[str] | NoneNoneFilter by type: model, artifact, file.
descriptionlist[str] | NoneNoneFilter by description (exact match).
version_namelist[str] | NoneNoneFilter by version label.
external_identifierlist[str] | NoneNoneFilter by external identifier.
display_namelist[str] | NoneNoneFilter by display name (exact match).
mime_typelist[str] | NoneNoneFilter by MIME type (e.g. model/stl).
archive_statusArchiveStatus | NoneNoneactive (default), archived, or all.

Returns: CursorPageResourceDto — paginated list of resources.

page = client.list_resources(type_name=["model"], size=20) for r in page.items: print(r.id, r.resource_type)

list_resource_revisions

V3Client.list_resource_revisions(
resource_id,
*,
cursor=None,
size=None,
include_total=None,
file_revision_id=None,
created_by_id=None,
name=None,
description=None,
version_name=None,
external_identifier=None,
display_name=None,
mime_type=None,
) -> CursorPageResourceRevisionDto

List revisions for a resource. Results are cursor-paginated.

Required parameters

NameTypeDescription
resource_idstrUnique identifier of the resource whose revisions to list.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
file_revision_idlist[str] | NoneNoneFilter by revision ID(s).
created_by_idlist[str] | NoneNoneFilter by creator user ID(s).
namelist[str] | NoneNoneFilter by filename.
descriptionlist[str] | NoneNoneFilter by description.
version_namelist[str] | NoneNoneFilter by version label.
external_identifierlist[str] | NoneNoneFilter by external identifier.
display_namelist[str] | NoneNoneFilter by display name.
mime_typelist[str] | NoneNoneFilter by MIME type.

Returns: CursorPageResourceRevisionDto — paginated list of revisions.

page = client.list_resource_revisions( resource_id="550e8400-e29b-41d4-a716-446655440000", size=10, ) for rev in page.items: print(rev.id, rev.version_name)

list_comments

V3Client.list_comments(
resource_id,
*,
cursor=None,
size=None,
include_total=None,
comment_id=None,
created_by_id=None,
) -> CursorPageCommentDto

List comments on a resource. Results are cursor-paginated.

Required parameters

NameTypeDescription
resource_idstrUnique identifier of the resource whose comments to list.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
comment_idlist[str] | NoneNoneFilter by comment ID(s). Supports ! negation.
created_by_idlist[str] | NoneNoneFilter by creator user ID(s).

Returns: CursorPageCommentDto — paginated list of comments.

page = client.list_comments( resource_id="550e8400-e29b-41d4-a716-446655440000", ) for c in page.items: print(c.id)

Archive & Restore

archive_resource

V3Client.archive_resource(
resource_id,
) -> None

Archive a resource. Archived resources are excluded from default list queries unless archive_status="archived" or archive_status="all" is passed.

Parameters

NameTypeDescription
resource_idstrUnique identifier of the resource to archive.

Returns: None

client.archive_resource("550e8400-e29b-41d4-a716-446655440000")

restore_resource

V3Client.restore_resource(
resource_id,
) -> ResourceDto

Restore an archived resource, making it active again.

Parameters

NameTypeDescription
resource_idstrUnique identifier of the resource to restore.

Returns: ResourceDto — the restored resource.

resource = client.restore_resource("550e8400-e29b-41d4-a716-446655440000") print(resource.id)

archive_comment

V3Client.archive_comment(
resource_id,
comment_id,
) -> CommentDto

Archive a comment on a resource.

Parameters

NameTypeDescription
resource_idstrUnique identifier of the parent resource.
comment_idstrUnique identifier of the comment to archive.

Returns: CommentDto — the archived comment.

client.archive_comment( resource_id="550e8400-e29b-41d4-a716-446655440000", comment_id="aabb1234-...", )

</TabItem>
<TabItem value="full" label="Full example">

```python
page = client.list_comments(resource_id="550e8400-e29b-41d4-a716-446655440000") for c in page.items: client.archive_comment( resource_id="550e8400-e29b-41d4-a716-446655440000", comment_id=c.id, )

restore_comment

V3Client.restore_comment(
resource_id,
comment_id,
) -> CommentDto

Restore an archived comment.

Parameters

NameTypeDescription
resource_idstrUnique identifier of the parent resource.
comment_idstrUnique identifier of the comment to restore.

Returns: CommentDto — the restored comment.

comment = client.restore_comment( resource_id="550e8400-e29b-41d4-a716-446655440000", comment_id="aabb1234-...", )

Revision Relationships

create_revision_relationship

V3Client.create_revision_relationship(
new_revision_relationship_dto,
) -> RevisionRelationshipDto

Create a typed relationship between two revisions. Relationships record provenance, dependency, or lineage links between resource versions.

Parameters

NameTypeDescription
new_revision_relationship_dtoNewRevisionRelationshipDtoDTO with the left revision, right revision, and relationship type IDs.

Returns: RevisionRelationshipDto — the created relationship.

from istari_digital_client.v3.models.new_revision_relationship_dto import NewRevisionRelationshipDto

rel = client.create_revision_relationship(
new_revision_relationship_dto=NewRevisionRelationshipDto(
left_revision_id="rev-aaa",
right_revision_id="rev-bbb",
relationship_type_id="type-ccc",
)
)
print(rel.id)

list_revision_relationships

V3Client.list_revision_relationships(
revision_id,
*,
cursor=None,
size=None,
include_total=None,
left_revision_id=None,
right_revision_id=None,
owning_entity_type=None,
) -> CursorPageRevisionRelationshipDto

List relationships that the caller has access to for a given revision.

Required parameters

NameTypeDescription
revision_idstrThe revision ID to list relationships for.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
left_revision_idlist[str] | NoneNoneFilter by left revision ID(s). Use !uuid to negate.
right_revision_idlist[str] | NoneNoneFilter by right revision ID(s).
owning_entity_typelist[str] | NoneNoneFilter by entity type (e.g. model, artifact, file).

Returns: CursorPageRevisionRelationshipDto — paginated list of relationships.

page = client.list_revision_relationships(revision_id="rev-aaa")
for r in page.items:
print(r.left_revision_id, "->", r.right_revision_id)

list_revision_relationship_types

V3Client.list_revision_relationship_types(
*,
cursor=None,
size=None,
include_total=None,
) -> CursorPageRevisionRelationshipTypeDto

List all available revision relationship types registered in the system.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.

Returns: CursorPageRevisionRelationshipTypeDto — paginated list of relationship types.

types = client.list_revision_relationship_types() for t in types.items: print(t.id, t.name)

Remote Connections

create_receiving_remote

V3Client.create_receiving_remote(
receiving_connection_create_dto,
) -> ReceivingConnectionDto

Create a receiving remote connection to accept resources pushed from another registry.

Parameters

NameTypeDescription
receiving_connection_create_dtoReceivingConnectionCreateDtoDTO describing the new receiving connection.

Returns: ReceivingConnectionDto — the created receiving remote.

from istari_digital_client.v3.models.receiving_connection_create_dto import ReceivingConnectionCreateDto

remote = client.create_receiving_remote(
receiving_connection_create_dto=ReceivingConnectionCreateDto(name="upstream-registry"),
)
print(remote.id)

create_sending_remote

V3Client.create_sending_remote(
sending_connection_create_dto,
) -> SendingConnectionDto

Create a sending remote connection to push resources to another registry.

Parameters

NameTypeDescription
sending_connection_create_dtoSendingConnectionCreateDtoDTO describing the new sending connection.

Returns: SendingConnectionDto — the created sending remote.

from istari_digital_client.v3.models.sending_connection_create_dto import SendingConnectionCreateDto

remote = client.create_sending_remote(
sending_connection_create_dto=SendingConnectionCreateDto(name="downstream-registry"),
)
print(remote.id)

get_receiving_remote

V3Client.get_receiving_remote(
remote_id,
) -> ReceivingConnectionDto

Retrieve a receiving remote connection by ID.

Parameters

NameTypeDescription
remote_idstrThe ID of the receiving remote to get.

Returns: ReceivingConnectionDto — the receiving remote.

remote = client.get_receiving_remote("remote-id-here")
print(remote.name)

get_sending_remote

V3Client.get_sending_remote(
remote_id,
) -> SendingConnectionDto

Retrieve a sending remote connection by ID.

Parameters

NameTypeDescription
remote_idstrThe ID of the sending remote to get.

Returns: SendingConnectionDto — the sending remote.

remote = client.get_sending_remote("remote-id-here")
print(remote.name)

list_receiving_remotes

V3Client.list_receiving_remotes(
*,
cursor=None,
size=None,
include_total=None,
show_archived=None,
) -> CursorPageReceivingConnectionDto

List receiving remote connections.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
show_archivedbool | NoneNoneInclude archived remotes when True.

Returns: CursorPageReceivingConnectionDto — paginated list.

page = client.list_receiving_remotes() for r in page.items: print(r.id, r.name)

list_sending_remotes

V3Client.list_sending_remotes(
*,
cursor=None,
size=None,
include_total=None,
show_archived=None,
) -> CursorPageSendingConnectionDto

List sending remote connections.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonePagination cursor.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
show_archivedbool | NoneNoneInclude archived remotes when True.

Returns: CursorPageSendingConnectionDto — paginated list.

page = client.list_sending_remotes() for r in page.items: print(r.id, r.name)

update_receiving_remote

V3Client.update_receiving_remote(
remote_id,
update_receiving_connection_dto,
) -> ReceivingConnectionDto

Update a receiving remote connection.

Parameters

NameTypeDescription
remote_idstrThe ID of the receiving remote to update.
update_receiving_connection_dtoUpdateReceivingConnectionDtoDTO containing the fields to update.

Returns: ReceivingConnectionDto — the updated receiving remote.

from istari_digital_client.v3.models.update_receiving_connection_dto import UpdateReceivingConnectionDto

updated = client.update_receiving_remote(
remote_id="remote-id-here",
update_receiving_connection_dto=UpdateReceivingConnectionDto(name="new-name"),
)

update_sending_remote

V3Client.update_sending_remote(
remote_id,
update_sending_connection_dto,
) -> SendingConnectionDto

Update a sending remote connection.

Parameters

NameTypeDescription
remote_idstrThe ID of the sending remote to update.
update_sending_connection_dtoUpdateSendingConnectionDtoDTO containing the fields to update.

Returns: SendingConnectionDto — the updated sending remote.

from istari_digital_client.v3.models.update_sending_connection_dto import UpdateSendingConnectionDto

updated = client.update_sending_remote(
remote_id="remote-id-here",
update_sending_connection_dto=UpdateSendingConnectionDto(name="new-name"),
)