Skip to content
Start here

Update Threat Signals article read status

client.CloudforceOne.ThreatSignals.Articles.Edit(ctx, articleID, params) (*ThreatSignalArticleEditResponse, error)
PATCH/accounts/{account_id}/cloudforce-one/v2/threat-signals/articles/{article_id}

Marks a Threat Signals article as read or unread.

Security

API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
Accepted Permissions (at least one required)
Cloudforce One Write
ParametersExpand Collapse
articleID string
formatuuid
params ThreatSignalArticleEditParams
AccountID param.Field[string]

Path param

Read param.Field[bool]

Body param

ReturnsExpand Collapse
type ThreatSignalArticleEditResponse struct{…}
ID string
formatuuid
BulletPoints ThreatSignalArticleEditResponseBulletPoints
Impact string
WhatHappened string
WhoAffected string
ContentR2Key string
FeedDisplayName string
FeedID string
formatuuid
FetchedAt string
IndicatorExtractionStatus ThreatSignalArticleEditResponseIndicatorExtractionStatus

Progress of the article’s indicator extraction and IOC contextualization run. complete and failed are terminal; unknown means no run has been recorded.

One of the following:
const ThreatSignalArticleEditResponseIndicatorExtractionStatusInProgress ThreatSignalArticleEditResponseIndicatorExtractionStatus = "in_progress"
const ThreatSignalArticleEditResponseIndicatorExtractionStatusComplete ThreatSignalArticleEditResponseIndicatorExtractionStatus = "complete"
const ThreatSignalArticleEditResponseIndicatorExtractionStatusFailed ThreatSignalArticleEditResponseIndicatorExtractionStatus = "failed"
const ThreatSignalArticleEditResponseIndicatorExtractionStatusUnknown ThreatSignalArticleEditResponseIndicatorExtractionStatus = "unknown"
Metadata map[string, unknown]
PublishedAt string
Read bool
ReadAt string
SourceCount float64
Summary string

Persisted enrichment summary. Null until enrichment produces a summary.

SummaryR2Key string
Tags []ThreatSignalArticleEditResponseTag
AppliedBy ThreatSignalArticleEditResponseTagsAppliedBy
One of the following:
const ThreatSignalArticleEditResponseTagsAppliedByAI ThreatSignalArticleEditResponseTagsAppliedBy = "ai"
const ThreatSignalArticleEditResponseTagsAppliedByAnalyst ThreatSignalArticleEditResponseTagsAppliedBy = "analyst"
const ThreatSignalArticleEditResponseTagsAppliedBySystem ThreatSignalArticleEditResponseTagsAppliedBy = "system"
CategoryID string
formatuuid
UUID string
formatuuid
Value string
Title string
SkillVersion stringOptional
TagSkillVersion stringOptional

Update Threat Signals article read status

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/cloudforce_one"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.CloudforceOne.ThreatSignals.Articles.Edit(
    context.TODO(),
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    cloudforce_one.ThreatSignalArticleEditParams{
      AccountID: cloudflare.F("account_id"),
      Read: cloudflare.F(true),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
{
  "errors": [
    {
      "message": "message"
    }
  ],
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "bullet_points": {
      "impact": "impact",
      "what_happened": "what_happened",
      "who_affected": "who_affected"
    },
    "content_r2_key": "content_r2_key",
    "feed_display_name": "feed_display_name",
    "feed_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "fetched_at": "fetched_at",
    "indicator_extraction_status": "in_progress",
    "link": "link",
    "metadata": {
      "foo": "bar"
    },
    "published_at": "published_at",
    "read": true,
    "read_at": "read_at",
    "source_count": 0,
    "summary": "summary",
    "summary_r2_key": "summary_r2_key",
    "tags": [
      {
        "applied_by": "ai",
        "categoryId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "uuid": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "value": "value"
      }
    ],
    "title": "title",
    "skill_version": "skill_version",
    "tag_skill_version": "tag_skill_version"
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "message": "message"
    }
  ],
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "bullet_points": {
      "impact": "impact",
      "what_happened": "what_happened",
      "who_affected": "who_affected"
    },
    "content_r2_key": "content_r2_key",
    "feed_display_name": "feed_display_name",
    "feed_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "fetched_at": "fetched_at",
    "indicator_extraction_status": "in_progress",
    "link": "link",
    "metadata": {
      "foo": "bar"
    },
    "published_at": "published_at",
    "read": true,
    "read_at": "read_at",
    "source_count": 0,
    "summary": "summary",
    "summary_r2_key": "summary_r2_key",
    "tags": [
      {
        "applied_by": "ai",
        "categoryId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "uuid": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "value": "value"
      }
    ],
    "title": "title",
    "skill_version": "skill_version",
    "tag_skill_version": "tag_skill_version"
  },
  "success": true
}