Interface IAnnotation
Represents an annotation within the Collaboration SDK.
Namespace: Unity.Cloud.Collaboration.Models.Annotations
Assembly: Unity.Cloud.Collaboration.dll
Syntax
public interface IAnnotation
Properties
AnnotationId
Id of the Annotation.
Declaration
AnnotationId AnnotationId { get; }
Property Value
| Type | Description |
|---|---|
| AnnotationId |
Attachments
Represents an attachment linked to an annotation. Attachments can include files, or other formats that will extend the API.
- Attachments provide additional context or location data.
- File attachments should be uploaded and downloaded via separate URL endpoints.
- Important: This definition may be extended in the future. Users should filter for their supported attachment types.
Declaration
IReadOnlyList<IAttachment> Attachments { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<IAttachment> |
Created
Timestamp when the Annotation was created. This is in ISO format.
Declaration
DateTime Created { get; }
Property Value
| Type | Description |
|---|---|
| DateTime |
CreatedBy
The Unity account Id of the creator of the Annotation. In the case of system generated annotations, such as Un/Resolve annotations, this field is the ID of the user that triggered the action.
Declaration
string CreatedBy { get; }
Property Value
| Type | Description |
|---|---|
| string |
HasDraftReply
Indicates whether the annotation has a draft reply. If the user making this request has a draft reply, this field will be true.
Declaration
bool? HasDraftReply { get; }
Property Value
| Type | Description |
|---|---|
| bool? |
Integrations
Details about Integrations that have been connected to this Annotation.
Declaration
IReadOnlyDictionary<string, IReadOnlyList<IIntegrationJiraIssue>> Integrations { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyDictionary<string, IReadOnlyList<IIntegrationJiraIssue>> |
LatestReply
Timestamp of latest Reply for the RootAnnotation. This is in ISO format.
Declaration
DateTime? LatestReply { get; }
Property Value
| Type | Description |
|---|---|
| DateTime? |
MessageType
MessageType of the Annotation. Possible values:
- User: This Annotation was created by a User.
- Resolve: This Annotation was created by the system when a User resolved an Annotation.
- Unresolve: This Annotation was created by the system when a User unresolved an Annotation. (required).
- Jira: This Annotation was created by the system when a Jira issue was created.
Declaration
MessageType MessageType { get; }
Property Value
| Type | Description |
|---|---|
| MessageType |
Metadata
Metadata for the Annotation This is not currently displayed by the frontend, but can be used to store information for custom use cases.
Declaration
IReadOnlyDictionary<string, string> Metadata { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyDictionary<string, string> |
Reactions
The Annotation Reactions. This will always contain the Id of the user who has fetched this information if they are in the list.
Declaration
IReadOnlyList<IReaction> Reactions { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<IReaction> |
ReplyCount
Total number of Replies to this annotation. Only relevant if this annotation is the start of a thread.
Declaration
int? ReplyCount { get; }
Property Value
| Type | Description |
|---|---|
| int? |
ReplyUserIds
List of unique userIds that have replied to this RootAnnotation, max 5 users will be returned If the user making this request has replied, their Id will be included in the list.
Declaration
IReadOnlyList<string> ReplyUserIds { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<string> |
Resolved
Timestamp of when the Annotation was resolved. This is in ISO format.
Declaration
DateTime? Resolved { get; }
Property Value
| Type | Description |
|---|---|
| DateTime? |
ResolvedBy
The Unity account Id of the user who resolved the Annotation.
Declaration
string ResolvedBy { get; }
Property Value
| Type | Description |
|---|---|
| string |
RootAnnotationId
To create a reply to an existing Annotation, provide the id of the Annotation. This will create a thread. Root annotations cannot be nested, if an annotation has a RootAnnotationId associated with it, it cannot accept another.
Declaration
AnnotationId RootAnnotationId { get; }
Property Value
| Type | Description |
|---|---|
| AnnotationId |
Status
Status of the Annotation. Possible values:
- Active: This Annotation is active (visible to everyone).
- Sending: This Annotation is in an "Outbox" position (visible to its creator only).
- Draft: This Annotation is still being written (visible to its creator only).
Declaration
string Status { get; }
Property Value
| Type | Description |
|---|---|
| string |
Target
Defines the relationship between an annotation and its target entity.
The Target field specifies the annotated object using a slash-delimited path.
Targets begin with a service identifier, with "assets" (Asset Manager) currently being the only supported service.
Other service designations are allowed but may have limited functionality.
In Asset Manager, the standard target format for an asset is: assets/projects/{projectId}/assets/{assetId}
This structure supports extensibility, such as targeting files within an asset or entities in other systems.
The Read Annotation Matching Target endpoint allows wildcard searches at / delimiters.
Example: Retrieving all annotations in a project: assets/projects/{projectId}/assets/_*
Declaration
string Target { get; }
Property Value
| Type | Description |
|---|---|
| string |
TargetContext
Provides additional metadata for identifying and validating a target.
The TargetContext allows specifying supplementary details about the target entity.
In supported services, this metadata can be configured for validation.
Currently supported fields:
assetVersion: A UUID representing the targeted asset version.versionNumber: A numeric value indicating the asset version number. When used within the assets service, these fields enhance the precision of target resolution.
Declaration
IReadOnlyDictionary<string, string> TargetContext { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyDictionary<string, string> |
Text
Comment text. Restrictions:
- Text is limited to 10,000 characters. This field can also be used to direct notifications, using the Mentions format detailed in the Annotation description.
Declaration
string Text { get; }
Property Value
| Type | Description |
|---|---|
| string |
Updated
The date when the Annotation was last updated. This is in ISO format.
Declaration
DateTime Updated { get; }
Property Value
| Type | Description |
|---|---|
| DateTime |
UpdatedBy
The Unity account Id of the user whom last updated the Annotation.
Declaration
string UpdatedBy { get; }
Property Value
| Type | Description |
|---|---|
| string |