@deepraxis/sdk 0.1.0-dev.c01abef → 0.1.0-dev.c41b7aa

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -129,25 +129,11 @@ export const operations = [
129
129
  "description": "Tool configurations available to the agent. Maximum of 128 tools\nacross all toolsets allowed."
130
130
  },
131
131
  {
132
- "name": "databases",
133
- "type": "array",
134
- "itemType": "object",
135
- "required": false,
136
- "description": "Database allowlist for platform resources accessible through service-agent codemode. Only kind=service accepts nonempty bindings; personal agents return 400. At most 20 bindings per resource type, with no duplicate ids. Newly added bindings apply only to new sessions; disabling or removing a binding immediately revokes access in running sessions. Unbound resources return 404; writes to read_only resources are refused. Other platform APIs return 403, except public API discovery. Invalid bindings and unknown item fields return 400. Omit on create for no bindings."
137
- },
138
- {
139
- "name": "vector_stores",
140
- "type": "array",
141
- "itemType": "object",
142
- "required": false,
143
- "description": "Knowledge vector store allowlist for platform resources accessible through service-agent codemode. Only kind=service accepts nonempty bindings; personal agents return 400. At most 20 bindings per resource type, with no duplicate ids. Newly added bindings apply only to new sessions; disabling or removing a binding immediately revokes access in running sessions. Unbound resources return 404; writes to read_only resources are refused. Other platform APIs return 403, except public API discovery. Invalid bindings and unknown item fields return 400. Omit on create for no bindings."
144
- },
145
- {
146
- "name": "files",
132
+ "name": "bindings",
147
133
  "type": "array",
148
134
  "itemType": "object",
149
135
  "required": false,
150
- "description": "File allowlist for platform resources accessible through service-agent codemode. Only kind=service accepts nonempty bindings; personal agents return 400. At most 20 bindings per resource type, with no duplicate ids. Newly added bindings apply only to new sessions; disabling or removing a binding immediately revokes access in running sessions. Unbound resources return 404; writes to read_only resources are refused. Other platform APIs return 403, except public API discovery. Invalid bindings and unknown item fields return 400. Omit on create for no bindings."
136
+ "description": "Platform resources and services this service agent's codemode may reach, as one list of typed bindings. Only kind=service accepts a nonempty list; personal agents return 400. There are two kinds. A resource binding names one resource with id and access: database (id db_..., read_only or read_write), vector_store (id vs_..., read_only or read_write), file (id file_..., read_only), media_library (any id without ':' or whitespace, read_only or read_write), model (a model catalog id, invoke), workflow and script (id <namespace>/<name>, invoke). A service binding opens a whole service and carries only enabled: search or browser. At most 20 bindings per type, no repeated type and id, and each service type at most once. Newly added bindings apply only to new sessions; disabling or removing a binding immediately revokes access in running sessions. A resource that is not bound returns 404, a service that is not opened returns 403, and writes to read_only resources are refused. Unknown types, fields on the wrong kind (id, access or instructions on a service binding), wrong access and malformed ids return 400. The former databases, vector_stores and files fields are removed and return 400. Omit on create for no bindings."
151
137
  },
