Skip to main content
Version: 2026.09

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.
list_shareable_sending_connections()List the Secure Connections a resource may be shared to.
share_file_to_sending_remote()Share a resource with a partner over a Secure Connection.
revoke_file_from_sending_remote()Stop sharing a resource over a Secure Connection.
list_sending_remote_shares_for_resource()List the Secure Connections a resource is shared to.

Other V3Client domains:

Workflow logs, revision property updates, Secure Connection governance, and object stores are on this page below.


Upload​

create_resource​

V3Client.create_resource(
path,
resource_type,
*,
description=None,
version_name=None,
external_identifier=None,
display_name=None,
upstream_remote_info=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: model, artifact, file, connected_container, or connected_resource.

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.
upstream_remote_infoUpstreamInfoCreateDto | NoneNoneProvenance when the remote sync service imports this resource over a receiving connection. Leave unset for a file you upload.

UpstreamInfoCreateDto requires every field together: upstream_remote_id, upstream_file_id, upstream_file_created, upstream_file_revision_id, and upstream_file_revision_created.

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.resource_id)

create_resource_revision​

V3Client.create_resource_revision(
resource_id,
path,
*,
description=None,
version_name=None,
external_identifier=None,
display_name=None,
upstream_revision_info=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.
upstream_revision_infoUpstreamRevisionInfoCreateDto | NoneNoneProvenance when the remote sync service imports this revision over a receiving connection. Leave unset for a revision you author locally.

UpstreamRevisionInfoCreateDto requires every field together: receiving_connection_id, upstream_file_revision_id, and upstream_file_revision_created.

Returns: ResourceRevisionDto — the newly created revision.

revision = client.create_resource_revision(
resource_id="550e8400-e29b-41d4-a716-446655440000",
path="model-v2.onnx",
)
print(revision.file_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 ResourceTypeDto: model, artifact, file, connected_container, connected_resource.
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.file_revision_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.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-...",
)

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.file_revision_id, "->", r.right_revision.file_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(
label="upstream-registry",
description="Accept resources from the partner",
shared_id="upstream-registry",
shared_secret="shared-secret",
object_store_id="<object_store_id>",
),
)
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.

SendingConnectionCreateDto.allow_reshare defaults to False. Set it to True to let the receiving organization share files that arrived over this connection onward over its own sending connections. False keeps those files on the receiving instance.

Parameters

NameTypeDescription
sending_connection_create_dtoSendingConnectionCreateDtoDTO describing the new sending connection. allow_reshare (bool, default False) controls whether the receiver may share files onward.

Returns: SendingConnectionDto — the created sending remote, including allow_reshare.

from istari_digital_client.v3.models.sending_connection_create_dto import SendingConnectionCreateDto

remote = client.create_sending_remote(
sending_connection_create_dto=SendingConnectionCreateDto(
label="downstream-registry",
description="Send resources to the partner",
shared_id="downstream-registry",
shared_secret="shared-secret",
object_store_id="<object_store_id>",
),
)
print(remote.id)

get_receiving_remote​

V3Client.get_receiving_remote(
remote_id,
) -> ReceivingConnectionDto

Retrieve a receiving remote connection by ID.

ReceivingConnectionDto.allow_reshare is read-only. The value is the sender's setting, learned when the connection syncs.

Parameters

NameTypeDescription
remote_idstrThe ID of the receiving remote to get.

Returns: ReceivingConnectionDto — the receiving remote, including allow_reshare.

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

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.label)

list_receiving_remotes​

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

List receiving remote connections. Each item's allow_reshare is read-only and is the sender's setting, learned when the connection syncs.

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. Each item includes allow_reshare.

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

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.label)

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(label="new-name"),
)

update_sending_remote​

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

Update a sending remote connection.

UpdateSendingConnectionDto.allow_reshare changes whether the receiving organization may share files that arrived over this connection onward over its own sending connections.

Parameters

NameTypeDescription
remote_idstrThe ID of the sending remote to update.
update_sending_connection_dtoUpdateSendingConnectionDtoDTO containing the fields to update. allow_reshare (bool, optional) sets whether the receiver may share onward.

