From f884a386bba64bec416e52b41b57434382e30dd9 Mon Sep 17 00:00:00 2001 From: chrisdengso <8185683+chrisdengso@users.noreply.github.com> Date: Thu, 12 Nov 2026 18:55:31 +0000 Subject: [PATCH] feat: v0.7.0, API changes --- .speakeasy/gen.lock | 16 ++++++++-------- .speakeasy/gen.yaml | 2 +- .speakeasy/openapi.json | 3 ++- CHANGELOG.md | 8 ++++++++ internal/cli/queue/items/list.go | 2 +- internal/cli/version.go | 2 +- internal/sdk/models/operations/listqueueitems.go | 3 +++ internal/sdk/moderationapi.go | 6 +++--- internal/usage/schema.go | 4 ++-- 9 files changed, 29 insertions(+), 17 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 3e7473d..1d57f20 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: f6fec850-ef66-45dd-9a18-cec7cc0801ce management: - docChecksum: ee682d1963be184ab35560fa9a9c50c9 + docChecksum: d1c7a760d4c00f34fad01646ab23b9eb docVersion: 1.1.0 speakeasyVersion: internal generationVersion: internal - releaseVersion: 0.6.1 - configChecksum: 927969eff5ab77ad68a24fac0cb3f9cc + releaseVersion: 0.7.0 + configChecksum: c6470f96a29a41e5ea56355f4ff08bc6 repoURL: https://github.com/moderation-api/cli installationURL: https://github.com/moderation-api/cli published: true @@ -145,7 +145,7 @@ trackedFiles: internal/cli/queue/getstats.go: last_write_checksum: sha1:dccfb6a53167375a75d7a41b243f93e3938fb475 internal/cli/queue/items/list.go: - last_write_checksum: sha1:09acae5af2de89fe61b89ef8658a5cd2685f1fa7 + last_write_checksum: sha1:4bf0df1c8c52395479c027a62745bf0ad65940ca internal/cli/queue/items/resolve.go: last_write_checksum: sha1:a5ac2373401a91ce4acc8e12d6655a87525e68c7 internal/cli/queue/items/resolvemany.go: @@ -163,7 +163,7 @@ trackedFiles: internal/cli/root.go: last_write_checksum: sha1:e5d1b2211d9b4aaa93e95f248ce7db2af0a1844c internal/cli/version.go: - last_write_checksum: sha1:c6616d9a645013aaa7d66cb0cfde4722849eca51 + last_write_checksum: sha1:058d6ec27532e6d65e428c9d9599289e72281336 internal/cli/webhooks/create.go: last_write_checksum: sha1:98c73266c8954efcf0da2493ae41909df45a38f0 internal/cli/webhooks/delete.go: @@ -399,7 +399,7 @@ trackedFiles: internal/sdk/models/operations/listprojects.go: last_write_checksum: sha1:a67ec0268ac80f4769cdb6e8e64e786272701386 internal/sdk/models/operations/listqueueitems.go: - last_write_checksum: sha1:b4825650ca44b209fdbe2cce9f56592ebc60cb1a + last_write_checksum: sha1:2161f5608eabfa574f5342acb0959fdd1d69c68b internal/sdk/models/operations/listqueues.go: last_write_checksum: sha1:686fcf3d244a150b4a492aa1bb44ea101734d823 internal/sdk/models/operations/listwebhooks.go: @@ -455,7 +455,7 @@ trackedFiles: internal/sdk/models/sdkerrors/sdkdefaulterror.go: last_write_checksum: sha1:437b3a3eacb54d8648a68f80b3cd38fa5019f006 internal/sdk/moderationapi.go: - last_write_checksum: sha1:cfa2d1043d9446d0aadd3c8def4a69e416d6c97f + last_write_checksum: sha1:957bdbbe55d80861e078308e112b82cd2bbad463 internal/sdk/optionalnullable/optionalnullable.go: last_write_checksum: sha1:b828c94c45116e632925027e4e2c211e971e04e2 internal/sdk/optionalnullable/optionalnullable_test.go: @@ -517,7 +517,7 @@ trackedFiles: internal/usage/bodyschemas.go: last_write_checksum: sha1:b7a71350264254881d21f50b539474c00d1e50f2 internal/usage/schema.go: - last_write_checksum: sha1:487d38bfa637fae39dc22d56968f9eee30483ce2 + last_write_checksum: sha1:295bf5b133e7be57f687f2295db5c8576b97b448 scripts/install.ps1: last_write_checksum: sha1:bd3a52c28f647ed881c6e8d72abf2d84216976c9 scripts/install.sh: diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index c20258e..19b5772 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -32,7 +32,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: false cli: - version: 0.6.1 + version: 0.7.0 additionalDependencies: {} agentEnvironmentDetection: true arrayFlagFormat: repeatable diff --git a/.speakeasy/openapi.json b/.speakeasy/openapi.json index ce4de79..81ffb54 100644 --- a/.speakeasy/openapi.json +++ b/.speakeasy/openapi.json @@ -3099,7 +3099,8 @@ "FIFO", "LIFO", "RANDOM", - "SEVERITY_DESC" + "SEVERITY_DESC", + "ROBOCALL_DESC" ] } }, diff --git a/CHANGELOG.md b/CHANGELOG.md index bea0764..c18952d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.7.0 (2026-11-12) + +Full Changelog: [v0.6.1...v0.7.0](https://github.com/moderation-api/cli/compare/v0.6.1...v0.7.0) + +### API changes + +- `GET /queue/{id}/items`: added the new enum value `ROBOCALL_DESC` to the `query` request parameter `sort` + ## 0.6.1 (2026-11-09) Full Changelog: [v0.6.0...v0.6.1](https://github.com/moderation-api/cli/compare/v0.6.0...v0.6.1) diff --git a/internal/cli/queue/items/list.go b/internal/cli/queue/items/list.go index 7a2e85b..7fac489 100644 --- a/internal/cli/queue/items/list.go +++ b/internal/cli/queue/items/list.go @@ -18,7 +18,7 @@ var listCmdMeta = []flagutil.FlagMeta{ {FlagName: "id", Shorthand: "i", FieldPath: "ID", Kind: flagutil.FlagKindString, Required: true, Description: "The queue ID. [required]"}, {FlagName: "page", FieldPath: "Page", Kind: flagutil.FlagKindInt64, Optional: true, HasDefault: true, DefaultInt: 1, HasMinimum: true, Minimum: 1, HasMaximum: true, Maximum: 100000, Description: "integer value"}, {FlagName: "page-size", FieldPath: "PageSize", Kind: flagutil.FlagKindInt64, Optional: true, HasDefault: true, DefaultInt: 20, HasMinimum: true, Minimum: 1, HasMaximum: true, Maximum: 100, Description: "integer value"}, - {FlagName: "sort", Shorthand: "s", FieldPath: "Sort", Kind: flagutil.FlagKindEnum, Optional: true, EnumValues: []string{"FIFO", "LIFO", "RANDOM", "SEVERITY_DESC"}, Description: "options: FIFO, LIFO, RANDOM, SEVERITY_DESC"}, + {FlagName: "sort", Shorthand: "s", FieldPath: "Sort", Kind: flagutil.FlagKindEnum, Optional: true, EnumValues: []string{"FIFO", "LIFO", "RANDOM", "SEVERITY_DESC", "ROBOCALL_DESC"}, Description: "options: FIFO, LIFO, RANDOM, SEVERITY_DESC, ROBOCALL_DESC"}, {FlagName: "include-resolved", FieldPath: "IncludeResolved", Kind: flagutil.FlagKindBool, Optional: true, Description: "boolean flag"}, {FlagName: "conversation-ids", Shorthand: "c", FieldPath: "ConversationIds", Kind: flagutil.FlagKindStringArray, Optional: true, Description: "list of values"}, {FlagName: "labels", Shorthand: "l", FieldPath: "Labels", Kind: flagutil.FlagKindStringArray, Optional: true, Description: "list of values"}, diff --git a/internal/cli/version.go b/internal/cli/version.go index f8522b5..edb4b92 100644 --- a/internal/cli/version.go +++ b/internal/cli/version.go @@ -14,7 +14,7 @@ import ( // which propagates the value here (see cmd/modapi/main.go): // // go build -ldflags "-X main.version=x.y.z" ./cmd/modapi -var Version = "0.6.1" +var Version = "0.7.0" // BuildTime is optionally set at build time via ldflags targeting the main package. var BuildTime string diff --git a/internal/sdk/models/operations/listqueueitems.go b/internal/sdk/models/operations/listqueueitems.go index 2f35ff0..afa3da2 100644 --- a/internal/sdk/models/operations/listqueueitems.go +++ b/internal/sdk/models/operations/listqueueitems.go @@ -16,6 +16,7 @@ const ( SortLifo Sort = "LIFO" SortRandom Sort = "RANDOM" SortSeverityDesc Sort = "SEVERITY_DESC" + SortRobocallDesc Sort = "ROBOCALL_DESC" ) func (e Sort) ToPointer() *Sort { @@ -34,6 +35,8 @@ func (e *Sort) UnmarshalJSON(data []byte) error { case "RANDOM": fallthrough case "SEVERITY_DESC": + fallthrough + case "ROBOCALL_DESC": *e = Sort(v) return nil default: diff --git a/internal/sdk/moderationapi.go b/internal/sdk/moderationapi.go index d24bfb6..0c1bde3 100644 --- a/internal/sdk/moderationapi.go +++ b/internal/sdk/moderationapi.go @@ -139,10 +139,10 @@ func WithTimeout(timeout time.Duration) SDKOption { // New creates a new instance of the SDK with the provided options func New(opts ...SDKOption) *ModerationAPI { sdk := &ModerationAPI{ - SDKVersion: "0.6.1", + SDKVersion: "0.7.0", sdkConfiguration: config.SDKConfiguration{ - UserAgent: "speakeasy-sdk/go 0.6.1 internal 1.1.0 github.com/moderation-api/cli/internal/sdk", - SDKVersion: "0.6.1", + UserAgent: "speakeasy-sdk/go 0.7.0 internal 1.1.0 github.com/moderation-api/cli/internal/sdk", + SDKVersion: "0.7.0", GenVersion: "internal", OpenAPIDocVersion: "1.1.0", ServerList: ServerList, diff --git a/internal/usage/schema.go b/internal/usage/schema.go index ad115d3..601aa83 100644 --- a/internal/usage/schema.go +++ b/internal/usage/schema.go @@ -28,7 +28,7 @@ type usageNode struct { } var usageNodes = map[string]usageNode{ - "": {head: "name \"modapi\"\nbin \"modapi\"\nabout \"Moderation API: Moderate text, images, video and audio in real time, manage authors, review queues and actions, and receive webhooks.\"\nversion \"0.6.1\"\nconfig {\n file \"~/.config/modapi/config.yaml\"\n}", flags: []usageItem{{key: "usage", text: "flag \"--usage\" help=\"Print the CLI Usage schema in KDL format\" global=#true"}, {key: "version", text: "flag \"-v --version\" help=\"Print the CLI version\""}, {key: "output-format", text: "flag \"-o --output-format \" help=\"Specify the output format. Options: pretty, json, yaml, table, toon.\" global=#true config=\"output_format\" default=\"pretty\""}, {key: "color", text: "flag \"--color \" help=\"Control colored output: auto (color when output is a TTY), always, or never. Respects NO_COLOR and FORCE_COLOR env vars.\" global=#true default=\"auto\""}, {key: "jq", text: "flag \"-q --jq \" help=\"Filter and transform output using a jq expression (e.g., '.name', '.items[] | .id')\" global=#true"}, {key: "raw-output", text: "flag \"--raw-output\" help=\"Write --jq string results as raw text instead of JSON strings (like jq -r); non-string results stay JSON\" global=#true default=#false"}, {key: "server-url", text: "flag \"--server-url \" help=\"Override the default server URL\" global=#true"}, {key: "server", text: "flag \"--server \" help=\"Select a server by index (for indexed servers) or name (for named servers)\" global=#true"}, {key: "header", text: "flag \"-H --header \" help=\"Set a custom HTTP request header (format: \\\"Key: Value\\\"). Can be specified multiple times.\" global=#true var=#true"}, {key: "include-headers", text: "flag \"--include-headers\" help=\"Include HTTP response headers in the output\" global=#true default=#false"}, {key: "timeout", text: "flag \"--timeout \" help=\"HTTP request timeout (e.g., 30s, 5m, 100ms)\" global=#true config=\"timeout\""}, {key: "interactive", text: "flag \"--interactive\" help=\"Prompt for missing inputs and open guided configure/auth forms (forms fall back to line prompts on stdin off-TTY)\" global=#true default=#true"}, {key: "no-interactive", text: "flag \"--no-interactive\" help=\"Disable all interactive features (auto-prompting, explorer auto-launch, TUI forms)\" global=#true default=#false"}, {key: "dry-run", text: "flag \"--dry-run\" help=\"Preview API requests without sending them (no network, no OS keychain). Human preview on stderr; with -o json or --jq, one JSON object per request on stdout. Local mutation commands (auth login, auth logout and configure) make no request: they skip prompts and writes and report a no-op (stderr, or one JSON object on stdout in the machine form)\" global=#true default=#false"}, {key: "debug", text: "flag \"-d --debug\" help=\"Log request and response diagnostics to stderr\" global=#true default=#false"}, {key: "agent-mode", text: "flag \"--agent-mode\" help=\"Enable structured errors and default TOON output for AI coding agents. Automatically enabled when a known agent environment is detected (CLAUDECODE, CURSOR_AGENT, etc.). Use --agent-mode=false to disable.\" global=#true default=#false"}, {key: "secret-key", text: "flag \"--secret-key \" help=\"HTTP Bearer\" global=#true env=\"MODAPI_SECRET_KEY\" config=\"security.secret_key\""}, {key: "no-keyring", text: "flag \"--no-keyring\" help=\"Never read or write the OS keychain; store secrets in the config file instead\" global=#true env=\"MODAPI_NO_KEYRING\" config=\"no_keyring\" default=#false"}}, children: []string{"account", "actions", "analytics", "auth", "authors", "channels", "completion", "configure", "content", "explore", "feedback", "help", "projects", "queue", "version", "webhook-secret", "webhooks", "whoami", "wordlist"}}, + "": {head: "name \"modapi\"\nbin \"modapi\"\nabout \"Moderation API: Moderate text, images, video and audio in real time, manage authors, review queues and actions, and receive webhooks.\"\nversion \"0.7.0\"\nconfig {\n file \"~/.config/modapi/config.yaml\"\n}", flags: []usageItem{{key: "usage", text: "flag \"--usage\" help=\"Print the CLI Usage schema in KDL format\" global=#true"}, {key: "version", text: "flag \"-v --version\" help=\"Print the CLI version\""}, {key: "output-format", text: "flag \"-o --output-format \" help=\"Specify the output format. Options: pretty, json, yaml, table, toon.\" global=#true config=\"output_format\" default=\"pretty\""}, {key: "color", text: "flag \"--color \" help=\"Control colored output: auto (color when output is a TTY), always, or never. Respects NO_COLOR and FORCE_COLOR env vars.\" global=#true default=\"auto\""}, {key: "jq", text: "flag \"-q --jq \" help=\"Filter and transform output using a jq expression (e.g., '.name', '.items[] | .id')\" global=#true"}, {key: "raw-output", text: "flag \"--raw-output\" help=\"Write --jq string results as raw text instead of JSON strings (like jq -r); non-string results stay JSON\" global=#true default=#false"}, {key: "server-url", text: "flag \"--server-url \" help=\"Override the default server URL\" global=#true"}, {key: "server", text: "flag \"--server \" help=\"Select a server by index (for indexed servers) or name (for named servers)\" global=#true"}, {key: "header", text: "flag \"-H --header \" help=\"Set a custom HTTP request header (format: \\\"Key: Value\\\"). Can be specified multiple times.\" global=#true var=#true"}, {key: "include-headers", text: "flag \"--include-headers\" help=\"Include HTTP response headers in the output\" global=#true default=#false"}, {key: "timeout", text: "flag \"--timeout \" help=\"HTTP request timeout (e.g., 30s, 5m, 100ms)\" global=#true config=\"timeout\""}, {key: "interactive", text: "flag \"--interactive\" help=\"Prompt for missing inputs and open guided configure/auth forms (forms fall back to line prompts on stdin off-TTY)\" global=#true default=#true"}, {key: "no-interactive", text: "flag \"--no-interactive\" help=\"Disable all interactive features (auto-prompting, explorer auto-launch, TUI forms)\" global=#true default=#false"}, {key: "dry-run", text: "flag \"--dry-run\" help=\"Preview API requests without sending them (no network, no OS keychain). Human preview on stderr; with -o json or --jq, one JSON object per request on stdout. Local mutation commands (auth login, auth logout and configure) make no request: they skip prompts and writes and report a no-op (stderr, or one JSON object on stdout in the machine form)\" global=#true default=#false"}, {key: "debug", text: "flag \"-d --debug\" help=\"Log request and response diagnostics to stderr\" global=#true default=#false"}, {key: "agent-mode", text: "flag \"--agent-mode\" help=\"Enable structured errors and default TOON output for AI coding agents. Automatically enabled when a known agent environment is detected (CLAUDECODE, CURSOR_AGENT, etc.). Use --agent-mode=false to disable.\" global=#true default=#false"}, {key: "secret-key", text: "flag \"--secret-key \" help=\"HTTP Bearer\" global=#true env=\"MODAPI_SECRET_KEY\" config=\"security.secret_key\""}, {key: "no-keyring", text: "flag \"--no-keyring\" help=\"Never read or write the OS keychain; store secrets in the config file instead\" global=#true env=\"MODAPI_NO_KEYRING\" config=\"no_keyring\" default=#false"}}, children: []string{"account", "actions", "analytics", "auth", "authors", "channels", "completion", "configure", "content", "explore", "feedback", "help", "projects", "queue", "version", "webhook-secret", "webhooks", "whoami", "wordlist"}}, "account": {head: "cmd \"account\" help=\"Operations for account\"", children: []string{"retrieve"}}, "account retrieve": {head: "cmd \"retrieve\" help=\"Get account details\"", flags: []usageItem{{key: "project-id", text: " flag \"-p --project-id \" help=\"The project to act on, by ID or name. Required with an organization key unless the key reaches only one project; list projects with GET /projects. A project key acts on its own project and needs no value: naming another one is an error.\""}}}, "actions": {head: "cmd \"actions\" help=\"Operations for actions\"", children: []string{"create", "delete", "execute", "list", "retrieve", "update"}}, @@ -91,7 +91,7 @@ var usageNodes = map[string]usageNode{ "queue": {head: "cmd \"queue\" help=\"Operations for queue\"", children: []string{"get-stats", "items", "list", "retrieve"}}, "queue get-stats": {head: "cmd \"get-stats\" help=\"Get queue statistics\"", aliases: []usageItem{{key: "gs", text: " alias \"gs\""}}, args: []usageItem{{key: "id", text: " arg \"id\" help=\"The queue ID. (or use --id)\""}}, flags: []usageItem{{key: "id", text: " flag \"-i --id \" help=\"The queue ID. (or pass it as the [id] argument)\""}, {key: "within-days", text: " flag \"-w --within-days \" help=\"integer value\" default=30"}, {key: "project-id", text: " flag \"-p --project-id \" help=\"The project to act on, by ID or name. Required with an organization key unless the key reaches only one project; list projects with GET /projects. A project key acts on its own project and needs no value: naming another one is an error.\""}}}, "queue items": {head: "cmd \"items\" help=\"Operations for items\"", children: []string{"list", "resolve", "resolve-many", "unresolve"}}, - "queue items list": {head: "cmd \"list\" help=\"List queue items\"", args: []usageItem{{key: "id", text: " arg \"id\" help=\"The queue ID. (or use --id)\""}}, flags: []usageItem{{key: "id", text: " flag \"-i --id \" help=\"The queue ID. (or pass it as the [id] argument)\""}, {key: "page", text: " flag \"--page \" help=\"integer value\" default=1"}, {key: "page-size", text: " flag \"--page-size \" help=\"integer value\" default=20"}, {key: "sort", text: " flag \"-s --sort \" help=\"options: FIFO, LIFO, RANDOM, SEVERITY_DESC\""}, {key: "include-resolved", text: " flag \"--include-resolved\" help=\"boolean flag\""}, {key: "conversation-ids", text: " flag \"-c --conversation-ids \" help=\"list of values\" var=#true"}, {key: "labels", text: " flag \"-l --labels \" help=\"list of values\" var=#true"}, {key: "author-id", text: " flag \"--author-id \" help=\"string value\""}, {key: "filtered-action-ids", text: " flag \"-f --filtered-action-ids \" help=\"list of values\" var=#true"}, {key: "after-date", text: " flag \"--after-date \" help=\"string value\""}, {key: "before-date", text: " flag \"-b --before-date \" help=\"string value\""}, {key: "project-id", text: " flag \"--project-id \" help=\"The project to act on, by ID or name. Required with an organization key unless the key reaches only one project; list projects with GET /projects. A project key acts on its own project and needs no value: naming another one is an error.\""}, {key: "all", text: " flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\""}, {key: "max-pages", text: " flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0"}}}, + "queue items list": {head: "cmd \"list\" help=\"List queue items\"", args: []usageItem{{key: "id", text: " arg \"id\" help=\"The queue ID. (or use --id)\""}}, flags: []usageItem{{key: "id", text: " flag \"-i --id \" help=\"The queue ID. (or pass it as the [id] argument)\""}, {key: "page", text: " flag \"--page \" help=\"integer value\" default=1"}, {key: "page-size", text: " flag \"--page-size \" help=\"integer value\" default=20"}, {key: "sort", text: " flag \"-s --sort \" help=\"options: FIFO, LIFO, RANDOM, SEVERITY_DESC, ROBOCALL_DESC\""}, {key: "include-resolved", text: " flag \"--include-resolved\" help=\"boolean flag\""}, {key: "conversation-ids", text: " flag \"-c --conversation-ids \" help=\"list of values\" var=#true"}, {key: "labels", text: " flag \"-l --labels \" help=\"list of values\" var=#true"}, {key: "author-id", text: " flag \"--author-id \" help=\"string value\""}, {key: "filtered-action-ids", text: " flag \"-f --filtered-action-ids \" help=\"list of values\" var=#true"}, {key: "after-date", text: " flag \"--after-date \" help=\"string value\""}, {key: "before-date", text: " flag \"-b --before-date \" help=\"string value\""}, {key: "project-id", text: " flag \"--project-id \" help=\"The project to act on, by ID or name. Required with an organization key unless the key reaches only one project; list projects with GET /projects. A project key acts on its own project and needs no value: naming another one is an error.\""}, {key: "all", text: " flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\""}, {key: "max-pages", text: " flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0"}}}, "queue items resolve": {head: "cmd \"resolve\" help=\"Resolve a queue item\"", flags: []usageItem{{key: "id", text: " flag \"--id \" help=\"The queue ID. [required]\""}, {key: "item-id", text: " flag \"--item-id \" help=\"The item to resolve: the item 'id' from 'GET /queue/{id}/items', or the 'contentId' you sent to 'POST /moderate' (webhooks send it as 'item.id'). For a content ID, the newest submission with that content ID is used, as the queue shows it. [required]\""}, {key: "project-id", text: " flag \"-p --project-id \" help=\"The project to act on, by ID or name. Required with an organization key unless the key reaches only one project; list projects with GET /projects. A project key acts on its own project and needs no value: naming another one is an error.\""}}}, "queue items resolve-many": {head: "cmd \"resolve-many\" help=\"Resolve queue items\"", aliases: []usageItem{{key: "rm", text: " alias \"rm\""}}, args: []usageItem{{key: "id", text: " arg \"id\" help=\"The queue ID. (or use --id)\""}}, flags: []usageItem{{key: "id", text: " flag \"-i --id \" help=\"The queue ID. (or pass it as the [id] argument)\""}, {key: "project-id", text: " flag \"-p --project-id \" help=\"The project to act on, by ID or name. Required with an organization key unless the key reaches only one project; list projects with GET /projects. A project key acts on its own project and needs no value: naming another one is an error.\""}, {key: "item-ids", text: " flag \"--item-ids \" help=\"The items to resolve, up to 100. Each is the item 'id' from 'GET /queue/{id}/items', or the 'contentId' you sent to 'POST /moderate' (webhooks send it as 'item.id'). For a content ID, the newest submission with that content ID is used, as the queue shows it. [required]\" var=#true"}, {key: "body", text: " flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\""}, {key: "schema", text: " flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\""}}}, "queue items unresolve": {head: "cmd \"unresolve\" help=\"Unresolve a queue item\"", flags: []usageItem{{key: "id", text: " flag \"--id \" help=\"The queue ID. [required]\""}, {key: "item-id", text: " flag \"--item-id \" help=\"The item to unresolve: the item 'id' from 'GET /queue/{id}/items', or the 'contentId' you sent to 'POST /moderate' (webhooks send it as 'item.id'). For a content ID, the newest submission with that content ID is used, as the queue shows it. [required]\""}, {key: "project-id", text: " flag \"-p --project-id \" help=\"The project to act on, by ID or name. Required with an organization key unless the key reaches only one project; list projects with GET /projects. A project key acts on its own project and needs no value: naming another one is an error.\""}}},