152
138
  {
153
139
  "name": "kind",
@@ -197,6 +183,25 @@ export const operations = [
197
183
  "required": false,
198
184
  "description": "Praxis extension: switchable model ids on /agent/v1 only. The default model must be included. When omitted, only the default model is selectable."
199
185
  },
186
+ {
187
+ "name": "avatar",
188
+ "type": "string",
189
+ "required": false,
190
+ "description": "Avatar image of the agent: an absolute https URL of at most 2048 characters, without credentials; any other value returns 400 avatar must be an https URL. It is the default picture in agent lists, the agent detail, the chat header and embedded chat when the embed appearance sets none. Saved with the agent version like other configuration, so apply=false keeps the previous avatar in effect until that version is applied. Omit on create for no avatar; on update, omit to keep it and send null to clear it. Both personal and service agents accept it. /agent/v1 only; /anthropic neither accepts nor returns it."
191
+ },
192
+ {
193
+ "name": "environment_id",
194
+ "type": "string",
195
+ "required": false,
196
+ "description": "Default environment of a service agent: the environment_id a new session gets when it names none. Use light, node22 or the env_ id of an active environment of your organization; any other value returns 400 environment_id <id> was not found. null means no environment, so sessions are plain conversation without codemode or bash. Saved with the agent version like other configuration, so apply=false keeps the previous environment in effect for new sessions until that version is applied; a session that sets environment_id itself, null included, overrides it. Omit on create for light; on update, omit to keep it. Versions saved before this field existed read as light. Personal agents use a Computer: a non-null value returns 400 and the field is not returned. /agent/v1 only; /anthropic neither accepts nor returns it."
197
+ },
198
+ {
199
+ "name": "vault_ids",
200
+ "type": "array",
201
+ "itemType": "string",
202
+ "required": false,
203
+ "description": "Default vaults of a service agent: the vault_ids a new session gets when it names none, so the agent's credentials follow the version. At most 50 ids without duplicates; each must be a vault of your organization that is not archived, otherwise 400 vault_ids[<index>] <id> was not found. Saved with the agent version like other configuration, so apply=false keeps the previous vaults in effect for new sessions until that version is applied; a session that sets vault_ids itself, [] included, overrides it. Omit on create for []; on update, omit to keep the list and send an array to replace it as a whole. Versions saved before this field existed read as []. Embed tokens use the vault_ids of the version they pin; vault_ids on the embed policy is deprecated, still accepted and ignored. Personal agents get no default vaults: a non-empty value returns 400 and the field is not returned. /agent/v1 only; /anthropic neither accepts nor returns it."
204
+ },
200
205
  {
201
206
  "name": "preset",
202
207
  "type": "string",
@@ -239,7 +244,7 @@ export const operations = [
239
244
  "resource": "agent.agents",
240
245
  "method": "update",
241
246
  "summary": "Update agent",
242
- "description": "Update an agent. Send the current version in the body for optimistic concurrency: a stale version returns 409, and an update that changes nothing keeps the version number. Any real change saves a new version; existing sessions keep the version they were created with. Omitted fields keep their value. multiagent takes null or a coordinator roster; subagent_model keeps its value when omitted and is cleared by null. Archived agents cannot be updated. Unlike Anthropic Managed Agents, nonempty skills attachments return 400; use the native skill tool for available runtime skills.",
247
+ "description": "Update an agent. Send the current version in the body for optimistic concurrency: a stale version returns 409, and an update that changes nothing keeps the version number. Any real change saves a new version. apply defaults to true and moves active_version to the new version, or to the latest when configuration is unchanged; apply false saves without applying. version_note optionally records up to 280 characters on a newly created version. Existing sessions and tokens keep their version. Omitted fields keep their value. multiagent takes null or a coordinator roster; subagent_model keeps its value when omitted and is cleared by null. Archived agents cannot be updated. Unlike Anthropic Managed Agents, nonempty skills attachments return 400; use the native skill tool for available runtime skills.",
243
248
  "http": "POST",
244
249
  "path": "/agent/v1/agents/{agent_id}",
245
250
  "streaming": "no",
@@ -318,25 +323,23 @@ export const operations = [
318
323
  "description": "The agent's current version, used to prevent concurrent overwrites.\nObtain this value from a create or retrieve response. Must be at least 1 if\nspecified. When supplied, the request fails if it does not match the server's\ncurrent version; omit to apply the update unconditionally."
319
324
  },
320
325
  {
321
- "name": "databases",
322
- "type": "array",
323
- "itemType": "object",
326
+ "name": "apply",
327
+ "type": "boolean",
324
328
  "required": false,
325
- "description": "Replace this resource allowlist; omission preserves it, and null or [] clears it. Additions apply only to new sessions; disabling or removing a binding immediately revokes access in running sessions. Only service agents accept nonempty bindings."
329
+ "description": "Defaults to true: apply the newly saved version, or the latest version when configuration is unchanged. Set false to save without changing active_version. Unlike Managed Agents, saving and applying can be separate."
326
330
  },
327
331
  {
328
- "name": "vector_stores",
329
- "type": "array",
330
- "itemType": "object",
332
+ "name": "version_note",
333
+ "type": "string",
331
334
  "required": false,
332
- "description": "Replace this resource allowlist; omission preserves it, and null or [] clears it. Additions apply only to new sessions; disabling or removing a binding immediately revokes access in running sessions. Only service agents accept nonempty bindings."
335
+ "description": "Optional change explanation stored as note on the new immutable version, up to 280 characters. Omission stores null. A note alone does not create a version or rewrite an existing note."
333
336
  },
334
337
  {
335
- "name": "files",
338
+ "name": "bindings",
336
339
  "type": "array",
337
340
  "itemType": "object",
338
341
  "required": false,
339
- "description": "Replace this resource allowlist; omission preserves it, and null or [] clears it. Additions apply only to new sessions; disabling or removing a binding immediately revokes access in running sessions. Only service agents accept nonempty bindings."
342
+ "description": "Replace the whole bindings list; omission preserves it, and null or [] clears it. Additions apply only to new sessions; disabling or removing a binding immediately revokes access in running sessions. Only service agents accept a nonempty list."
340
343
  },
341
344
  {
342
345
  "name": "kind",
@@ -386,6 +389,25 @@ export const operations = [
386
389
  "required": false,
387
390
  "description": "Praxis extension: switchable model ids on /agent/v1 only. The default model must be included. When omitted, only the default model is selectable."
388
391
  },
392
+ {
393
+ "name": "avatar",
394
+ "type": "string",
395
+ "required": false,
396
+ "description": "Avatar image of the agent: an absolute https URL of at most 2048 characters, without credentials; any other value returns 400 avatar must be an https URL. It is the default picture in agent lists, the agent detail, the chat header and embedded chat when the embed appearance sets none. Saved with the agent version like other configuration, so apply=false keeps the previous avatar in effect until that version is applied. Omit on create for no avatar; on update, omit to keep it and send null to clear it. Both personal and service agents accept it. /agent/v1 only; /anthropic neither accepts nor returns it."
397
+ },
398
+ {
399
+ "name": "environment_id",
400
+ "type": "string",
401
+ "required": false,
402
+ "description": "Default environment of a service agent: the environment_id a new session gets when it names none. Use light, node22 or the env_ id of an active environment of your organization; any other value returns 400 environment_id <id> was not found. null means no environment, so sessions are plain conversation without codemode or bash. Saved with the agent version like other configuration, so apply=false keeps the previous environment in effect for new sessions until that version is applied; a session that sets environment_id itself, null included, overrides it. Omit on create for light; on update, omit to keep it. Versions saved before this field existed read as light. Personal agents use a Computer: a non-null value returns 400 and the field is not returned. /agent/v1 only; /anthropic neither accepts nor returns it."
403
+ },
404
+ {
405
+ "name": "vault_ids",
406
+ "type": "array",
407
+ "itemType": "string",
408
+ "required": false,
409
+ "description": "Default vaults of a service agent: the vault_ids a new session gets when it names none, so the agent's credentials follow the version. At most 50 ids without duplicates; each must be a vault of your organization that is not archived, otherwise 400 vault_ids[<index>] <id> was not found. Saved with the agent version like other configuration, so apply=false keeps the previous vaults in effect for new sessions until that version is applied; a session that sets vault_ids itself, [] included, overrides it. Omit on create for []; on update, omit to keep the list and send an array to replace it as a whole. Versions saved before this field existed read as []. Embed tokens use the vault_ids of the version they pin; vault_ids on the embed policy is deprecated, still accepted and ignored. Personal agents get no default vaults: a non-empty value returns 400 and the field is not returned. /agent/v1 only; /anthropic neither accepts nor returns it."
410
+ },
389
411
  {
390
412
  "name": "preset",
391
413
  "type": "string",
@@ -633,6 +655,27 @@ export const operations = [
633
655
  }
634
656
  ]
635
657
  },
658
+ {
659
+ "resource": "agent.agents.versions",
660
+ "method": "apply",
661
+ "summary": "Apply Agent Version",
662
+ "description": "Apply a version from agents.versions.list by its version number. This idempotent operation changes active_version without creating a version; existing sessions and tokens keep their version. The response is the latest saved agent with its current active_version. Missing versions return 404 Agent version not found; archived agents return 409 Agent is archived. For example, POST /agent/v1/agents/{agent_id}/versions/2/apply with no body.",
663
+ "http": "POST",
664
+ "path": "/agent/v1/agents/{agent_id}/versions/{version}/apply",
665
+ "streaming": "no",
666
+ "pagination": false,
667
+ "pathParams": [
668
+ {
669
+ "name": "agent_id",
670
+ "sdkName": "agent_id"
671
+ },
672
+ {
673
+ "name": "version",
674
+ "sdkName": "version"
675
+ }
676
+ ],
677
+ "query": []
678
+ },
636
679
  {
637
680
  "resource": "agent.computers",
638
681
  "method": "list",
@@ -1835,7 +1878,7 @@ export const operations = [
1835
1878
  "resource": "agent.sessions",
1836
1879
  "method": "create",
1837
1880
  "summary": "Create session",
1838
- "description": "Create a session: one conversation with an agent. Pass agent as an agent id (latest version) or {id, version, type:\"agent\"}. Unlike Anthropic Managed Agents, omit environment_id to get a light machine, unless computer_id (explicit, or the agent's default) selects a Computer; pass an environment id for a sandbox recipe. For service agents, omission returns environment_id=light; explicit null allocates no machine, so codemode, bash and other machine tools are unavailable. Optional model must be one of the agent's allowed models; optional thinking is {effort: low|medium|high|xhigh|max|none} or null, where null inherits the agent default and then the model default (none requires the model to allow disabling thinking). Selections are saved before initial_events run; invalid ones return 400 invalid_request_error. Inline agent overrides are not supported. Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. Omitted budget defaults to USD 20; null removes the limit, and a limit object uses a positive integer string of USD cents. Up to 500 file resources can be attached. Use initial_events to send a first user.message in this request, or send messages afterwards with sessions.events.send. The returned status can still be idle before initial events run; read agent.message and the subsequent session.status_idle event to confirm completion.",
1881
+ "description": "Create a session: one conversation with an agent. Pass agent as an agent id (active_version) or {id, version, type:\"agent\"}. Unlike Anthropic Managed Agents, omit environment_id to get a light machine, unless computer_id (explicit, or the agent's default) selects a Computer; pass an environment id for a sandbox recipe. For service agents, omission returns environment_id=light; explicit null allocates no machine, so codemode, bash and other machine tools are unavailable. Optional model must be one of the agent's allowed models; optional thinking is {effort: low|medium|high|xhigh|max|none} or null, where null inherits the agent default and then the model default (none requires the model to allow disabling thinking). Selections are saved before initial_events run; invalid ones return 400 invalid_request_error. Inline agent overrides are not supported. Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. Omitted budget defaults to USD 20; null removes the limit, and a limit object uses a positive integer string of USD cents. Up to 500 file resources can be attached. Use initial_events to send a first user.message in this request, or send messages afterwards with sessions.events.send. The returned status can still be idle before initial events run; read agent.message and the subsequent session.status_idle event to confirm completion.",
1839
1882
  "http": "POST",
1840
1883
  "path": "/agent/v1/sessions",
1841
1884
  "streaming": "no",
@@ -2721,6 +2764,225 @@ export const operations = [
2721
2764
  }
2722
2765
  ]
2723
2766
  },
2767
+ {
2768
+ "resource": "agent.skills",
2769
+ "method": "list",
2770
+ "summary": "List skills",
2771
+ "description": "List the skills uploaded to your organization, newest first, in pages of at most 100 (default 20). Use it to find a skill id before reading, versioning or deleting it. Only source=custom has content; source=anthropic returns an empty list. Pass next_page from the response as page to read the next page; a null next_page means the end.",
2772
+ "http": "GET",
2773
+ "path": "/agent/v1/skills",
2774
+ "streaming": "no",
2775
+ "pagination": false,
2776
+ "pathParams": [],
2777
+ "query": [
2778
+ {
2779
+ "name": "source",
2780
+ "type": "string",
2781
+ "required": false,
2782
+ "description": "Filter skills by source.\n\nIf provided, only skills from the specified source will be returned:\n\n- `\"custom\"`: only return user-created skills\n- `\"anthropic\"`: only return Anthropic-created skills"
2783
+ },
2784
+ {
2785
+ "name": "limit",
2786
+ "type": "number",
2787
+ "required": false,
2788
+ "description": "Number of items per page."
2789
+ },
2790
+ {
2791
+ "name": "page",
2792
+ "type": "string",
2793
+ "required": false,
2794
+ "description": "Opaque pagination cursor: pass the next_page value of the previous response unchanged. Omit it for the first page. A cursor from a different query or a malformed one returns 400."
2795
+ }
2796
+ ]
2797
+ },
2798
+ {
2799
+ "resource": "agent.skills",
2800
+ "method": "create",
2801
+ "summary": "Create skill",
2802
+ "description": "Upload a skill: a directory that contains SKILL.md, which the agent reads when it needs the skill. Send multipart/form-data with one files part per file, each file name being its path under one top-level directory (pdf/SKILL.md, pdf/scripts/run.py), and an optional display_name. SKILL.md frontmatter needs a description; name defaults to the directory name. Limits: 8 MB in total, at most 200 files, no .. segments, absolute paths or empty names; a violation returns 400 naming the path or field. The upload creates the skill and its first version, and versions are immutable. Attach the skill to an agent with `skills` on the agent.",
2803
+ "http": "POST",
2804
+ "path": "/agent/v1/skills",
2805
+ "streaming": "no",
2806
+ "pagination": false,
2807
+ "multipart": true,
2808
+ "pathParams": [],
2809
+ "query": [],
2810
+ "body": {
2811
+ "required": true,
2812
+ "fields": [
2813
+ {
2814
+ "name": "files",
2815
+ "type": "array",
2816
+ "itemType": "string",
2817
+ "required": true,
2818
+ "description": "Files to upload for the skill.\n\nAll files must be in the same top-level directory and must include a SKILL.md\nfile at the root of that directory."
2819
+ },
2820
+ {
2821
+ "name": "display_name",
2822
+ "type": "string",
2823
+ "required": false,
2824
+ "description": "Human-readable, single-line label for the Skill. Maximum 255\ncharacters. Always set: derived from the SKILL.md frontmatter `name` when\nomitted at creation. Not unique."
2825
+ }
2826
+ ]
2827
+ }
2828
+ },
2829
+ {
2830
+ "resource": "agent.skills",
2831
+ "method": "delete",
2832
+ "summary": "Delete skill",
2833
+ "description": "Delete a skill that has no live versions. A skill that still has versions returns 409 Delete all versions first; remove each with skills.versions.delete, then call this. Returns {id, type: skill_deleted}. skill_id comes from skills.create or skills.list.",
2834
+ "http": "DELETE",
2835
+ "path": "/agent/v1/skills/{skill_id}",
2836
+ "streaming": "no",
2837
+ "pagination": false,
2838
+ "pathParams": [
2839
+ {
2840
+ "name": "skill_id",
2841
+ "sdkName": "skill_id"
2842
+ }
2843
+ ],
2844
+ "query": []
2845
+ },
2846
+ {
2847
+ "resource": "agent.skills",
2848
+ "method": "retrieve",
2849
+ "summary": "Get skill",
2850
+ "description": "Read one skill by id: its display_name, source and latest_version_id. skill_id comes from skills.create or skills.list. A skill of another organization, or a deleted one, returns 404 Skill not found.",
2851
+ "http": "GET",
2852
+ "path": "/agent/v1/skills/{skill_id}",
2853
+ "streaming": "no",
2854
+ "pagination": false,
2855
+ "pathParams": [
2856
+ {
2857
+ "name": "skill_id",
2858
+ "sdkName": "skill_id"
2859
+ }
2860
+ ],
2861
+ "query": []
2862
+ },
2863
+ {
2864
+ "resource": "agent.skills.versions",
2865
+ "method": "list",
2866
+ "summary": "List skill versions",
2867
+ "description": "List the live versions of one skill, newest first, in pages of at most 100 (default 20). Each item carries the name and description read from the SKILL.md of that version. Pass next_page from the response as page to read the next page; a null next_page means the end.",
2868
+ "http": "GET",
2869
+ "path": "/agent/v1/skills/{skill_id}/versions",
2870
+ "streaming": "no",
2871
+ "pagination": false,
2872
+ "pathParams": [
2873
+ {
2874
+ "name": "skill_id",
2875
+ "sdkName": "skill_id"
2876
+ }
2877
+ ],
2878
+ "query": [
2879
+ {
2880
+ "name": "limit",
2881
+ "type": "number",
2882
+ "required": false,
2883
+ "description": "Number of items per page."
2884
+ },
2885
+ {
2886
+ "name": "page",
2887
+ "type": "string",
2888
+ "required": false,
2889
+ "description": "Opaque pagination cursor: pass the next_page value of the previous response unchanged. Omit it for the first page. A cursor from a different query or a malformed one returns 400."
2890
+ }
2891
+ ]
2892
+ },
2893
+ {
2894
+ "resource": "agent.skills.versions",
2895
+ "method": "create",
2896
+ "summary": "Create skill version",
2897
+ "description": "Upload a new version of a skill with the same multipart/form-data shape and limits as skills.create (8 MB, 200 files, one top-level directory containing SKILL.md). The SKILL.md name must equal the name of the skill; a different name returns 400. The new version becomes latest_version_id of the skill, and earlier versions stay unchanged because versions are immutable. Attach it to an agent with `skills` on the agent.",
2898
+ "http": "POST",
2899
+ "path": "/agent/v1/skills/{skill_id}/versions",
2900
+ "streaming": "no",
2901
+ "pagination": false,
2902
+ "multipart": true,
2903
+ "pathParams": [
2904
+ {
2905
+ "name": "skill_id",
2906
+ "sdkName": "skill_id"
2907
+ }
2908
+ ],
2909
+ "query": [],
2910
+ "body": {
2911
+ "required": true,
2912
+ "fields": [
2913
+ {
2914
+ "name": "files",
2915
+ "type": "array",
2916
+ "itemType": "string",
2917
+ "required": true,
2918
+ "description": "Files to upload for the skill.\n\nAll files must be in the same top-level directory and must include a SKILL.md\nfile at the root of that directory."
2919
+ }
2920
+ ]
2921
+ }
2922
+ },
2923
+ {
2924
+ "resource": "agent.skills.versions",
2925
+ "method": "delete",
2926
+ "summary": "Delete skill version",
2927
+ "description": "Soft-delete one version of a skill so it can no longer be read or downloaded; latest_version_id of the skill falls back to the newest remaining version. Returns {id, type: skill_version_deleted}. A skill can be deleted only after all of its versions are deleted.",
2928
+ "http": "DELETE",
2929
+ "path": "/agent/v1/skills/{skill_id}/versions/{version}",
2930
+ "streaming": "no",
2931
+ "pagination": false,
2932
+ "pathParams": [
2933
+ {
2934
+ "name": "skill_id",
2935
+ "sdkName": "skill_id"
2936
+ },
2937
+ {
2938
+ "name": "version",
2939
+ "sdkName": "version"
2940
+ }
2941
+ ],
2942
+ "query": []
2943
+ },
2944
+ {
2945
+ "resource": "agent.skills.versions",
2946
+ "method": "retrieve",
2947
+ "summary": "Get skill version",
2948
+ "description": "Read one version of a skill: its name, description and created_at as read from SKILL.md. version is the id returned by skills.versions.create or skills.versions.list. A deleted or unknown version returns 404 Skill version not found.",
2949
+ "http": "GET",
2950
+ "path": "/agent/v1/skills/{skill_id}/versions/{version}",
2951
+ "streaming": "no",
2952
+ "pagination": false,
2953
+ "pathParams": [
2954
+ {
2955
+ "name": "skill_id",
2956
+ "sdkName": "skill_id"
2957
+ },
2958
+ {
2959
+ "name": "version",
2960
+ "sdkName": "version"
2961
+ }
2962
+ ],
2963
+ "query": []
2964
+ },
2965
+ {
2966
+ "resource": "agent.skills.versions",
2967
+ "method": "retrieveContent",
2968
+ "summary": "Download skill version",
2969
+ "description": "Download the content of one version as a zip archive (application/zip): the uploaded directory with its top-level folder and every file. version is the id returned by skills.versions.create or skills.versions.list; a deleted version returns 404.",
2970
+ "http": "GET",
2971
+ "path": "/agent/v1/skills/{skill_id}/versions/{version}/content",
2972
+ "streaming": "no",
2973
+ "pagination": false,
2974
+ "pathParams": [
2975
+ {
2976
+ "name": "skill_id",
2977
+ "sdkName": "skill_id"
2978
+ },
2979
+ {
2980
+ "name": "version",
2981
+ "sdkName": "version"
2982
+ }
2983
+ ],
2984
+ "query": []
2985
+ },
2724
2986
  {
2725
2987
  "resource": "agent.toolsets",
2726
2988
  "method": "list",
@@ -3563,13 +3825,13 @@ export const operations = [
3563
3825
  "name": "namespace",
3564
3826
  "type": "string",
3565
3827
  "required": true,
3566
- "description": "Choose a namespace without prior registration; praxis is read-only. Folded to lowercase; matches [a-z0-9][a-z0-9._-]{0,63}."
3828
+ "description": "Choose a namespace without prior registration; praxis is reserved for built-in Actions. Folded to lowercase; matches [a-z0-9][a-z0-9_-]{0,63}."
3567
3829
  },
3568
3830
  {
3569
3831
  "name": "name",
3570
3832
  "type": "string",
3571
3833
  "required": true,
3572
- "description": "Name, folded to lowercase; matches [a-z0-9][a-z0-9._-]{0,63}."
3834
+ "description": "Name, folded to lowercase; matches [a-z0-9][a-z0-9_-]{0,63}."
3573
3835
  },
3574
3836
  {
3575
3837
  "name": "description",
@@ -3632,8 +3894,8 @@ export const operations = [
3632
3894
  {
3633
3895
  "resource": "automation.actions",
3634
3896
  "method": "retrieve",
3635
- "summary": "Get an action",
3636
- "description": "Read the action and its full current implementation. The response ETag is the current revision ID for conditional updates.",
3897
+ "summary": "Get an Action with its current input and output JSON Schemas",
3898
+ "description": "Read the Action and its full current implementation, with input and output JSON Schemas at current_revision.input_schema and current_revision.output_schema. To read a built-in Action, use ns=praxis and name=<bare name>, for example name=ocr; invoke it in a script with call(\"ocr\", input). The response ETag is the current revision ID for conditional updates.",
3637
3899
  "http": "GET",
3638
3900
  "path": "/automation/v1/actions/{ns}/{name}",
3639
3901
  "streaming": "no",
@@ -4207,8 +4469,8 @@ export const operations = [
4207
4469
  {
4208
4470
  "resource": "automation.runs",
4209
4471
  "method": "create",
4210
- "summary": "Create a run",
4211
- "description": "Execute a published script or workflow with target, or test unpublished code directly with source and language (ts for TypeScript, yaml for workflow YAML), without first saving or publishing a definition. target and source are mutually exclusive; target accepts ns/name@version, @tag or @range and defaults to latest when @ is omitted. Source/input validation precedes run creation, so a separate validate call is optional. input defaults to {} and must match the input schema and fit within 1 MiB. wait is 0–60 seconds (default 0): a terminal run returns 200, otherwise 202. Use the returned id with praxis.automation.runs.retrieve and inspect status, output and error; acceptance does not mean successful completion. Idempotency-Key is scoped to tenant, method and path for 24 hours, excluding wait from the fingerprint; replay returns the current run with Idempotent-Replayed: true, changed contents return 422 and an in-flight request returns 409. New non-deterministic run IDs contain 78 characters (run_ + 10-character base36 millisecond timestamp + 64-character hexadecimal DO ID), compared with 46 for legacy random IDs. Historical and deterministic IDs remain valid; same-millisecond order is not guaranteed. Minimal body: {\"source\":\"export default async () => ({ok: true});\",\"language\":\"ts\",\"wait\":10}.",
4472
+ "summary": "Run a published target or execute draft source",
4473
+ "description": "Execute a published script or workflow with target, or test unpublished code directly with source and language (ts for TypeScript, yaml for workflow YAML), without first saving or publishing a definition. Minimal script: `export default async ({ file_id }: { file_id: string }) => { const result = await call(\"ocr\", { document: { type: \"file\", file_id } }); return result; }`; send it as source with language=\"ts\", input={\"file_id\":\"<uploaded file ID>\"} and wait=0, using a PDF or image already uploaded to your account. To call a platform API directly in the same script, use the praxis SDK object, for example `praxis.model.ocr.create({ body: { model: \"glm-ocr\", document: { type: \"file\", file_id } } })`; Action IDs are strings passed to call(), not SDK methods such as praxis.ocr(...). praxis, call, invoke, console and codemode are module-scope bindings, not on globalThis, and need no import; invoke(\"namespace/name\", input) starts a child run. target and source are mutually exclusive; target accepts ns/name@version, @tag or @range and defaults to latest when @ is omitted. Source/input validation precedes run creation, so a separate validate call is optional. input defaults to {} and must match the input schema and fit within 1 MiB. wait is 0–60 seconds (default 0): a terminal run returns 200, otherwise 202. Use the returned id with praxis.automation.runs.retrieve and inspect status, output and error; acceptance does not mean successful completion. For long-running, background or batch work, use wait: 0 and poll the run, or split work into child runs or a workflow; wait only controls the response wait and does not extend execution limits. Actions time out after 30 s (run-sandbox after 10 min); scripts have a 5 min wall-clock limit and a 30 s CPU limit; workflows default to 24 h and allow up to 7 days. Each run can start at most 100 child runs, with at most 20 active at once; nesting depth is limited to 10. Idempotency-Key is scoped to tenant, method and path for 24 hours, excluding wait from the fingerprint; replay returns the current run with Idempotent-Replayed: true, changed contents return 422 and an in-flight request returns 409. New non-deterministic run IDs contain 78 characters, compared with 46 for legacy random IDs; treat IDs as opaque strings. Historical and deterministic IDs remain valid; same-millisecond order is not guaranteed.",
4212
4474
  "http": "POST",
4213
4475
  "path": "/automation/v1/runs",
4214
4476
  "streaming": "no",
@@ -4686,7 +4948,7 @@ export const operations = [
4686
4948
  "resource": "automation.scripts",
4687
4949
  "method": "create",
4688
4950
  "summary": "Create a script",
4689
- "description": "Save a TypeScript script as an editable draft for later reuse; this does not publish or start a run. Choose your own namespace without registering it first; praxis is read-only. Scripts and workflows share names within the tenant; a duplicate returns NAME_TAKEN. The draft is a source string with a default-exported function, for example `export default async (input: {name: string}) => ({greeting: \"Hello, \" + input.name});`. To test it, pass that source and language=ts to praxis.automation.runs.create without publishing. To publish later, use the returned draft.revision as expected_draft_revision.",
4951
+ "description": "Save a TypeScript script as an editable draft for later reuse; this does not publish or start a run. Choose your own namespace without registering it first; praxis is reserved for built-in Actions. Scripts and workflows share names within the tenant; a duplicate returns NAME_TAKEN. The draft is a source string with a default-exported function, for example `export default async (input: {name: string}) => ({greeting: \"Hello, \" + input.name});`. Scripts provide praxis, call, invoke, console and codemode as module-scope bindings, not on globalThis, with no import needed: praxis.<domain>.<resource>.<method>(...) calls a platform API, call(\"ocr\", input) calls a built-in Action, and invoke(\"namespace/name\", input) starts a child run. Action IDs are strings (bare names for built-ins, namespace/name for your own Actions); praxis.ocr(...) does not exist. To test it, pass that source and language=ts to praxis.automation.runs.create without publishing. To publish later, use the returned draft.revision as expected_draft_revision.",
4690
4952
  "http": "POST",
4691
4953
  "path": "/automation/v1/scripts",
4692
4954
  "streaming": "no",
@@ -4700,13 +4962,13 @@ export const operations = [
4700
4962
  "name": "namespace",
4701
4963
  "type": "string",
4702
4964
  "required": true,
4703
- "description": "Choose a namespace without prior registration; praxis is read-only. Folded to lowercase; matches [a-z0-9][a-z0-9._-]{0,63}."
4965
+ "description": "Choose a namespace without prior registration; praxis is reserved for built-in Actions. Folded to lowercase; matches [a-z0-9][a-z0-9_-]{0,63}."
4704
4966
  },
4705
4967
  {
4706
4968
  "name": "name",
4707
4969
  "type": "string",
4708
4970
  "required": true,
4709
- "description": "Name, folded to lowercase; matches [a-z0-9][a-z0-9._-]{0,63}."
4971
+ "description": "Name, folded to lowercase; matches [a-z0-9][a-z0-9_-]{0,63}."
4710
4972
  },
4711
4973
  {
4712
4974
  "name": "description",
@@ -4754,7 +5016,7 @@ export const operations = [
4754
5016
  "resource": "automation.scripts",
4755
5017
  "method": "update",
4756
5018
  "summary": "Update a script draft",
4757
- "description": "Update description, labels or draft with the current draft revision in If-Match. Even metadata-only updates create a new draft revision.",
5019
+ "description": "Update description, labels or draft with the current draft revision in If-Match. Even metadata-only updates create a new draft revision. Scripts provide praxis, call, invoke, console and codemode as module-scope bindings, not on globalThis, with no import needed: praxis.<domain>.<resource>.<method>(...) calls a platform API, call(\"ocr\", input) calls a built-in Action, and invoke(\"namespace/name\", input) starts a child run. Action IDs are strings (bare names for built-ins, namespace/name for your own Actions); praxis.ocr(...) does not exist.",
4758
5020
  "http": "PATCH",
4759
5021
  "path": "/automation/v1/scripts/{ns}/{name}",
4760
5022
  "streaming": "no",
@@ -5708,7 +5970,7 @@ export const operations = [
5708
5970
  "resource": "automation.workflows",
5709
5971
  "method": "create",
5710
5972
  "summary": "Create a workflow",
5711
- "description": "Save a YAML workflow as an editable draft without publishing or starting a run. Choose your own namespace without registering it first; praxis is read-only. To test the draft, send its source and language=yaml to praxis.automation.runs.create. Scripts and workflows share names within the tenant; a duplicate returns NAME_TAKEN. run.workflow accepts ns/name@range or {namespace, name, version, input}; run.script uses the same reference shape as a platform extension. Object namespace, name and version are required; version accepts an exact version, dist-tag or range, locked at publication. Object input defaults to {} and supports expressions; string references retain task-level with. run.await defaults to true and returns the child output. With false, the child uses detach and the task immediately returns {run_id}; parent cancellation does not cascade. Inline script.code returns DEFINITION_INVALID with a detail asking you to save a script and reference it first. raise.error retains its type URI, status, title and detail in the run error.",
5973
+ "description": "Save a YAML workflow as an editable draft without publishing or starting a run. Choose your own namespace without registering it first; praxis is reserved for built-in Actions. To test the draft, send its source and language=yaml to praxis.automation.runs.create. Scripts and workflows share names within the tenant; a duplicate returns NAME_TAKEN. run.workflow accepts ns/name@range or {namespace, name, version, input}; run.script uses the same reference shape as a platform extension. Object namespace, name and version are required; version accepts an exact version, dist-tag or range, locked at publication. Object input defaults to {} and supports expressions; string references retain task-level with. run.await defaults to true and returns the child output. With false, the child uses detach and the task immediately returns {run_id}; parent cancellation does not cascade. Inline script.code returns DEFINITION_INVALID with a detail asking you to save a script and reference it first. raise.error retains its type URI, status, title and detail in the run error.",
5712
5974
  "http": "POST",
5713
5975
  "path": "/automation/v1/workflows",
5714
5976
  "streaming": "no",
@@ -5722,13 +5984,13 @@ export const operations = [
5722
5984
  "name": "namespace",
5723
5985
  "type": "string",
5724
5986
  "required": true,
5725
- "description": "Choose a namespace without prior registration; praxis is read-only. Folded to lowercase; matches [a-z0-9][a-z0-9._-]{0,63}."
5987
+ "description": "Choose a namespace without prior registration; praxis is reserved for built-in Actions. Folded to lowercase; matches [a-z0-9][a-z0-9_-]{0,63}."
5726
5988
  },
5727
5989
  {
5728
5990
  "name": "name",
5729
5991
  "type": "string",
5730
5992
  "required": true,
5731
- "description": "Name, folded to lowercase; matches [a-z0-9][a-z0-9._-]{0,63}."
5993
+ "description": "Name, folded to lowercase; matches [a-z0-9][a-z0-9_-]{0,63}."
5732
5994
  },
5733
5995
  {
5734
5996
  "name": "description",
@@ -12297,7 +12559,7 @@ export const operations = [
12297
12559
  "resource": "sandbox.sandboxes",
12298
12560
  "method": "create",
12299
12561
  "summary": "Create sandbox (v2)",
12300
- "description": "Start an isolated environment using a templateID from templates.list, then retain sandboxID for lifecycle calls. Unlike E2B, templateID resolves to your ready Environment or a public Base; omit it to use the default base template (`base`), as the E2B SDK does. timeout is seconds from creation and defaults to 300. envVars supplies environment variables and metadata stores your string labels. All system communication is secured; use the returned envdAccessToken for files and commands through the envd data plane, not the management methods. Never print that token.",
12562
+ "description": "Create a sandbox from the template. All system communication with the sandbox is secured.",
12301
12563
  "http": "POST",
12302
12564
  "path": "/sandbox/v1/sandboxes",
12303
12565
  "streaming": "no",
@@ -12311,7 +12573,7 @@ export const operations = [
12311
12573
  "name": "templateID",
12312
12574
  "type": "string",
12313
12575
  "required": true,
12314
- "description": "Template ID or alias from templates.list; resolves to your ready Environment first, then a public Base. Omit it to use the default base template (`base`)."
12576
+ "description": "Identifier of the required template"
12315
12577
  },
12316
12578
  {
12317
12579
  "name": "timeout",
@@ -12449,7 +12711,7 @@ export const operations = [
12449
12711
  "resource": "sandbox.sandboxes",
12450
12712
  "method": "connect",
12451
12713
  "summary": "Connect sandbox (v2)",
12452
- "description": "Reconnect to an existing sandbox and resume it if paused. The optional timeout is seconds from now and defaults to 300; a later existing deadline is preserved. A running sandbox returns 200 and a resumed sandbox returns 201. Read sandboxID, domain and envdAccessToken from the response for subsequent data-plane access; never treat connecting as executing a command.",
12714
+ "description": "Returns sandbox details. If the sandbox is paused, it will be resumed. TTL is only extended. The request body is optional; an omitted timeout defaults to 300 seconds.",
12453
12715
  "http": "POST",
12454
12716
  "path": "/sandbox/v1/sandboxes/{sandboxID}/connect",
12455
12717
  "streaming": "no",
@@ -12608,7 +12870,7 @@ export const operations = [
12608
12870
  "resource": "sandbox.sandboxes.metrics",
12609
12871
  "method": "list",
12610
12872
  "summary": "Sandbox metrics",
12611
- "description": "Read CPU, memory and disk usage over the requested interval; start and end are Unix seconds. Unlike E2B, light sandboxes do not provide metrics; check the returned capabilities before requesting them.",
12873
+ "description": "Read CPU, memory and disk usage samples of a sandbox over a time window. Use it to size a sandbox or find out why it is slow. start and end are Unix timestamps in seconds; without them the recent samples are returned. An unknown id answers 404.",
12612
12874
  "http": "GET",
12613
12875
  "path": "/sandbox/v1/sandboxes/{sandboxID}/metrics",
12614
12876
  "streaming": "no",
@@ -12692,7 +12954,7 @@ export const operations = [
12692
12954
  "resource": "sandbox.sandboxes",
12693
12955
  "method": "pause",
12694
12956
  "summary": "Pause sandbox",
12695
- "description": "Suspend a running sandbox for later connection; use delete to discard it instead. Unlike E2B, light sandboxes preserve disk rather than memory, and persistent sandboxes can resume on data-plane traffic even when autoResume is false. Inspect paused state with the management retrieve operation to avoid waking the sandbox. Explicitly ephemeral sandboxes cannot pause. memory defaults to true, but only a memory-capable sandbox preserves running processes; memory=false saves disk state and resumes with a cold boot. Success returns 204; connect resumes the saved sandbox.",
12957
+ "description": "Pause a running sandbox, keeping its files and memory so that connectSandbox can resume it later. Use it to stop paying for compute without losing state; to discard the sandbox use killSandbox. Success answers 204. A sandbox that is not running answers 409.",
12696
12958
  "http": "POST",
12697
12959
  "path": "/sandbox/v1/sandboxes/{sandboxID}/pause",
12698
12960
  "streaming": "no",
@@ -13084,7 +13346,7 @@ export const operations = [
13084
13346
  "resource": "sandbox.templates",
13085
13347
  "method": "list",
13086
13348
  "summary": "List templates (v2)",
13087
- "description": "Choose a templateID before creating a sandbox. Unlike E2B, this catalog lists your ready Environments and public Bases; use a returned ID or alias; `base` is the default template that create uses when templateID is omitted. Page through results using nextToken.",
13349
+ "description": "List the templates you can create sandboxes from. Use it to pick the template id or alias for createSandbox. `base` is the default template that createSandbox uses when templateID is omitted. limit is 1 to 100 (default 100); send the cursor from the response back as nextToken to continue.",
13088
13350
  "http": "GET",
13089
13351
  "path": "/sandbox/v1/templates",
13090
13352
  "streaming": "no",
@@ -13845,6 +14107,1466 @@ export const operations = [
13845
14107
  ]
13846
14108
  }
13847
14109
  },
14110
+ {
14111
+ "resource": "ticket.activity",
14112
+ "method": "retrieve",
14113
+ "summary": "List activity",
14114
+ "description": "List activity within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
14115
+ "http": "GET",
14116
+ "path": "/ticket/v1/activity",
14117
+ "streaming": "no",
14118
+ "pagination": false,
14119
+ "pathParams": [],
14120
+ "query": [
14121
+ {
14122
+ "name": "repository",
14123
+ "type": "string",
14124
+ "required": false,
14125
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14126
+ },
14127
+ {
14128
+ "name": "page_size",
14129
+ "type": "integer",
14130
+ "required": false,
14131
+ "description": "Records per page; defaults to 30, maximum 100."
14132
+ },
14133
+ {
14134
+ "name": "page_token",
14135
+ "type": "string",
14136
+ "required": false,
14137
+ "description": "Cursor returned as next_page_token; omit for the first page."
14138
+ },
14139
+ {
14140
+ "name": "filter",
14141
+ "type": "string",
14142
+ "required": false,
14143
+ "description": "Activity qualifiers: actor, actor-kind, action, ticket, source and since; passed unchanged to the service."
14144
+ }
14145
+ ]
14146
+ },
14147
+ {
14148
+ "resource": "ticket.comments",
14149
+ "method": "delete",
14150
+ "summary": "Remove comments",
14151
+ "description": "Remove comments within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14152
+ "http": "DELETE",
14153
+ "path": "/ticket/v1/comments/{id}",
14154
+ "streaming": "no",
14155
+ "pagination": false,
14156
+ "pathParams": [
14157
+ {
14158
+ "name": "id",
14159
+ "sdkName": "id"
14160
+ }
14161
+ ],
14162
+ "query": [
14163
+ {
14164
+ "name": "repository",
14165
+ "type": "string",
14166
+ "required": false,
14167
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14168
+ }
14169
+ ]
14170
+ },
14171
+ {
14172
+ "resource": "ticket.comments",
14173
+ "method": "retrieve",
14174
+ "summary": "Read comments",
14175
+ "description": "Read comments within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14176
+ "http": "GET",
14177
+ "path": "/ticket/v1/comments/{id}",
14178
+ "streaming": "no",
14179
+ "pagination": false,
14180
+ "pathParams": [
14181
+ {
14182
+ "name": "id",
14183
+ "sdkName": "id"
14184
+ }
14185
+ ],
14186
+ "query": [
14187
+ {
14188
+ "name": "repository",
14189
+ "type": "string",
14190
+ "required": false,
14191
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14192
+ }
14193
+ ]
14194
+ },
14195
+ {
14196
+ "resource": "ticket.comments",
14197
+ "method": "update",
14198
+ "summary": "Update comments",
14199
+ "description": "Update comments within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14200
+ "http": "PATCH",
14201
+ "path": "/ticket/v1/comments/{id}",
14202
+ "streaming": "no",
14203
+ "pagination": false,
14204
+ "pathParams": [
14205
+ {
14206
+ "name": "id",
14207
+ "sdkName": "id"
14208
+ }
14209
+ ],
14210
+ "query": [
14211
+ {
14212
+ "name": "repository",
14213
+ "type": "string",
14214
+ "required": false,
14215
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14216
+ }
14217
+ ],
14218
+ "body": {
14219
+ "required": true,
14220
+ "fields": [
14221
+ {
14222
+ "name": "body",
14223
+ "type": "string",
14224
+ "required": true,
14225
+ "description": "Markdown text, at most 65536 characters."
14226
+ },
14227
+ {
14228
+ "name": "in_reply_to",
14229
+ "type": "string",
14230
+ "required": false,
14231
+ "description": "Opaque identifier returned by this resource's create or list operation."
14232
+ }
14233
+ ]
14234
+ }
14235
+ },
14236
+ {
14237
+ "resource": "ticket.comments.reactions",
14238
+ "method": "list",
14239
+ "summary": "List reactions",
14240
+ "description": "List reactions within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
14241
+ "http": "GET",
14242
+ "path": "/ticket/v1/comments/{id}/reactions",
14243
+ "streaming": "no",
14244
+ "pagination": false,
14245
+ "pathParams": [
14246
+ {
14247
+ "name": "id",
14248
+ "sdkName": "id"
14249
+ }
14250
+ ],
14251
+ "query": [
14252
+ {
14253
+ "name": "repository",
14254
+ "type": "string",
14255
+ "required": false,
14256
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14257
+ },
14258
+ {
14259
+ "name": "page_size",
14260
+ "type": "integer",
14261
+ "required": false,
14262
+ "description": "Records per page; defaults to 30, maximum 100."
14263
+ },
14264
+ {
14265
+ "name": "page_token",
14266
+ "type": "string",
14267
+ "required": false,
14268
+ "description": "Cursor returned as next_page_token; omit for the first page."
14269
+ }
14270
+ ]
14271
+ },
14272
+ {
14273
+ "resource": "ticket.comments.reactions",
14274
+ "method": "create",
14275
+ "summary": "Create or add reactions",
14276
+ "description": "Create or add reactions within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14277
+ "http": "POST",
14278
+ "path": "/ticket/v1/comments/{id}/reactions",
14279
+ "streaming": "no",
14280
+ "pagination": false,
14281
+ "pathParams": [
14282
+ {
14283
+ "name": "id",
14284
+ "sdkName": "id"
14285
+ }
14286
+ ],
14287
+ "query": [
14288
+ {
14289
+ "name": "repository",
14290
+ "type": "string",
14291
+ "required": false,
14292
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14293
+ }
14294
+ ],
14295
+ "body": {
14296
+ "required": true,
14297
+ "fields": [
14298
+ {
14299
+ "name": "content",
14300
+ "type": "string",
14301
+ "enum": [
14302
+ "+1",
14303
+ "-1",
14304
+ "laugh",
14305
+ "confused",
14306
+ "heart",
14307
+ "hooray",
14308
+ "eyes",
14309
+ "rocket"
14310
+ ],
14311
+ "required": true,
14312
+ "description": "Reaction to add or remove: +1 approves, -1 disapproves, laugh, confused, heart, hooray, eyes, or rocket."
14313
+ }
14314
+ ]
14315
+ }
14316
+ },
14317
+ {
14318
+ "resource": "ticket.comments.reactions",
14319
+ "method": "delete",
14320
+ "summary": "Remove reactions",
14321
+ "description": "Remove reactions within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14322
+ "http": "DELETE",
14323
+ "path": "/ticket/v1/comments/{id}/reactions/{content}",
14324
+ "streaming": "no",
14325
+ "pagination": false,
14326
+ "pathParams": [
14327
+ {
14328
+ "name": "id",
14329
+ "sdkName": "id"
14330
+ },
14331
+ {
14332
+ "name": "content",
14333
+ "sdkName": "content"
14334
+ }
14335
+ ],
14336
+ "query": [
14337
+ {
14338
+ "name": "repository",
14339
+ "type": "string",
14340
+ "required": false,
14341
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14342
+ }
14343
+ ]
14344
+ },
14345
+ {
14346
+ "resource": "ticket.labels",
14347
+ "method": "list",
14348
+ "summary": "List labels",
14349
+ "description": "List labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
14350
+ "http": "GET",
14351
+ "path": "/ticket/v1/labels",
14352
+ "streaming": "no",
14353
+ "pagination": false,
14354
+ "pathParams": [],
14355
+ "query": [
14356
+ {
14357
+ "name": "repository",
14358
+ "type": "string",
14359
+ "required": false,
14360
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14361
+ },
14362
+ {
14363
+ "name": "page_size",
14364
+ "type": "integer",
14365
+ "required": false,
14366
+ "description": "Records per page; defaults to 30, maximum 100."
14367
+ },
14368
+ {
14369
+ "name": "page_token",
14370
+ "type": "string",
14371
+ "required": false,
14372
+ "description": "Cursor returned as next_page_token; omit for the first page."
14373
+ }
14374
+ ]
14375
+ },
14376
+ {
14377
+ "resource": "ticket.labels",
14378
+ "method": "create",
14379
+ "summary": "Create or add labels",
14380
+ "description": "Create or add labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.",
14381
+ "http": "POST",
14382
+ "path": "/ticket/v1/labels",
14383
+ "streaming": "no",
14384
+ "pagination": false,
14385
+ "pathParams": [],
14386
+ "query": [
14387
+ {
14388
+ "name": "repository",
14389
+ "type": "string",
14390
+ "required": false,
14391
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14392
+ }
14393
+ ],
14394
+ "body": {
14395
+ "required": true,
14396
+ "fields": [
14397
+ {
14398
+ "name": "name",
14399
+ "type": "string",
14400
+ "required": true,
14401
+ "description": "Case-insensitive label name within the repository."
14402
+ },
14403
+ {
14404
+ "name": "color",
14405
+ "type": "string",
14406
+ "required": true,
14407
+ "description": "Six hexadecimal digits without #."
14408
+ },
14409
+ {
14410
+ "name": "description",
14411
+ "type": "string",
14412
+ "required": false,
14413
+ "description": "Label's purpose."
14414
+ }
14415
+ ]
14416
+ }
14417
+ },
14418
+ {
14419
+ "resource": "ticket.labels",
14420
+ "method": "delete",
14421
+ "summary": "Remove labels",
14422
+ "description": "Remove labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.",
14423
+ "http": "DELETE",
14424
+ "path": "/ticket/v1/labels/{name}",
14425
+ "streaming": "no",
14426
+ "pagination": false,
14427
+ "pathParams": [
14428
+ {
14429
+ "name": "name",
14430
+ "sdkName": "name"
14431
+ }
14432
+ ],
14433
+ "query": [
14434
+ {
14435
+ "name": "repository",
14436
+ "type": "string",
14437
+ "required": false,
14438
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14439
+ }
14440
+ ]
14441
+ },
14442
+ {
14443
+ "resource": "ticket.labels",
14444
+ "method": "update",
14445
+ "summary": "Update labels",
14446
+ "description": "Update labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.",
14447
+ "http": "PATCH",
14448
+ "path": "/ticket/v1/labels/{name}",
14449
+ "streaming": "no",
14450
+ "pagination": false,
14451
+ "pathParams": [
14452
+ {
14453
+ "name": "name",
14454
+ "sdkName": "name"
14455
+ }
14456
+ ],
14457
+ "query": [
14458
+ {
14459
+ "name": "repository",
14460
+ "type": "string",
14461
+ "required": false,
14462
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14463
+ }
14464
+ ],
14465
+ "body": {
14466
+ "required": true,
14467
+ "fields": [
14468
+ {
14469
+ "name": "color",
14470
+ "type": "string",
14471
+ "required": false,
14472
+ "description": "Six hexadecimal digits without #."
14473
+ },
14474
+ {
14475
+ "name": "description",
14476
+ "type": "string",
14477
+ "required": false,
14478
+ "description": "Label's purpose."
14479
+ },
14480
+ {
14481
+ "name": "new_name",
14482
+ "type": "string",
14483
+ "required": false,
14484
+ "description": "Case-insensitive label name within the repository."
14485
+ }
14486
+ ]
14487
+ }
14488
+ },
14489
+ {
14490
+ "resource": "ticket.milestones",
14491
+ "method": "list",
14492
+ "summary": "List milestones",
14493
+ "description": "List milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
14494
+ "http": "GET",
14495
+ "path": "/ticket/v1/milestones",
14496
+ "streaming": "no",
14497
+ "pagination": false,
14498
+ "pathParams": [],
14499
+ "query": [
14500
+ {
14501
+ "name": "repository",
14502
+ "type": "string",
14503
+ "required": false,
14504
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14505
+ },
14506
+ {
14507
+ "name": "page_size",
14508
+ "type": "integer",
14509
+ "required": false,
14510
+ "description": "Records per page; defaults to 30, maximum 100."
14511
+ },
14512
+ {
14513
+ "name": "page_token",
14514
+ "type": "string",
14515
+ "required": false,
14516
+ "description": "Cursor returned as next_page_token; omit for the first page."
14517
+ }
14518
+ ]
14519
+ },
14520
+ {
14521
+ "resource": "ticket.milestones",
14522
+ "method": "create",
14523
+ "summary": "Create or add milestones",
14524
+ "description": "Create or add milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.",
14525
+ "http": "POST",
14526
+ "path": "/ticket/v1/milestones",
14527
+ "streaming": "no",
14528
+ "pagination": false,
14529
+ "pathParams": [],
14530
+ "query": [
14531
+ {
14532
+ "name": "repository",
14533
+ "type": "string",
14534
+ "required": false,
14535
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14536
+ }
14537
+ ],
14538
+ "body": {
14539
+ "required": true,
14540
+ "fields": [
14541
+ {
14542
+ "name": "title",
14543
+ "type": "string",
14544
+ "required": true,
14545
+ "description": "Short title, at most 256 Unicode characters."
14546
+ },
14547
+ {
14548
+ "name": "description",
14549
+ "type": "string",
14550
+ "required": false,
14551
+ "description": "Milestone description."
14552
+ },
14553
+ {
14554
+ "name": "due_on",
14555
+ "type": "string",
14556
+ "required": false,
14557
+ "description": "Due date, or null if unset."
14558
+ },
14559
+ {
14560
+ "name": "state",
14561
+ "type": "string",
14562
+ "enum": [
14563
+ "open",
14564
+ "closed"
14565
+ ],
14566
+ "required": false,
14567
+ "description": "open means actionable; closed means resolved or declined."
14568
+ }
14569
+ ]
14570
+ }
14571
+ },
14572
+ {
14573
+ "resource": "ticket.milestones",
14574
+ "method": "delete",
14575
+ "summary": "Remove milestones",
14576
+ "description": "Remove milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.",
14577
+ "http": "DELETE",
14578
+ "path": "/ticket/v1/milestones/{number}",
14579
+ "streaming": "no",
14580
+ "pagination": false,
14581
+ "pathParams": [
14582
+ {
14583
+ "name": "number",
14584
+ "sdkName": "number"
14585
+ }
14586
+ ],
14587
+ "query": [
14588
+ {
14589
+ "name": "repository",
14590
+ "type": "string",
14591
+ "required": false,
14592
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14593
+ }
14594
+ ]
14595
+ },
14596
+ {
14597
+ "resource": "ticket.milestones",
14598
+ "method": "retrieve",
14599
+ "summary": "Read milestones",
14600
+ "description": "Read milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14601
+ "http": "GET",
14602
+ "path": "/ticket/v1/milestones/{number}",
14603
+ "streaming": "no",
14604
+ "pagination": false,
14605
+ "pathParams": [
14606
+ {
14607
+ "name": "number",
14608
+ "sdkName": "number"
14609
+ }
14610
+ ],
14611
+ "query": [
14612
+ {
14613
+ "name": "repository",
14614
+ "type": "string",
14615
+ "required": false,
14616
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14617
+ }
14618
+ ]
14619
+ },
14620
+ {
14621
+ "resource": "ticket.milestones",
14622
+ "method": "update",
14623
+ "summary": "Update milestones",
14624
+ "description": "Update milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.",
14625
+ "http": "PATCH",
14626
+ "path": "/ticket/v1/milestones/{number}",
14627
+ "streaming": "no",
14628
+ "pagination": false,
14629
+ "pathParams": [
14630
+ {
14631
+ "name": "number",
14632
+ "sdkName": "number"
14633
+ }
14634
+ ],
14635
+ "query": [
14636
+ {
14637
+ "name": "repository",
14638
+ "type": "string",
14639
+ "required": false,
14640
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14641
+ }
14642
+ ],
14643
+ "body": {
14644
+ "required": true,
14645
+ "fields": [
14646
+ {
14647
+ "name": "title",
14648
+ "type": "string",
14649
+ "required": false,
14650
+ "description": "Short title, at most 256 Unicode characters."
14651
+ },
14652
+ {
14653
+ "name": "description",
14654
+ "type": "string",
14655
+ "required": false,
14656
+ "description": "Milestone description."
14657
+ },
14658
+ {
14659
+ "name": "due_on",
14660
+ "type": "string",
14661
+ "required": false,
14662
+ "description": "Due date, or null if unset."
14663
+ },
14664
+ {
14665
+ "name": "state",
14666
+ "type": "string",
14667
+ "enum": [
14668
+ "open",
14669
+ "closed"
14670
+ ],
14671
+ "required": false,
14672
+ "description": "open means actionable; closed means resolved or declined."
14673
+ }
14674
+ ]
14675
+ }
14676
+ },
14677
+ {
14678
+ "resource": "ticket.repositories",
14679
+ "method": "list",
14680
+ "summary": "List repositories",
14681
+ "description": "List repositories within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
14682
+ "http": "GET",
14683
+ "path": "/ticket/v1/repositories",
14684
+ "streaming": "no",
14685
+ "pagination": false,
14686
+ "pathParams": [],
14687
+ "query": [
14688
+ {
14689
+ "name": "page_size",
14690
+ "type": "integer",
14691
+ "required": false,
14692
+ "description": "Records per page; defaults to 30, maximum 100."
14693
+ },
14694
+ {
14695
+ "name": "page_token",
14696
+ "type": "string",
14697
+ "required": false,
14698
+ "description": "Cursor returned as next_page_token; omit for the first page."
14699
+ }
14700
+ ]
14701
+ },
14702
+ {
14703
+ "resource": "ticket.tickets",
14704
+ "method": "list",
14705
+ "summary": "List tickets",
14706
+ "description": "List tickets within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
14707
+ "http": "GET",
14708
+ "path": "/ticket/v1/tickets",
14709
+ "streaming": "no",
14710
+ "pagination": false,
14711
+ "pathParams": [],
14712
+ "query": [
14713
+ {
14714
+ "name": "repository",
14715
+ "type": "string",
14716
+ "required": false,
14717
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14718
+ },
14719
+ {
14720
+ "name": "page_size",
14721
+ "type": "integer",
14722
+ "required": false,
14723
+ "description": "Records per page; defaults to 30, maximum 100."
14724
+ },
14725
+ {
14726
+ "name": "page_token",
14727
+ "type": "string",
14728
+ "required": false,
14729
+ "description": "Cursor returned as next_page_token; omit for the first page."
14730
+ },
14731
+ {
14732
+ "name": "filter",
14733
+ "type": "string",
14734
+ "required": false,
14735
+ "description": "Search qualifier subset: is/state, reason, label/-label, no, assignee, author, mentions, milestone, type, kind, assignee-kind, in and sort; unknown qualifiers return INVALID_PARAMS. Passed unchanged to the service."
14736
+ }
14737
+ ]
14738
+ },
14739
+ {
14740
+ "resource": "ticket.tickets",
14741
+ "method": "create",
14742
+ "summary": "Create or add tickets",
14743
+ "description": "Create or add tickets within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14744
+ "http": "POST",
14745
+ "path": "/ticket/v1/tickets",
14746
+ "streaming": "no",
14747
+ "pagination": false,
14748
+ "pathParams": [],
14749
+ "query": [
14750
+ {
14751
+ "name": "repository",
14752
+ "type": "string",
14753
+ "required": false,
14754
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14755
+ }
14756
+ ],
14757
+ "body": {
14758
+ "required": true,
14759
+ "fields": [
14760
+ {
14761
+ "name": "title",
14762
+ "type": "string",
14763
+ "required": true,
14764
+ "description": "Short title, at most 256 Unicode characters."
14765
+ },
14766
+ {
14767
+ "name": "body",
14768
+ "type": "string",
14769
+ "required": false,
14770
+ "description": "Markdown text, at most 65536 characters."
14771
+ },
14772
+ {
14773
+ "name": "type",
14774
+ "type": "string",
14775
+ "required": false,
14776
+ "description": "Built-in type name; null clears an existing type."
14777
+ },
14778
+ {
14779
+ "name": "labels",
14780
+ "type": "array",
14781
+ "itemType": "string",
14782
+ "required": false,
14783
+ "description": "Labels attached to this ticket; updates replace the complete list."
14784
+ },
14785
+ {
14786
+ "name": "assignees",
14787
+ "type": "array",
14788
+ "itemType": "string",
14789
+ "required": false,
14790
+ "description": "Complete assignee list, at most ten."
14791
+ },
14792
+ {
14793
+ "name": "milestone",
14794
+ "type": "integer",
14795
+ "required": false,
14796
+ "description": "Repository-local number returned by create or list; distinct from the object's id."
14797
+ },
14798
+ {
14799
+ "name": "parent",
14800
+ "type": "integer",
14801
+ "required": false,
14802
+ "description": "Repository-local number returned by create or list; distinct from the object's id."
14803
+ }
14804
+ ]
14805
+ }
14806
+ },
14807
+ {
14808
+ "resource": "ticket.tickets",
14809
+ "method": "retrieve",
14810
+ "summary": "Read tickets",
14811
+ "description": "Read tickets within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14812
+ "http": "GET",
14813
+ "path": "/ticket/v1/tickets/{number}",
14814
+ "streaming": "no",
14815
+ "pagination": false,
14816
+ "pathParams": [
14817
+ {
14818
+ "name": "number",
14819
+ "sdkName": "number"
14820
+ }
14821
+ ],
14822
+ "query": [
14823
+ {
14824
+ "name": "repository",
14825
+ "type": "string",
14826
+ "required": false,
14827
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14828
+ }
14829
+ ]
14830
+ },
14831
+ {
14832
+ "resource": "ticket.tickets",
14833
+ "method": "update",
14834
+ "summary": "Update tickets",
14835
+ "description": "Update tickets within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14836
+ "http": "PATCH",
14837
+ "path": "/ticket/v1/tickets/{number}",
14838
+ "streaming": "no",
14839
+ "pagination": false,
14840
+ "pathParams": [
14841
+ {
14842
+ "name": "number",
14843
+ "sdkName": "number"
14844
+ }
14845
+ ],
14846
+ "query": [
14847
+ {
14848
+ "name": "repository",
14849
+ "type": "string",
14850
+ "required": false,
14851
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14852
+ }
14853
+ ],
14854
+ "body": {
14855
+ "required": true,
14856
+ "fields": [
14857
+ {
14858
+ "name": "title",
14859
+ "type": "string",
14860
+ "required": false,
14861
+ "description": "Short title, at most 256 Unicode characters."
14862
+ },
14863
+ {
14864
+ "name": "body",
14865
+ "type": "string",
14866
+ "required": false,
14867
+ "description": "Markdown text, at most 65536 characters."
14868
+ },
14869
+ {
14870
+ "name": "type",
14871
+ "type": "string",
14872
+ "required": false,
14873
+ "description": "Built-in type name; null clears an existing type."
14874
+ },
14875
+ {
14876
+ "name": "labels",
14877
+ "type": "array",
14878
+ "itemType": "string",
14879
+ "required": false,
14880
+ "description": "Labels attached to this ticket; updates replace the complete list."
14881
+ },
14882
+ {
14883
+ "name": "assignees",
14884
+ "type": "array",
14885
+ "itemType": "string",
14886
+ "required": false,
14887
+ "description": "Complete assignee list, at most ten."
14888
+ },
14889
+ {
14890
+ "name": "milestone",
14891
+ "type": "integer",
14892
+ "required": false,
14893
+ "description": "Repository-local number returned by create or list; distinct from the object's id."
14894
+ },
14895
+ {
14896
+ "name": "state",
14897
+ "type": "string",
14898
+ "enum": [
14899
+ "open",
14900
+ "closed"
14901
+ ],
14902
+ "required": false,
14903
+ "description": "open means actionable; closed means resolved or declined."
14904
+ },
14905
+ {
14906
+ "name": "state_reason",
14907
+ "type": "string",
14908
+ "enum": [
14909
+ "completed",
14910
+ "not_planned",
14911
+ "duplicate"
14912
+ ],
14913
+ "required": false,
14914
+ "description": "Reason for closing: completed resolves, not_planned declines, duplicate marks a duplicate."
14915
+ },
14916
+ {
14917
+ "name": "duplicate_of",
14918
+ "type": "integer",
14919
+ "required": false,
14920
+ "description": "Repository-local number returned by create or list; distinct from the object's id."
14921
+ }
14922
+ ]
14923
+ }
14924
+ },
14925
+ {
14926
+ "resource": "ticket.tickets.comments",
14927
+ "method": "list",
14928
+ "summary": "List comments",
14929
+ "description": "List comments within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
14930
+ "http": "GET",
14931
+ "path": "/ticket/v1/tickets/{number}/comments",
14932
+ "streaming": "no",
14933
+ "pagination": false,
14934
+ "pathParams": [
14935
+ {
14936
+ "name": "number",
14937
+ "sdkName": "number"
14938
+ }
14939
+ ],
14940
+ "query": [
14941
+ {
14942
+ "name": "repository",
14943
+ "type": "string",
14944
+ "required": false,
14945
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14946
+ },
14947
+ {
14948
+ "name": "page_size",
14949
+ "type": "integer",
14950
+ "required": false,
14951
+ "description": "Records per page; defaults to 30, maximum 100."
14952
+ },
14953
+ {
14954
+ "name": "page_token",
14955
+ "type": "string",
14956
+ "required": false,
14957
+ "description": "Cursor returned as next_page_token; omit for the first page."
14958
+ }
14959
+ ]
14960
+ },
14961
+ {
14962
+ "resource": "ticket.tickets.comments",
14963
+ "method": "create",
14964
+ "summary": "Create or add comments",
14965
+ "description": "Create or add comments within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
14966
+ "http": "POST",
14967
+ "path": "/ticket/v1/tickets/{number}/comments",
14968
+ "streaming": "no",
14969
+ "pagination": false,
14970
+ "pathParams": [
14971
+ {
14972
+ "name": "number",
14973
+ "sdkName": "number"
14974
+ }
14975
+ ],
14976
+ "query": [
14977
+ {
14978
+ "name": "repository",
14979
+ "type": "string",
14980
+ "required": false,
14981
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
14982
+ }
14983
+ ],
14984
+ "body": {
14985
+ "required": true,
14986
+ "fields": [
14987
+ {
14988
+ "name": "body",
14989
+ "type": "string",
14990
+ "required": true,
14991
+ "description": "Markdown text, at most 65536 characters."
14992
+ },
14993
+ {
14994
+ "name": "in_reply_to",
14995
+ "type": "string",
14996
+ "required": false,
14997
+ "description": "Opaque identifier returned by this resource's create or list operation."
14998
+ }
14999
+ ]
15000
+ }
15001
+ },
15002
+ {
15003
+ "resource": "ticket.tickets.dependencies",
15004
+ "method": "retrieveBlockedBy",
15005
+ "summary": "List blocked by",
15006
+ "description": "List blocked by within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
15007
+ "http": "GET",
15008
+ "path": "/ticket/v1/tickets/{number}/dependencies/blocked_by",
15009
+ "streaming": "no",
15010
+ "pagination": false,
15011
+ "pathParams": [
15012
+ {
15013
+ "name": "number",
15014
+ "sdkName": "number"
15015
+ }
15016
+ ],
15017
+ "query": [
15018
+ {
15019
+ "name": "repository",
15020
+ "type": "string",
15021
+ "required": false,
15022
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15023
+ },
15024
+ {
15025
+ "name": "page_size",
15026
+ "type": "integer",
15027
+ "required": false,
15028
+ "description": "Records per page; defaults to 30, maximum 100."
15029
+ },
15030
+ {
15031
+ "name": "page_token",
15032
+ "type": "string",
15033
+ "required": false,
15034
+ "description": "Cursor returned as next_page_token; omit for the first page."
15035
+ }
15036
+ ]
15037
+ },
15038
+ {
15039
+ "resource": "ticket.tickets.dependencies.blockedBy",
15040
+ "method": "create",
15041
+ "summary": "Create or add blocked by",
15042
+ "description": "Create or add blocked by within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15043
+ "http": "POST",
15044
+ "path": "/ticket/v1/tickets/{number}/dependencies/blocked_by",
15045
+ "streaming": "no",
15046
+ "pagination": false,
15047
+ "pathParams": [
15048
+ {
15049
+ "name": "number",
15050
+ "sdkName": "number"
15051
+ }
15052
+ ],
15053
+ "query": [
15054
+ {
15055
+ "name": "repository",
15056
+ "type": "string",
15057
+ "required": false,
15058
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15059
+ }
15060
+ ],
15061
+ "body": {
15062
+ "required": true,
15063
+ "fields": [
15064
+ {
15065
+ "name": "blocked_by",
15066
+ "type": "integer",
15067
+ "required": true,
15068
+ "description": "Repository-local number returned by create or list; distinct from the object's id."
15069
+ }
15070
+ ]
15071
+ }
15072
+ },
15073
+ {
15074
+ "resource": "ticket.tickets.dependencies.blockedBy",
15075
+ "method": "delete",
15076
+ "summary": "Remove blocked by",
15077
+ "description": "Remove blocked by within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15078
+ "http": "DELETE",
15079
+ "path": "/ticket/v1/tickets/{number}/dependencies/blocked_by/{n}",
15080
+ "streaming": "no",
15081
+ "pagination": false,
15082
+ "pathParams": [
15083
+ {
15084
+ "name": "number",
15085
+ "sdkName": "number"
15086
+ },
15087
+ {
15088
+ "name": "n",
15089
+ "sdkName": "n"
15090
+ }
15091
+ ],
15092
+ "query": [
15093
+ {
15094
+ "name": "repository",
15095
+ "type": "string",
15096
+ "required": false,
15097
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15098
+ }
15099
+ ]
15100
+ },
15101
+ {
15102
+ "resource": "ticket.tickets.dependencies",
15103
+ "method": "retrieveBlocking",
15104
+ "summary": "List blocking",
15105
+ "description": "List blocking within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
15106
+ "http": "GET",
15107
+ "path": "/ticket/v1/tickets/{number}/dependencies/blocking",
15108
+ "streaming": "no",
15109
+ "pagination": false,
15110
+ "pathParams": [
15111
+ {
15112
+ "name": "number",
15113
+ "sdkName": "number"
15114
+ }
15115
+ ],
15116
+ "query": [
15117
+ {
15118
+ "name": "repository",
15119
+ "type": "string",
15120
+ "required": false,
15121
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15122
+ },
15123
+ {
15124
+ "name": "page_size",
15125
+ "type": "integer",
15126
+ "required": false,
15127
+ "description": "Records per page; defaults to 30, maximum 100."
15128
+ },
15129
+ {
15130
+ "name": "page_token",
15131
+ "type": "string",
15132
+ "required": false,
15133
+ "description": "Cursor returned as next_page_token; omit for the first page."
15134
+ }
15135
+ ]
15136
+ },
15137
+ {
15138
+ "resource": "ticket.tickets.events",
15139
+ "method": "list",
15140
+ "summary": "List events",
15141
+ "description": "List events within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
15142
+ "http": "GET",
15143
+ "path": "/ticket/v1/tickets/{number}/events",
15144
+ "streaming": "no",
15145
+ "pagination": false,
15146
+ "pathParams": [
15147
+ {
15148
+ "name": "number",
15149
+ "sdkName": "number"
15150
+ }
15151
+ ],
15152
+ "query": [
15153
+ {
15154
+ "name": "repository",
15155
+ "type": "string",
15156
+ "required": false,
15157
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15158
+ },
15159
+ {
15160
+ "name": "page_size",
15161
+ "type": "integer",
15162
+ "required": false,
15163
+ "description": "Records per page; defaults to 30, maximum 100."
15164
+ },
15165
+ {
15166
+ "name": "page_token",
15167
+ "type": "string",
15168
+ "required": false,
15169
+ "description": "Cursor returned as next_page_token; omit for the first page."
15170
+ }
15171
+ ]
15172
+ },
15173
+ {
15174
+ "resource": "ticket.tickets",
15175
+ "method": "deleteLock",
15176
+ "summary": "Remove lock",
15177
+ "description": "Remove lock within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.",
15178
+ "http": "DELETE",
15179
+ "path": "/ticket/v1/tickets/{number}/lock",
15180
+ "streaming": "no",
15181
+ "pagination": false,
15182
+ "pathParams": [
15183
+ {
15184
+ "name": "number",
15185
+ "sdkName": "number"
15186
+ }
15187
+ ],
15188
+ "query": [
15189
+ {
15190
+ "name": "repository",
15191
+ "type": "string",
15192
+ "required": false,
15193
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15194
+ }
15195
+ ]
15196
+ },
15197
+ {
15198
+ "resource": "ticket.tickets",
15199
+ "method": "updateLock",
15200
+ "summary": "Update lock",
15201
+ "description": "Update lock within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.",
15202
+ "http": "PUT",
15203
+ "path": "/ticket/v1/tickets/{number}/lock",
15204
+ "streaming": "no",
15205
+ "pagination": false,
15206
+ "pathParams": [
15207
+ {
15208
+ "name": "number",
15209
+ "sdkName": "number"
15210
+ }
15211
+ ],
15212
+ "query": [
15213
+ {
15214
+ "name": "repository",
15215
+ "type": "string",
15216
+ "required": false,
15217
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15218
+ }
15219
+ ],
15220
+ "body": {
15221
+ "required": false,
15222
+ "fields": [
15223
+ {
15224
+ "name": "lock_reason",
15225
+ "type": "string",
15226
+ "enum": [
15227
+ "off-topic",
15228
+ "too heated",
15229
+ "resolved",
15230
+ "spam"
15231
+ ],
15232
+ "required": false,
15233
+ "description": "Reason for locking: off-topic, too heated, resolved, or spam."
15234
+ }
15235
+ ]
15236
+ }
15237
+ },
15238
+ {
15239
+ "resource": "ticket.tickets.reactions",
15240
+ "method": "list",
15241
+ "summary": "List reactions",
15242
+ "description": "List reactions within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
15243
+ "http": "GET",
15244
+ "path": "/ticket/v1/tickets/{number}/reactions",
15245
+ "streaming": "no",
15246
+ "pagination": false,
15247
+ "pathParams": [
15248
+ {
15249
+ "name": "number",
15250
+ "sdkName": "number"
15251
+ }
15252
+ ],
15253
+ "query": [
15254
+ {
15255
+ "name": "repository",
15256
+ "type": "string",
15257
+ "required": false,
15258
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15259
+ },
15260
+ {
15261
+ "name": "page_size",
15262
+ "type": "integer",
15263
+ "required": false,
15264
+ "description": "Records per page; defaults to 30, maximum 100."
15265
+ },
15266
+ {
15267
+ "name": "page_token",
15268
+ "type": "string",
15269
+ "required": false,
15270
+ "description": "Cursor returned as next_page_token; omit for the first page."
15271
+ }
15272
+ ]
15273
+ },
15274
+ {
15275
+ "resource": "ticket.tickets.reactions",
15276
+ "method": "create",
15277
+ "summary": "Create or add reactions",
15278
+ "description": "Create or add reactions within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15279
+ "http": "POST",
15280
+ "path": "/ticket/v1/tickets/{number}/reactions",
15281
+ "streaming": "no",
15282
+ "pagination": false,
15283
+ "pathParams": [
15284
+ {
15285
+ "name": "number",
15286
+ "sdkName": "number"
15287
+ }
15288
+ ],
15289
+ "query": [
15290
+ {
15291
+ "name": "repository",
15292
+ "type": "string",
15293
+ "required": false,
15294
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15295
+ }
15296
+ ],
15297
+ "body": {
15298
+ "required": true,
15299
+ "fields": [
15300
+ {
15301
+ "name": "content",
15302
+ "type": "string",
15303
+ "enum": [
15304
+ "+1",
15305
+ "-1",
15306
+ "laugh",
15307
+ "confused",
15308
+ "heart",
15309
+ "hooray",
15310
+ "eyes",
15311
+ "rocket"
15312
+ ],
15313
+ "required": true,
15314
+ "description": "Reaction to add or remove: +1 approves, -1 disapproves, laugh, confused, heart, hooray, eyes, or rocket."
15315
+ }
15316
+ ]
15317
+ }
15318
+ },
15319
+ {
15320
+ "resource": "ticket.tickets.reactions",
15321
+ "method": "delete",
15322
+ "summary": "Remove reactions",
15323
+ "description": "Remove reactions within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15324
+ "http": "DELETE",
15325
+ "path": "/ticket/v1/tickets/{number}/reactions/{content}",
15326
+ "streaming": "no",
15327
+ "pagination": false,
15328
+ "pathParams": [
15329
+ {
15330
+ "name": "number",
15331
+ "sdkName": "number"
15332
+ },
15333
+ {
15334
+ "name": "content",
15335
+ "sdkName": "content"
15336
+ }
15337
+ ],
15338
+ "query": [
15339
+ {
15340
+ "name": "repository",
15341
+ "type": "string",
15342
+ "required": false,
15343
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15344
+ }
15345
+ ]
15346
+ },
15347
+ {
15348
+ "resource": "ticket.tickets.relations",
15349
+ "method": "list",
15350
+ "summary": "List relations",
15351
+ "description": "List relations within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
15352
+ "http": "GET",
15353
+ "path": "/ticket/v1/tickets/{number}/relations",
15354
+ "streaming": "no",
15355
+ "pagination": false,
15356
+ "pathParams": [
15357
+ {
15358
+ "name": "number",
15359
+ "sdkName": "number"
15360
+ }
15361
+ ],
15362
+ "query": [
15363
+ {
15364
+ "name": "repository",
15365
+ "type": "string",
15366
+ "required": false,
15367
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15368
+ },
15369
+ {
15370
+ "name": "page_size",
15371
+ "type": "integer",
15372
+ "required": false,
15373
+ "description": "Records per page; defaults to 30, maximum 100."
15374
+ },
15375
+ {
15376
+ "name": "page_token",
15377
+ "type": "string",
15378
+ "required": false,
15379
+ "description": "Cursor returned as next_page_token; omit for the first page."
15380
+ }
15381
+ ]
15382
+ },
15383
+ {
15384
+ "resource": "ticket.tickets.relations",
15385
+ "method": "create",
15386
+ "summary": "Create or add relations",
15387
+ "description": "Create or add relations within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15388
+ "http": "POST",
15389
+ "path": "/ticket/v1/tickets/{number}/relations",
15390
+ "streaming": "no",
15391
+ "pagination": false,
15392
+ "pathParams": [
15393
+ {
15394
+ "name": "number",
15395
+ "sdkName": "number"
15396
+ }
15397
+ ],
15398
+ "query": [
15399
+ {
15400
+ "name": "repository",
15401
+ "type": "string",
15402
+ "required": false,
15403
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15404
+ }
15405
+ ],
15406
+ "body": {
15407
+ "required": true,
15408
+ "fields": [
15409
+ {
15410
+ "name": "relates_to",
15411
+ "type": "integer",
15412
+ "required": true,
15413
+ "description": "Repository-local number returned by create or list; distinct from the object's id."
15414
+ }
15415
+ ]
15416
+ }
15417
+ },
15418
+ {
15419
+ "resource": "ticket.tickets.relations",
15420
+ "method": "delete",
15421
+ "summary": "Remove relations",
15422
+ "description": "Remove relations within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15423
+ "http": "DELETE",
15424
+ "path": "/ticket/v1/tickets/{number}/relations/{n}",
15425
+ "streaming": "no",
15426
+ "pagination": false,
15427
+ "pathParams": [
15428
+ {
15429
+ "name": "number",
15430
+ "sdkName": "number"
15431
+ },
15432
+ {
15433
+ "name": "n",
15434
+ "sdkName": "n"
15435
+ }
15436
+ ],
15437
+ "query": [
15438
+ {
15439
+ "name": "repository",
15440
+ "type": "string",
15441
+ "required": false,
15442
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15443
+ }
15444
+ ]
15445
+ },
15446
+ {
15447
+ "resource": "ticket.tickets.subTickets",
15448
+ "method": "list",
15449
+ "summary": "List sub tickets",
15450
+ "description": "List sub tickets within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Pass next_page_token as page_token to continue with the same filter. Service authorization applies to the verified human subject.",
15451
+ "http": "GET",
15452
+ "path": "/ticket/v1/tickets/{number}/sub_tickets",
15453
+ "streaming": "no",
15454
+ "pagination": false,
15455
+ "pathParams": [
15456
+ {
15457
+ "name": "number",
15458
+ "sdkName": "number"
15459
+ }
15460
+ ],
15461
+ "query": [
15462
+ {
15463
+ "name": "repository",
15464
+ "type": "string",
15465
+ "required": false,
15466
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15467
+ },
15468
+ {
15469
+ "name": "page_size",
15470
+ "type": "integer",
15471
+ "required": false,
15472
+ "description": "Records per page; defaults to 30, maximum 100."
15473
+ },
15474
+ {
15475
+ "name": "page_token",
15476
+ "type": "string",
15477
+ "required": false,
15478
+ "description": "Cursor returned as next_page_token; omit for the first page."
15479
+ }
15480
+ ]
15481
+ },
15482
+ {
15483
+ "resource": "ticket.tickets.subTickets",
15484
+ "method": "create",
15485
+ "summary": "Create or add sub tickets",
15486
+ "description": "Create or add sub tickets within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15487
+ "http": "POST",
15488
+ "path": "/ticket/v1/tickets/{number}/sub_tickets",
15489
+ "streaming": "no",
15490
+ "pagination": false,
15491
+ "pathParams": [
15492
+ {
15493
+ "name": "number",
15494
+ "sdkName": "number"
15495
+ }
15496
+ ],
15497
+ "query": [
15498
+ {
15499
+ "name": "repository",
15500
+ "type": "string",
15501
+ "required": false,
15502
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15503
+ }
15504
+ ],
15505
+ "body": {
15506
+ "required": true,
15507
+ "fields": [
15508
+ {
15509
+ "name": "child",
15510
+ "type": "integer",
15511
+ "required": true,
15512
+ "description": "Repository-local number returned by create or list; distinct from the object's id."
15513
+ },
15514
+ {
15515
+ "name": "replace_parent",
15516
+ "type": "boolean",
15517
+ "required": false,
15518
+ "description": "Allow replacing an existing parent."
15519
+ }
15520
+ ]
15521
+ }
15522
+ },
15523
+ {
15524
+ "resource": "ticket.tickets.subTickets",
15525
+ "method": "delete",
15526
+ "summary": "Remove sub tickets",
15527
+ "description": "Remove sub tickets within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15528
+ "http": "DELETE",
15529
+ "path": "/ticket/v1/tickets/{number}/sub_tickets/{child}",
15530
+ "streaming": "no",
15531
+ "pagination": false,
15532
+ "pathParams": [
15533
+ {
15534
+ "name": "number",
15535
+ "sdkName": "number"
15536
+ },
15537
+ {
15538
+ "name": "child",
15539
+ "sdkName": "child"
15540
+ }
15541
+ ],
15542
+ "query": [
15543
+ {
15544
+ "name": "repository",
15545
+ "type": "string",
15546
+ "required": false,
15547
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15548
+ }
15549
+ ]
15550
+ },
15551
+ {
15552
+ "resource": "ticket.types",
15553
+ "method": "list",
15554
+ "summary": "Read types",
15555
+ "description": "Read types within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.",
15556
+ "http": "GET",
15557
+ "path": "/ticket/v1/types",
15558
+ "streaming": "no",
15559
+ "pagination": false,
15560
+ "pathParams": [],
15561
+ "query": [
15562
+ {
15563
+ "name": "repository",
15564
+ "type": "string",
15565
+ "required": false,
15566
+ "description": "Repository id from GET /ticket/v1/repositories; omit for the default tickets container."
15567
+ }
15568
+ ]
15569
+ },
13848
15570
  {
13849
15571
  "resource": "vault.authorizations",
13850
15572
  "method": "create",