Returns: SendingConnectionDto — the updated sending remote, including allow_reshare.

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(label="new-name"),
)

Secure Connection Sharing​

Share individual resources with a partner organization over a Sending Connection (Secure Connection) that an administrator has already configured. These methods are the SDK counterpart of the Share with external connection dialog described in Secure Connections.

The same rules apply as in the web app:

  • Only models and artifacts are synced to the partner. Systems cannot be shared as a whole. The share and list calls accept the file of any resource type and do not reject a standalone file, so check resource_type yourself rather than relying on an error.
  • The caller needs Editor access or above on the resource. Any authenticated user may list shareable connections.
  • The connection must exist and be active. Creating connections is an administrator task — see Set up Secure Connections.
  • The connection's Permitted Infosec Level and Tag Rules still apply. A share that violates them is rejected or automatically revoked.
  • If the connection restricts Permitted Senders, you must be on its list, and your per-user level (View or Edit) caps the share_level you may request in addition to the connection's ceiling. There is no non-admin call to read your own level; a share above it fails with 403. See Permitted Senders.
  • Sync is asynchronous. A share call returns as soon as the share is recorded; the partner receives the file on the next sync cycle (typically 1–2 minutes).
  • List calls are paginated. Each page exposes the cursor for the next page as next_page; pass it back as cursor until it is None.

Share methods take the resource's file_id (the storage-level identifier on ResourceDto), not its resource_id. list_sending_remote_shares_for_resource() takes the resource_id and resolves the file for you.

list_shareable_sending_connections​

V3Client.list_shareable_sending_connections(
*,
cursor=None,
size=None,
include_total=None,
) -> CursorPageShareableSendingConnectionDto

List the active Sending Connections a resource may be shared to. Unlike list_sending_remotes(), this is available to non-administrators and returns a slim projection without connection configuration. Secure Connections are not tenant-scoped, so the list is instance-wide.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonenext_page from the previous page.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.

Returns: CursorPageShareableSendingConnectionDto — paginated list. Each item carries id, label, description, and received_access_level, the ceiling for the share_level you may request on that connection.

page = client.list_shareable_sending_connections()
for conn in page.items:
print(conn.id, conn.label, conn.received_access_level)

share_file_to_sending_remote​

V3Client.share_file_to_sending_remote(
remote_id,
file_id,
share_file_to_sending_remote_dto=None,
) -> RemoteFileShareDto

Share a resource's file with the partner behind a Sending Connection. If the file was previously shared and then revoked, the share is restored. Calling it again on an active share updates the share_level in place.

Parameters

NameTypeDescription
remote_idstrThe ID of the Sending Connection to share to.
file_idstrThe file_id of the resource to share.
share_file_to_sending_remote_dtoShareFileToSendingRemoteDto | NoneOptional body. share_level is ReceivedAccessLevel.VIEWER (default) or ReceivedAccessLevel.EDITOR.

share_level controls what the partner can do with their copy. Viewer is read-only; Editor lets the receiving organization run jobs on the resource and add revisions to their copy. You cannot request Editor on a connection whose received_access_level is Viewer, or when the administrator has listed you as a View-level permitted sender on that connection.

Returns: RemoteFileShareDto — the share record, with id, sending_connection_id, sending_connection_label, file_id, share_level, created, is_archived, and archived.

resource = client.get_resource("resource-id-here")

share = client.share_file_to_sending_remote(
remote_id="sending-connection-id-here",
file_id=resource.file_id,
)
print(share.share_level) # Viewer

revoke_file_from_sending_remote​

V3Client.revoke_file_from_sending_remote(
remote_id,
file_id,
) -> RemoteFileShareDto

Stop sharing a resource's file over a Sending Connection. This stops future synchronization and sends a revocation signal across the connection; the partner's platform tombstones its copy on a later sync cycle. Revocation is best-effort and cannot purge data the partner has already exported. See Revocation and Tombstoned Files.

Parameters

NameTypeDescription
remote_idstrThe ID of the Sending Connection to revoke from.
file_idstrThe file_id of the resource to stop sharing.

