メインコンテンツへスキップ

create-ticket-comment

dci create-ticket-comment <ticketId> [body]

Adds a comment to an existing support request. For customers, comments are always public. For DoiT employees, comments can be marked as private (internal notes) by setting the private field to true.

  • ticketId — The unique identifier of the support request.

Pass the request body as name: value arguments or pipe JSON on stdin — see Command structure.

Examples

# Reply on a ticket.
dci create-ticket-comment <ticket-id> body: "We rotated the service-account key and the job now succeeds."
# Leave an internal note (DoiT employees only; `private` is ignored for customers).
dci create-ticket-comment <ticket-id> body: "Escalated to the BigQuery team.", private: true
# Post a longer comment from a file and capture the new comment's ID.
dci create-ticket-comment <ticket-id> --fields id,created --output json < comment.json
# comment.json
{"body": "Timeline: 09:00 job submitted, 09:05 stuck in PENDING, 12:10 cancelled and resubmitted."}

Request

Content-Type: application/json

FieldTypeRequiredDescription
bodystringyesThe text content of the comment. Must not be empty.
privatebooleanIf true, creates a private internal note. Only honored for DoiT employees; ignored for customers. Default: false.
Raw JSON schema
{
"type": "object",
"description": "Request body for adding a comment to a support ticket.",
"required": [
"body"
],
"properties": {
"body": {
"type": "string",
"description": "The text content of the comment. Must not be empty."
},
"private": {
"type": "boolean",
"description": "If true, creates a private internal note. Only honored for DoiT employees; ignored for customers.",
"default": false
}
}
}

Output

Created - Comment added to the support request.

By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.

FieldTypeDescription
idinteger (int64)Comment ID.
bodystringThe text content of the comment.
authorstringStable comment-author attribution. User callers are represented by their verified email address; service-account callers use sa:&lt;serviceAccountId&gt;.
createdinteger (int64)The time when this comment was created, in milliseconds since the epoch.
attachmentsarray of objectFile attachments on the comment.
attachments[].idinteger (int64)
attachments[].file_namestring
attachments[].content_urlstring
Raw JSON schema
{
"type": "object",
"description": "A comment on a support ticket.",
"properties": {
"id": {
"type": "integer",
"description": "Comment ID.",
"format": "int64"
},
"body": {
"type": "string",
"description": "The text content of the comment."
},
"author": {
"type": "string",
"description": "Stable comment-author attribution. User callers are represented by\ntheir verified email address; service-account callers use\n`sa:<serviceAccountId>`."
},
"created": {
"type": "integer",
"description": "The time when this comment was created, in milliseconds since the epoch.",
"format": "int64"
},
"attachments": {
"type": "array",
"description": "File attachments on the comment.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"file_name": {
"type": "string"
},
"content_url": {
"type": "string"
}
}
}
}
}
}

Errors

On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.

HTTP status to exit code mapping
HTTP statusExit codeError codeMeaning
40030VALIDATION_ERRORThe arguments or request body were rejected. Review the command's flags and payload.
40110AUTHENTICATION_FAILEDNot signed in, or the API token is invalid. Run dci login or check DCI_API_KEY.
40311PERMISSION_DENIEDThe DoiT user or the active customer context does not have access.
40420RESOURCE_NOT_FOUNDThe requested resource does not exist. Check the identifier argument.

Aliases: id-of-ticket-comments-post