Returns: RemoteFileShareDto — the share record with is_archived=True and archived set.

resource = client.get_resource("resource-id-here")

revoked = client.revoke_file_from_sending_remote(
remote_id="sending-connection-id-here",
file_id=resource.file_id,
)
print(revoked.is_archived) # True

list_sending_remote_shares_for_resource​

V3Client.list_sending_remote_shares_for_resource(
resource_id,
*,
cursor=None,
size=None,
include_total=None,
show_archived=None,
) -> CursorPageRemoteFileShareDto

List the Sending Connections a resource is shared to. This is the SDK equivalent of the Connections row on the resource's details pane. The resource's underlying file is resolved automatically, so pass the resource_id.

Parameters

NameTypeDescription
resource_idstrThe resource_id of the resource to list shares for.

Optional parameters

NameTypeDefaultDescription
cursorstr | NoneNonenext_page from the previous page.
sizeint | NoneNonePage size (0–100).
include_totalbool | NoneNoneInclude total count.
show_archivedbool | NoneNoneInclude revoked shares when True.

Returns: CursorPageRemoteFileShareDto — paginated list of RemoteFileShareDto. By default only active shares are returned.

page = client.list_sending_remote_shares_for_resource(resource_id="resource-id-here")
for share in page.items:
print(share.sending_connection_label, share.share_level)

Revision properties​

update_resource_revision​

V3Client.update_resource_revision(
resource_id,
revision_id,
resource_revision_update_dto,
http_request_timeout_secs=None,
) -> ResourceRevisionDto

Patches user-provided properties on an existing revision. Omitted fields stay as they are. An explicit null clears the value. A new upload is create_resource_revision().

Required parameters

NameTypeDescription
resource_idstrResource that owns the revision.
revision_idstrRevision to update.
resource_revision_update_dtoResourceRevisionUpdateDtoOptional fields: display_name, description, version_name, external_identifier. Each max 255.

Returns: ResourceRevisionDto

Workflow logs​

Record a run that happened outside an Istari job. The how-to is External workflow logs. The web app view is Workflow log.

create_workflow_output on V3Client takes a filesystem path and uploads the file. The generated method underneath takes a WorkflowOutputCreateDto; call the V3Client form.

create_workflow_output​

V3Client.create_workflow_output(
system_id,
path,
*,
description=None,
display_name=None,
external_identifier=None,
) -> WorkflowOutputDto
NameTypeDescription
system_idstrSystem that stores the output.
pathPathLikeFile to upload.
descriptionstr | NoneOptional description.
display_namestr | NoneOptional display name.
external_identifierstr | NoneOptional external id.

Returns: WorkflowOutputDto

create_workflow_log_entry​

V3Client.create_workflow_log_entry(
system_id,
workflow_log_entry_create_dto,
http_request_timeout_secs=None,
) -> WorkflowLogEntryDto

WorkflowLogEntryCreateDto fields, all optional: title (max 255), status (max 64; the platform default when omitted is UNSPECIFIED), workflow_type (max 64; default external), configuration_id, branch_id, branchless (default False), workflow_output_ids.

Unless branchless is true, configuration_id is required. Omitting branch_id records the system's baseline branch. When branchless is true, omit both configuration_id and branch_id.

list_workflow_log_entries​

V3Client.list_workflow_log_entries(
system_id,
cursor=None,
size=None,
include_total=None,
branch_id=None,
title=None,
status=None,
archive_status=None,
) -> CursorPageWorkflowLogEntryDto

branch_id, title, and status are lists. archive_status is active, archived, or all.

get_workflow_log_entry​

V3Client.get_workflow_log_entry(system_id, entry_id) -> WorkflowLogEntryDetailDto

The detail includes workflow_outputs.

archive_workflow_log_entry​

V3Client.archive_workflow_log_entry(system_id, entry_id) -> None

restore_workflow_log_entry​

V3Client.restore_workflow_log_entry(system_id, entry_id) -> WorkflowLogEntryDto

Secure connection governance​

Owners, permitted senders, infosec mappings, sync status, and tag-rule checks for a remote created with the Remote connections methods. remote_id is that connection's id.

Starring a Secure Connection is separate from resource and system favorites.

favorite_connection​

V3Client.favorite_connection(connection_id) -> None

unfavorite_connection​

V3Client.unfavorite_connection(connection_id) -> None

get_receiving_connection_owners​

V3Client.get_receiving_connection_owners(remote_id) -> list[ReceivingConnectionOwnerDto]

set_receiving_connection_owners​

Replaces the owner list. An owner without access_level is EDITOR.

V3Client.set_receiving_connection_owners(
remote_id,
set_receiving_connection_owners_dto,
) -> list[ReceivingConnectionOwnerDto]

SetReceivingConnectionOwnersDto.owners is the complete list.

get_sending_connection_permitted_senders​

V3Client.get_sending_connection_permitted_senders(remote_id) -> list[SendingConnectionPermittedSenderDto]

set_sending_connection_permitted_senders​

Replaces the permitted-sender list. A sender without access_level is EDITOR.

V3Client.set_sending_connection_permitted_senders(
remote_id,
set_sending_connection_permitted_senders_dto,
) -> list[SendingConnectionPermittedSenderDto]

get_receiving_connection_infosec_levels​

Incoming infosec levels observed on a receiving connection.

V3Client.get_receiving_connection_infosec_levels(remote_id) -> list[ReceivingConnectionInfosecLevelDto]

get_receiving_connection_infosec_level_mappings​

V3Client.get_receiving_connection_infosec_level_mappings(remote_id) -> list[ReceivingConnectionInfosecLevelMappingDto]

set_receiving_connection_infosec_level_mappings​

Replaces the mapping list. An empty list removes every mapping.

V3Client.set_receiving_connection_infosec_level_mappings(
remote_id,
set_receiving_connection_infosec_level_mappings_dto,
) -> list[ReceivingConnectionInfosecLevelMappingDto]

get_receiving_connection_control_tags​

V3Client.get_receiving_connection_control_tags(remote_id) -> list[ReceivingConnectionControlTagDto]

list_receiving_remote_sync_statuses​

V3Client.list_receiving_remote_sync_statuses(
remote_id,
only_with_updates=None,
cursor=None,
size=None,
include_total=None,
) -> CursorPageSyncStatusUpdateDtoCustomized

list_sending_remote_sync_statuses​

Same parameters and return type as list_receiving_remote_sync_statuses, for a sending remote.

list_resource_sync_status_by_connection​

Most recent sync status of one resource on each Secure Connection.

V3Client.list_resource_sync_status_by_connection(resource_id) -> list[ResourceSyncStatusByConnectionDto]

evaluate_sending_remote_tag_sets​

Previews what a sending remote's tag rules do to the given control-tag sets. Results come back in request order.

V3Client.evaluate_sending_remote_tag_sets(
remote_id,
evaluate_sending_tag_sets_with_hypothetical_rule_set_dto,
) -> list[SendingTagSetEvaluationDto]

tag_sets is a list of tag-id lists (at most 1000 sets, 200 ids each). hypothetical_rule_set is optional.

validate_receiving_remote_manifest_catalog​

Checks a manifest's control-tag catalog against a receiving remote. Send the tags the manifest reports as unarchived.

V3Client.validate_receiving_remote_manifest_catalog(
remote_id,
validate_manifest_catalog_dto,
) -> ManifestCatalogValidationDto

ValidateManifestCatalogDto.control_tag_ids holds at most 1000 ids.

Object stores​

list_object_stores​

V3Client.list_object_stores(
cursor=None,
size=None,
include_total=None,
) -> CursorPageObjectStoreDto

size is 0–100 and defaults to 10. Pass the previous response's cursor to continue.

Authentication advisory​

auth_deprecation​

V3Client.auth_deprecation is a property, not a method call. It is the latest auth-deprecation advisory captured by a request, or None. It is set when the client authenticates with a personal access token against an Identity-Service-enabled registry. Exchange that token with client.keys.exchange_pat() or generate_keypair_and_exchange().

Client.check_auth_deprecation() forces a fresh check. V3Client exposes the stored result only.