@graph8/sdk 0.251.0 → 0.262.0
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.
- package/README.md +9 -2
- package/dist/cli.js +216 -0
- package/dist/index.d.mts +105 -7
- package/dist/index.d.ts +105 -7
- package/dist/index.js +44 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -3
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +103 -7
- package/dist/react.d.ts +103 -7
- package/dist/react.js +62 -11
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +53 -12
- package/dist/react.mjs.map +1 -1
- package/dist/types/README.md +7 -0
- package/dist/types/agency.d.ts +20 -0
- package/dist/types/agentSetup.d.ts +57 -0
- package/dist/types/api.d.ts +127 -0
- package/dist/types/appClient.d.ts +99 -0
- package/dist/types/appPlatform.d.ts +269 -0
- package/dist/types/appTokens.d.ts +125 -0
- package/dist/types/apps.d.ts +130 -0
- package/dist/types/audiences.d.ts +88 -0
- package/dist/types/calendar.d.ts +55 -0
- package/dist/types/campaigns.d.ts +61 -0
- package/dist/types/chat.d.ts +35 -0
- package/dist/types/cli.d.ts +14 -0
- package/dist/types/companies.d.ts +123 -0
- package/dist/types/contacts.d.ts +200 -0
- package/dist/types/copilot.d.ts +31 -0
- package/dist/types/core.d.ts +1052 -0
- package/dist/types/deals.d.ts +215 -0
- package/dist/types/enrich.d.ts +51 -0
- package/dist/types/fields.d.ts +84 -0
- package/dist/types/forms.d.ts +16 -0
- package/dist/types/http.d.ts +141 -0
- package/dist/types/inbox.d.ts +123 -0
- package/dist/types/index.d.ts +63 -0
- package/dist/types/intent.d.ts +196 -0
- package/dist/types/lists.d.ts +44 -0
- package/dist/types/mailboxes.d.ts +240 -0
- package/dist/types/marketplace.d.ts +62 -0
- package/dist/types/meetings.d.ts +70 -0
- package/dist/types/newsletter.d.ts +212 -0
- package/dist/types/notes.d.ts +57 -0
- package/dist/types/objects.d.ts +281 -0
- package/dist/types/pipelines.d.ts +135 -0
- package/dist/types/quotes.d.ts +143 -0
- package/dist/types/react.d.ts +978 -0
- package/dist/types/search.d.ts +99 -0
- package/dist/types/sequences.d.ts +255 -0
- package/dist/types/signals.d.ts +28 -0
- package/dist/types/skills.d.ts +176 -0
- package/dist/types/snippet.d.ts +24 -0
- package/dist/types/studio.d.ts +161 -0
- package/dist/types/tasks.d.ts +101 -0
- package/dist/types/types.d.ts +45 -0
- package/dist/types/utils.d.ts +21 -0
- package/dist/types/version.d.ts +10 -0
- package/dist/types/visitors.d.ts +29 -0
- package/dist/types/voice.d.ts +304 -0
- package/dist/types/webhooks.d.ts +71 -0
- package/dist/types/workflows.d.ts +229 -0
- package/docs/agents.md +748 -0
- package/docs/api/README.md +165 -0
- package/docs/api/accounts.d.ts +396 -0
- package/docs/api/accounts.md +644 -0
- package/docs/api/adCampaigns.d.ts +707 -0
- package/docs/api/adCampaigns.md +1091 -0
- package/docs/api/adCreatives.d.ts +996 -0
- package/docs/api/adCreatives.md +1708 -0
- package/docs/api/agency.d.ts +556 -0
- package/docs/api/agency.md +845 -0
- package/docs/api/agent.d.ts +330 -0
- package/docs/api/agent.md +514 -0
- package/docs/api/agents.d.ts +1622 -0
- package/docs/api/agents.md +2860 -0
- package/docs/api/aiInbox.d.ts +1984 -0
- package/docs/api/aiInbox.md +3490 -0
- package/docs/api/analytics.d.ts +1273 -0
- package/docs/api/analytics.md +2095 -0
- package/docs/api/apiKeys.d.ts +252 -0
- package/docs/api/apiKeys.md +318 -0
- package/docs/api/appDeployments.d.ts +236 -0
- package/docs/api/appDeployments.md +471 -0
- package/docs/api/appDomains.d.ts +171 -0
- package/docs/api/appDomains.md +281 -0
- package/docs/api/appLogs.d.ts +120 -0
- package/docs/api/appLogs.md +159 -0
- package/docs/api/appObjects.d.ts +415 -0
- package/docs/api/appObjects.md +568 -0
- package/docs/api/appPages.d.ts +557 -0
- package/docs/api/appPages.md +796 -0
- package/docs/api/appPlatformTokens.d.ts +123 -0
- package/docs/api/appPlatformTokens.md +172 -0
- package/docs/api/appointments.d.ts +2361 -0
- package/docs/api/appointments.md +3917 -0
- package/docs/api/apps.d.ts +822 -0
- package/docs/api/apps.md +1342 -0
- package/docs/api/assertUpsert.d.ts +286 -0
- package/docs/api/assertUpsert.md +370 -0
- package/docs/api/audienceSyncs.d.ts +259 -0
- package/docs/api/audienceSyncs.md +395 -0
- package/docs/api/brandKit.d.ts +686 -0
- package/docs/api/brandKit.md +1133 -0
- package/docs/api/bugReports.d.ts +181 -0
- package/docs/api/bugReports.md +268 -0
- package/docs/api/by-path.md +3260 -0
- package/docs/api/calendarInvites.d.ts +117 -0
- package/docs/api/calendarInvites.md +148 -0
- package/docs/api/campaignWorkflows.d.ts +152 -0
- package/docs/api/campaignWorkflows.md +200 -0
- package/docs/api/campaigns.d.ts +721 -0
- package/docs/api/campaigns.md +1236 -0
- package/docs/api/channels.d.ts +171 -0
- package/docs/api/channels.md +235 -0
- package/docs/api/cliCampaigns.d.ts +205 -0
- package/docs/api/cliCampaigns.md +256 -0
- package/docs/api/cliPipelines.d.ts +324 -0
- package/docs/api/cliPipelines.md +562 -0
- package/docs/api/clickHouse.d.ts +115 -0
- package/docs/api/clickHouse.md +138 -0
- package/docs/api/companies.d.ts +1636 -0
- package/docs/api/companies.md +2211 -0
- package/docs/api/companyIntelligence.d.ts +299 -0
- package/docs/api/companyIntelligence.md +488 -0
- package/docs/api/contacts.d.ts +2173 -0
- package/docs/api/contacts.md +3143 -0
- package/docs/api/content.d.ts +968 -0
- package/docs/api/content.md +1667 -0
- package/docs/api/contentGridSkills.d.ts +177 -0
- package/docs/api/contentGridSkills.md +271 -0
- package/docs/api/copilot.d.ts +1017 -0
- package/docs/api/copilot.md +1765 -0
- package/docs/api/crmSyncs.d.ts +215 -0
- package/docs/api/crmSyncs.md +301 -0
- package/docs/api/customerSuccess.d.ts +491 -0
- package/docs/api/customerSuccess.md +776 -0
- package/docs/api/deals.d.ts +1697 -0
- package/docs/api/deals.md +2436 -0
- package/docs/api/deliverability.d.ts +418 -0
- package/docs/api/deliverability.md +677 -0
- package/docs/api/desk.d.ts +1765 -0
- package/docs/api/desk.md +3007 -0
- package/docs/api/dialer.d.ts +1185 -0
- package/docs/api/dialer.md +2166 -0
- package/docs/api/dialerAnalytics.d.ts +187 -0
- package/docs/api/dialerAnalytics.md +257 -0
- package/docs/api/documents.d.ts +895 -0
- package/docs/api/documents.md +1440 -0
- package/docs/api/duplicates.d.ts +195 -0
- package/docs/api/duplicates.md +315 -0
- package/docs/api/eSign.d.ts +38 -0
- package/docs/api/eSign.md +54 -0
- package/docs/api/eSignature.d.ts +242 -0
- package/docs/api/eSignature.md +341 -0
- package/docs/api/enrichment.d.ts +3207 -0
- package/docs/api/enrichment.md +5225 -0
- package/docs/api/events.d.ts +115 -0
- package/docs/api/events.md +105 -0
- package/docs/api/fields.d.ts +482 -0
- package/docs/api/fields.md +566 -0
- package/docs/api/forms.d.ts +1012 -0
- package/docs/api/forms.md +1542 -0
- package/docs/api/gtmCampaigns.d.ts +662 -0
- package/docs/api/gtmCampaigns.md +1044 -0
- package/docs/api/gtmContext.d.ts +1187 -0
- package/docs/api/gtmContext.md +2112 -0
- package/docs/api/gtmDeliverability.d.ts +60 -0
- package/docs/api/gtmDeliverability.md +63 -0
- package/docs/api/gtmKnowledgeBase.d.ts +76 -0
- package/docs/api/gtmKnowledgeBase.md +91 -0
- package/docs/api/gtmLaunchHelpers.d.ts +123 -0
- package/docs/api/gtmLaunchHelpers.md +148 -0
- package/docs/api/gtmLibrary.d.ts +448 -0
- package/docs/api/gtmLibrary.md +780 -0
- package/docs/api/health.d.ts +39 -0
- package/docs/api/health.md +58 -0
- package/docs/api/imageLibrary.d.ts +341 -0
- package/docs/api/imageLibrary.md +569 -0
- package/docs/api/imports.d.ts +157 -0
- package/docs/api/imports.md +174 -0
- package/docs/api/inbox.d.ts +709 -0
- package/docs/api/inbox.md +1067 -0
- package/docs/api/install.d.ts +213 -0
- package/docs/api/install.md +317 -0
- package/docs/api/installedApps.d.ts +131 -0
- package/docs/api/installedApps.md +241 -0
- package/docs/api/integrationStatus.d.ts +142 -0
- package/docs/api/integrationStatus.md +205 -0
- package/docs/api/integrations.d.ts +2327 -0
- package/docs/api/integrations.md +3791 -0
- package/docs/api/intent.d.ts +482 -0
- package/docs/api/intent.md +858 -0
- package/docs/api/knowledge.d.ts +501 -0
- package/docs/api/knowledge.md +843 -0
- package/docs/api/knowledgeBase.d.ts +84 -0
- package/docs/api/knowledgeBase.md +96 -0
- package/docs/api/landingPages.d.ts +1411 -0
- package/docs/api/landingPages.md +2488 -0
- package/docs/api/leads.d.ts +133 -0
- package/docs/api/leads.md +180 -0
- package/docs/api/library.d.ts +217 -0
- package/docs/api/library.md +338 -0
- package/docs/api/linkedIn.d.ts +227 -0
- package/docs/api/linkedIn.md +289 -0
- package/docs/api/linkedInOutreach.d.ts +727 -0
- package/docs/api/linkedInOutreach.md +990 -0
- package/docs/api/lists.d.ts +1106 -0
- package/docs/api/lists.md +1609 -0
- package/docs/api/logs.d.ts +71 -0
- package/docs/api/logs.md +70 -0
- package/docs/api/mailboxes.d.ts +1050 -0
- package/docs/api/mailboxes.md +1690 -0
- package/docs/api/marketingIntelligence.d.ts +256 -0
- package/docs/api/marketingIntelligence.md +454 -0
- package/docs/api/marketplace.d.ts +3173 -0
- package/docs/api/marketplace.md +5953 -0
- package/docs/api/mcp.d.ts +69 -0
- package/docs/api/mcp.md +69 -0
- package/docs/api/me.d.ts +54 -0
- package/docs/api/me.md +56 -0
- package/docs/api/meetings.d.ts +539 -0
- package/docs/api/meetings.md +747 -0
- package/docs/api/newsletter.d.ts +1613 -0
- package/docs/api/newsletter.md +2746 -0
- package/docs/api/notes.d.ts +517 -0
- package/docs/api/notes.md +888 -0
- package/docs/api/notifications.d.ts +94 -0
- package/docs/api/notifications.md +105 -0
- package/docs/api/objects.d.ts +621 -0
- package/docs/api/objects.md +1098 -0
- package/docs/api/openSearch.d.ts +234 -0
- package/docs/api/openSearch.md +297 -0
- package/docs/api/ops.d.ts +299 -0
- package/docs/api/ops.md +339 -0
- package/docs/api/orgGovernance.d.ts +393 -0
- package/docs/api/orgGovernance.md +623 -0
- package/docs/api/orgVideos.d.ts +184 -0
- package/docs/api/orgVideos.md +252 -0
- package/docs/api/organizationSettings.d.ts +626 -0
- package/docs/api/organizationSettings.md +911 -0
- package/docs/api/phoneNumbers.d.ts +484 -0
- package/docs/api/phoneNumbers.md +777 -0
- package/docs/api/profile.d.ts +329 -0
- package/docs/api/profile.md +540 -0
- package/docs/api/programmaticPages.d.ts +400 -0
- package/docs/api/programmaticPages.md +626 -0
- package/docs/api/providerDomains.d.ts +866 -0
- package/docs/api/providerDomains.md +1446 -0
- package/docs/api/providerUsage.d.ts +129 -0
- package/docs/api/providerUsage.md +186 -0
- package/docs/api/public.d.ts +69 -0
- package/docs/api/public.md +78 -0
- package/docs/api/publicCopilot.d.ts +67 -0
- package/docs/api/publicCopilot.md +80 -0
- package/docs/api/publicSignals.d.ts +66 -0
- package/docs/api/publicSignals.md +71 -0
- package/docs/api/publicVisitors.d.ts +97 -0
- package/docs/api/publicVisitors.md +118 -0
- package/docs/api/quotes.d.ts +1564 -0
- package/docs/api/quotes.md +2553 -0
- package/docs/api/radar.d.ts +808 -0
- package/docs/api/radar.md +1431 -0
- package/docs/api/radarReports.d.ts +208 -0
- package/docs/api/radarReports.md +306 -0
- package/docs/api/recordRoles.d.ts +143 -0
- package/docs/api/recordRoles.md +175 -0
- package/docs/api/repos.d.ts +146 -0
- package/docs/api/repos.md +211 -0
- package/docs/api/research.d.ts +295 -0
- package/docs/api/research.md +534 -0
- package/docs/api/revenue.d.ts +402 -0
- package/docs/api/revenue.md +608 -0
- package/docs/api/revenueAnalytics.d.ts +147 -0
- package/docs/api/revenueAnalytics.md +212 -0
- package/docs/api/revenueLifecycle.d.ts +207 -0
- package/docs/api/revenueLifecycle.md +274 -0
- package/docs/api/revenueRecords.d.ts +372 -0
- package/docs/api/revenueRecords.md +563 -0
- package/docs/api/roles.d.ts +431 -0
- package/docs/api/roles.md +812 -0
- package/docs/api/salesCoach.d.ts +877 -0
- package/docs/api/salesCoach.md +1540 -0
- package/docs/api/sandbox.d.ts +210 -0
- package/docs/api/sandbox.md +380 -0
- package/docs/api/scans.d.ts +104 -0
- package/docs/api/scans.md +136 -0
- package/docs/api/scheduleBuy.d.ts +293 -0
- package/docs/api/scheduleBuy.md +431 -0
- package/docs/api/scraping.d.ts +266 -0
- package/docs/api/scraping.md +383 -0
- package/docs/api/sdrAnalytics.d.ts +138 -0
- package/docs/api/sdrAnalytics.md +246 -0
- package/docs/api/search.d.ts +598 -0
- package/docs/api/search.md +866 -0
- package/docs/api/seo.d.ts +447 -0
- package/docs/api/seo.md +660 -0
- package/docs/api/sequenceLifecycle.d.ts +439 -0
- package/docs/api/sequenceLifecycle.md +513 -0
- package/docs/api/sequences.d.ts +1936 -0
- package/docs/api/sequences.md +3232 -0
- package/docs/api/settings.d.ts +448 -0
- package/docs/api/settings.md +731 -0
- package/docs/api/signals.d.ts +1441 -0
- package/docs/api/signals.md +2526 -0
- package/docs/api/signatures.d.ts +719 -0
- package/docs/api/signatures.md +1247 -0
- package/docs/api/skills.d.ts +230 -0
- package/docs/api/skills.md +466 -0
- package/docs/api/snippet.d.ts +85 -0
- package/docs/api/snippet.md +106 -0
- package/docs/api/socialPublishing.d.ts +824 -0
- package/docs/api/socialPublishing.md +1245 -0
- package/docs/api/studioDocuments.d.ts +244 -0
- package/docs/api/studioDocuments.md +348 -0
- package/docs/api/support.d.ts +90 -0
- package/docs/api/support.md +76 -0
- package/docs/api/suppressions.d.ts +241 -0
- package/docs/api/suppressions.md +343 -0
- package/docs/api/surveys.d.ts +847 -0
- package/docs/api/surveys.md +1223 -0
- package/docs/api/tasks.d.ts +813 -0
- package/docs/api/tasks.md +1344 -0
- package/docs/api/teamMembers.d.ts +668 -0
- package/docs/api/teamMembers.md +1040 -0
- package/docs/api/teams.d.ts +784 -0
- package/docs/api/teams.md +1395 -0
- package/docs/api/usage.d.ts +277 -0
- package/docs/api/usage.md +389 -0
- package/docs/api/visitors.d.ts +690 -0
- package/docs/api/visitors.md +1075 -0
- package/docs/api/voice.d.ts +4661 -0
- package/docs/api/voice.md +7905 -0
- package/docs/api/webAnalytics.d.ts +964 -0
- package/docs/api/webAnalytics.md +1452 -0
- package/docs/api/webChat.d.ts +1704 -0
- package/docs/api/webChat.md +2048 -0
- package/docs/api/webhooks.d.ts +251 -0
- package/docs/api/webhooks.md +386 -0
- package/docs/api/websiteEditor.d.ts +324 -0
- package/docs/api/websiteEditor.md +517 -0
- package/docs/api/work.d.ts +2298 -0
- package/docs/api/work.md +3096 -0
- package/docs/api/workbench.d.ts +2962 -0
- package/docs/api/workbench.md +4884 -0
- package/docs/api/workflows.d.ts +1218 -0
- package/docs/api/workflows.md +2302 -0
- package/docs/sdk-clients.md +4339 -0
- package/package.json +10 -3
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Types for `g8.api.apiKeys` (API Keys): 6 operations.
|
|
5
|
+
*
|
|
6
|
+
* For reading. In code, import from the package instead:
|
|
7
|
+
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
8
|
+
* type In = ApiInput<"create_api_key_api_keys_post">;
|
|
9
|
+
*
|
|
10
|
+
* Reference with examples: apiKeys.md
|
|
11
|
+
*/
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
|
|
14
|
+
/** `g8.api.apiKeys.<member>` -> the operationId it calls. */
|
|
15
|
+
export interface ApiKeysMembers {
|
|
16
|
+
createApiKey: "create_api_key_api_keys_post";
|
|
17
|
+
deleteApiKey: "delete_api_key_api_keys__api_key_id__delete";
|
|
18
|
+
listApiKeys: "list_api_keys_api_keys_get";
|
|
19
|
+
listScopeCatalog: "list_scope_catalog_api_keys_scopes_get";
|
|
20
|
+
rotateApiKey: "rotate_api_key_api_keys__api_key_id__rotate_post";
|
|
21
|
+
updateIpAllowlist: "update_ip_allowlist_api_keys__api_key_id__ip_allowlist_put";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Input and output of every `g8.api.apiKeys` operation, keyed by operationId. */
|
|
25
|
+
export interface ApiKeysOperations {
|
|
26
|
+
/**
|
|
27
|
+
* POST /api-keys
|
|
28
|
+
* Create Api Key
|
|
29
|
+
* tier: write · scope: account:write
|
|
30
|
+
*/
|
|
31
|
+
create_api_key_api_keys_post: {
|
|
32
|
+
input: {
|
|
33
|
+
headers?: {
|
|
34
|
+
"X-Target-Org-Id"?: string | null;
|
|
35
|
+
};
|
|
36
|
+
body: ApiKeyCreateRequest;
|
|
37
|
+
};
|
|
38
|
+
output: ApiResponse_ApiKeyCreateResponse_;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* DELETE /api-keys/{api_key_id}
|
|
42
|
+
* Delete Api Key
|
|
43
|
+
* tier: destructive · scope: account:write
|
|
44
|
+
*/
|
|
45
|
+
delete_api_key_api_keys__api_key_id__delete: {
|
|
46
|
+
input: {
|
|
47
|
+
path: {
|
|
48
|
+
api_key_id: string;
|
|
49
|
+
};
|
|
50
|
+
headers?: {
|
|
51
|
+
"X-Target-Org-Id"?: string | null;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
output: void;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* GET /api-keys
|
|
58
|
+
* List Api Keys
|
|
59
|
+
* tier: read · scope: account:read
|
|
60
|
+
*/
|
|
61
|
+
list_api_keys_api_keys_get: {
|
|
62
|
+
input: {
|
|
63
|
+
headers?: {
|
|
64
|
+
"X-Target-Org-Id"?: string | null;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
output: ApiResponse_ApiKeyListResponse_;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* GET /api-keys/scopes
|
|
71
|
+
* List Scope Catalog
|
|
72
|
+
* tier: read · scope: account:read
|
|
73
|
+
*/
|
|
74
|
+
list_scope_catalog_api_keys_scopes_get: {
|
|
75
|
+
input: {
|
|
76
|
+
headers?: {
|
|
77
|
+
"X-Target-Org-Id"?: string | null;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
output: ApiResponse_ScopeCatalogResponse_;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* POST /api-keys/{api_key_id}/rotate
|
|
84
|
+
* Rotate Api Key
|
|
85
|
+
* tier: write · scope: account:write
|
|
86
|
+
*/
|
|
87
|
+
rotate_api_key_api_keys__api_key_id__rotate_post: {
|
|
88
|
+
input: {
|
|
89
|
+
path: {
|
|
90
|
+
api_key_id: string;
|
|
91
|
+
};
|
|
92
|
+
headers?: {
|
|
93
|
+
"X-Target-Org-Id"?: string | null;
|
|
94
|
+
};
|
|
95
|
+
body: ApiKeyRotateRequest;
|
|
96
|
+
};
|
|
97
|
+
output: ApiResponse_ApiKeyCreateResponse_;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* PUT /api-keys/{api_key_id}/ip-allowlist
|
|
101
|
+
* Update Ip Allowlist
|
|
102
|
+
* tier: write · scope: account:write
|
|
103
|
+
*/
|
|
104
|
+
update_ip_allowlist_api_keys__api_key_id__ip_allowlist_put: {
|
|
105
|
+
input: {
|
|
106
|
+
path: {
|
|
107
|
+
api_key_id: string;
|
|
108
|
+
};
|
|
109
|
+
headers?: {
|
|
110
|
+
"X-Target-Org-Id"?: string | null;
|
|
111
|
+
};
|
|
112
|
+
body: ApiKeyIpAllowlistRequest;
|
|
113
|
+
};
|
|
114
|
+
output: ApiResponse_ApiKeyResponse_;
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// 14 schemas referenced above (the same as G8Contract.<Name>).
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Request to mint a new organization API key.
|
|
122
|
+
*
|
|
123
|
+
* ``extra="forbid"`` so a caller sending ``org_id``, ``is_agency`` or
|
|
124
|
+
* ``is_ops`` gets an explicit 422 instead of the field being silently
|
|
125
|
+
* dropped — it is a stronger, more debuggable signal that those fields do
|
|
126
|
+
* not exist on this door.
|
|
127
|
+
*/
|
|
128
|
+
export interface ApiKeyCreateRequest {
|
|
129
|
+
/** Days until key expires (optional) */
|
|
130
|
+
expires_in_days?: number | null;
|
|
131
|
+
/** Optional list of IPv4/IPv6 CIDR strings (e.g. ['10.0.0.0/8', '2001:db8::/32']). Bare IPs are accepted as /32 (IPv4) or /128 (IPv6). When non-empty, only requests from a matching IP are accepted — all others receive 403. Empty list (the default) means unrestricted: the key works from any IP address. Maximum 50 entries. */
|
|
132
|
+
ip_allowlist?: Array<string>;
|
|
133
|
+
/** Key mode. A 'test' key is returned with a g8_test_ prefix; a 'live' key carries g8_live_; a 'sandbox' key carries g8_sbx_ and only authenticates against the graph8 developer sandbox. A key minted by a 'test'-mode credential is always forced to 'test' regardless of this field — a test key may not mint itself a live successor. */
|
|
134
|
+
mode?: "live" | "test" | "sandbox";
|
|
135
|
+
/** Human-readable name for the key */
|
|
136
|
+
name: string;
|
|
137
|
+
/** Restrict the new key to specific resource:action scopes (e.g. ['contacts:read', 'deals:*']). '*' grants everything; 'resource:*' grants every action on a resource. Omitted or empty grants the full current scope vocabulary (today's status quo for an unscoped key), stored explicitly so the key stays narrowable and auditable rather than permanently unrestricted. */
|
|
138
|
+
scopes?: Array<string> | null;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Response after minting a key.
|
|
143
|
+
*
|
|
144
|
+
* ``api_key_token`` is returned exactly once, here, at creation. No other
|
|
145
|
+
* endpoint on this router — or the app's — ever returns it again.
|
|
146
|
+
*/
|
|
147
|
+
export interface ApiKeyCreateResponse {
|
|
148
|
+
api_key_id: string;
|
|
149
|
+
api_key_token: string;
|
|
150
|
+
mode?: string;
|
|
151
|
+
name: string;
|
|
152
|
+
scopes?: Array<string>;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/** Request body to replace an existing key's IP allowlist in-place. */
|
|
156
|
+
export interface ApiKeyIpAllowlistRequest {
|
|
157
|
+
/** Replacement list of CIDR strings. Pass [] to remove all restrictions. Maximum 50 entries. */
|
|
158
|
+
ip_allowlist: Array<string>;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface ApiKeyListResponse {
|
|
162
|
+
keys: Array<ApiKeyResponse>;
|
|
163
|
+
total: number;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** One API key's metadata (never the secret). */
|
|
167
|
+
export interface ApiKeyResponse {
|
|
168
|
+
api_key_id: string;
|
|
169
|
+
created_at?: number | null;
|
|
170
|
+
created_by?: string | null;
|
|
171
|
+
expires_at?: number | null;
|
|
172
|
+
/** CIDRs this key is restricted to. Empty = unrestricted. */
|
|
173
|
+
ip_allowlist?: Array<string>;
|
|
174
|
+
/** Whether this key is agency-scoped. Informational — this door cannot mint one. */
|
|
175
|
+
is_agency?: boolean;
|
|
176
|
+
/** True for a key minted before scopes existed. An empty scope list means unrestricted, not 'no access'. */
|
|
177
|
+
is_legacy_unrestricted?: boolean;
|
|
178
|
+
last_used_at?: number | null;
|
|
179
|
+
mode?: string;
|
|
180
|
+
name: string;
|
|
181
|
+
scopes?: Array<string>;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Request to rotate a key. Mode, scopes and agency status are preserved
|
|
186
|
+
* from the key being rotated — none are settable here.
|
|
187
|
+
*
|
|
188
|
+
* ``ip_allowlist`` is settable on rotation: a rotation is the natural moment
|
|
189
|
+
* to update network restrictions alongside the new credential.
|
|
190
|
+
* When omitted the old key's allowlist is preserved.
|
|
191
|
+
*/
|
|
192
|
+
export interface ApiKeyRotateRequest {
|
|
193
|
+
expires_in_days?: number | null;
|
|
194
|
+
/** Update the IP allowlist on rotation. Omit to preserve the existing allowlist. Pass [] to remove all restrictions. */
|
|
195
|
+
ip_allowlist?: Array<string> | null;
|
|
196
|
+
name?: string | null;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export interface ApiResponse_ApiKeyCreateResponse_ {
|
|
200
|
+
data: ApiKeyCreateResponse;
|
|
201
|
+
pagination?: PaginationMeta | null;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export interface ApiResponse_ApiKeyListResponse_ {
|
|
205
|
+
data: ApiKeyListResponse;
|
|
206
|
+
pagination?: PaginationMeta | null;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export interface ApiResponse_ApiKeyResponse_ {
|
|
210
|
+
data: ApiKeyResponse;
|
|
211
|
+
pagination?: PaginationMeta | null;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export interface ApiResponse_ScopeCatalogResponse_ {
|
|
215
|
+
data: ScopeCatalogResponse;
|
|
216
|
+
pagination?: PaginationMeta | null;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export interface PaginationMeta {
|
|
220
|
+
/** Whether there are more pages */
|
|
221
|
+
has_next: boolean;
|
|
222
|
+
/** Items per page */
|
|
223
|
+
limit: number;
|
|
224
|
+
/** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
|
|
225
|
+
next_cursor?: string | null;
|
|
226
|
+
/** Current page number (1-indexed) */
|
|
227
|
+
page: number;
|
|
228
|
+
/** Total number of items */
|
|
229
|
+
total: number;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export interface ScopeCatalogEntry {
|
|
233
|
+
action: string;
|
|
234
|
+
default: boolean;
|
|
235
|
+
scope: string;
|
|
236
|
+
strict: boolean;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export interface ScopeCatalogResource {
|
|
240
|
+
resource: string;
|
|
241
|
+
scopes: Array<ScopeCatalogEntry>;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export interface ScopeCatalogResponse {
|
|
245
|
+
default_scopes: Array<string>;
|
|
246
|
+
/** The full-access preset: every grantable scope except the explicit-only strict ones. `default_scopes` is read-only, so this is what a creator picks to opt in to write/run/launch/delete. */
|
|
247
|
+
full_access_scopes?: Array<string>;
|
|
248
|
+
/** The read-only preset: every ':read' scope in the grantable vocabulary. Minting a key with exactly these produces a credential that can look but never write, run, launch or delete — the 'read-only key' standard option (issue #21188). */
|
|
249
|
+
read_only_scopes?: Array<string>;
|
|
250
|
+
resources: Array<ScopeCatalogResource>;
|
|
251
|
+
total: number;
|
|
252
|
+
}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
<!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
|
|
2
|
+
|
|
3
|
+
# `g8.api.apiKeys`: API Keys
|
|
4
|
+
|
|
5
|
+
6 operations (2 read, 3 write, 1 destructive).
|
|
6
|
+
|
|
7
|
+
No hand-written client covers this area. Call it through `g8.api.apiKeys.*` as shown below, or by operationId with `g8.api.call(operationId, input)`.
|
|
8
|
+
|
|
9
|
+
Every example below assumes this setup (server-side, API key):
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { g8 } from "@graph8/sdk";
|
|
13
|
+
|
|
14
|
+
g8.init({ apiKey: process.env.G8_API_KEY! });
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
|
|
18
|
+
|
|
19
|
+
Exact TypeScript types for every operation on this page, and every schema they use: [apiKeys.d.ts](apiKeys.d.ts).
|
|
20
|
+
|
|
21
|
+
## Operations
|
|
22
|
+
|
|
23
|
+
| Call | HTTP | Tier | Scope | Summary |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [`createApiKey`](#op-createapikey) | `POST /api/v1/api-keys` | write | `account:write` | Create Api Key |
|
|
26
|
+
| [`deleteApiKey`](#op-deleteapikey) | `DELETE /api/v1/api-keys/{api_key_id}` | destructive | `account:write` | Delete Api Key |
|
|
27
|
+
| [`listApiKeys`](#op-listapikeys) | `GET /api/v1/api-keys` | read | `account:read` | List Api Keys |
|
|
28
|
+
| [`listScopeCatalog`](#op-listscopecatalog) | `GET /api/v1/api-keys/scopes` | read | `account:read` | List Scope Catalog |
|
|
29
|
+
| [`rotateApiKey`](#op-rotateapikey) | `POST /api/v1/api-keys/{api_key_id}/rotate` | write | `account:write` | Rotate Api Key |
|
|
30
|
+
| [`updateIpAllowlist`](#op-updateipallowlist) | `PUT /api/v1/api-keys/{api_key_id}/ip-allowlist` | write | `account:write` | Update Ip Allowlist |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
<a id="op-createapikey"></a>
|
|
35
|
+
|
|
36
|
+
### `g8.api.apiKeys.createApiKey(input)`
|
|
37
|
+
|
|
38
|
+
**Create Api Key**
|
|
39
|
+
|
|
40
|
+
- HTTP: `POST /api/v1/api-keys`
|
|
41
|
+
- operationId: `create_api_key_api_keys_post` (also callable as `g8.api.call("create_api_key_api_keys_post", input)`)
|
|
42
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
43
|
+
- API-key scope: `account:write`
|
|
44
|
+
|
|
45
|
+
Mint a new API key for the caller's own org. The token is returned exactly once.
|
|
46
|
+
|
|
47
|
+
**Input**
|
|
48
|
+
|
|
49
|
+
| Field | Type | Required | Description |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| `body` | `ApiKeyCreateRequest` | yes | Request body; fields below. |
|
|
52
|
+
|
|
53
|
+
Body fields (`ApiKeyCreateRequest`):
|
|
54
|
+
|
|
55
|
+
| Field | Type | Required | Description |
|
|
56
|
+
|---|---|---|---|
|
|
57
|
+
| `body.name` | `string` | yes | Human-readable name for the key min length 1, max length 100 |
|
|
58
|
+
| `body.expires_in_days` | `integer \| null` | no | Days until key expires (optional) min 1, max 365 |
|
|
59
|
+
| `body.ip_allowlist` | `Array<string>` | no | Optional list of IPv4/IPv6 CIDR strings (e.g. ['10.0.0.0/8', '2001:db8::/32']). Bare IPs are accepted as /32 (IPv4) or /128 (IPv6). When non-empty, only requests from a matching IP are accepted — all others receive 403. Empty list (the default) means unrestricted: the key works from any IP address. Maximum 50 entries. |
|
|
60
|
+
| `body.mode` | `"live" \| "test" \| "sandbox"` | no | Key mode. A 'test' key is returned with a g8_test_ prefix; a 'live' key carries g8_live_; a 'sandbox' key carries g8_sbx_ and only authenticates against the graph8 developer sandbox. A key minted by a 'test'-mode credential is always forced to 'test' regardless of this field — a test key may not mint itself a live successor. default `"live"` |
|
|
61
|
+
| `body.scopes` | `Array<string> \| null` | no | Restrict the new key to specific resource:action scopes (e.g. ['contacts:read', 'deals:*']). '*' grants everything; 'resource:*' grants every action on a resource. Omitted or empty grants the full current scope vocabulary (today's status quo for an unscoped key), stored explicitly so the key stays narrowable and auditable rather than permanently unrestricted. |
|
|
62
|
+
|
|
63
|
+
**Returns** `ApiResponse_ApiKeyCreateResponse_`: the envelope `{ data: ApiKeyCreateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
64
|
+
|
|
65
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
66
|
+
|
|
67
|
+
`ApiKeyCreateResponse` fields:
|
|
68
|
+
|
|
69
|
+
| Field | Type | Required | Description |
|
|
70
|
+
|---|---|---|---|
|
|
71
|
+
| `api_key_id` | `string` | yes | |
|
|
72
|
+
| `api_key_token` | `string` | yes | |
|
|
73
|
+
| `name` | `string` | yes | |
|
|
74
|
+
| `mode` | `string` | no | default `"live"` |
|
|
75
|
+
| `scopes` | `Array<string>` | no | |
|
|
76
|
+
|
|
77
|
+
**Example**
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
const result = await g8.api.apiKeys.createApiKey({ body: { name: "Example" } });
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
<a id="op-deleteapikey"></a>
|
|
86
|
+
|
|
87
|
+
### `g8.api.apiKeys.deleteApiKey(input)`
|
|
88
|
+
|
|
89
|
+
**Delete Api Key**
|
|
90
|
+
|
|
91
|
+
- HTTP: `DELETE /api/v1/api-keys/{api_key_id}`
|
|
92
|
+
- operationId: `delete_api_key_api_keys__api_key_id__delete` (also callable as `g8.api.call("delete_api_key_api_keys__api_key_id__delete", input)`)
|
|
93
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
94
|
+
- API-key scope: `account:write`
|
|
95
|
+
|
|
96
|
+
Revoke an API key. Idempotent: revoking a key that no longer exists
|
|
97
|
+
(already revoked, or never existed in this org) returns 404, never 500.
|
|
98
|
+
|
|
99
|
+
**Input**
|
|
100
|
+
|
|
101
|
+
| Field | Type | Required | Description |
|
|
102
|
+
|---|---|---|---|
|
|
103
|
+
| `path.api_key_id` | `string` | yes | |
|
|
104
|
+
|
|
105
|
+
**Returns**: no JSON body is declared for the success response.
|
|
106
|
+
|
|
107
|
+
**Example**
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
111
|
+
const result = await g8.api.apiKeys.deleteApiKey({ path: { api_key_id: "id" } });
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
<a id="op-listapikeys"></a>
|
|
117
|
+
|
|
118
|
+
### `g8.api.apiKeys.listApiKeys(input?)`
|
|
119
|
+
|
|
120
|
+
**List Api Keys**
|
|
121
|
+
|
|
122
|
+
- HTTP: `GET /api/v1/api-keys`
|
|
123
|
+
- operationId: `list_api_keys_api_keys_get` (also callable as `g8.api.call("list_api_keys_api_keys_get", input)`)
|
|
124
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
125
|
+
- API-key scope: `account:read`
|
|
126
|
+
|
|
127
|
+
List every API key in the caller's own org (never the secret).
|
|
128
|
+
|
|
129
|
+
**Input**: none.
|
|
130
|
+
|
|
131
|
+
**Returns** `ApiResponse_ApiKeyListResponse_`: the envelope `{ data: ApiKeyListResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
132
|
+
|
|
133
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
134
|
+
|
|
135
|
+
`ApiKeyListResponse` fields:
|
|
136
|
+
|
|
137
|
+
| Field | Type | Required | Description |
|
|
138
|
+
|---|---|---|---|
|
|
139
|
+
| `keys` | `Array<ApiKeyResponse>` | yes | |
|
|
140
|
+
| `total` | `integer` | yes | |
|
|
141
|
+
|
|
142
|
+
**Example**
|
|
143
|
+
|
|
144
|
+
```ts
|
|
145
|
+
const result = await g8.api.apiKeys.listApiKeys();
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
<a id="op-listscopecatalog"></a>
|
|
151
|
+
|
|
152
|
+
### `g8.api.apiKeys.listScopeCatalog(input?)`
|
|
153
|
+
|
|
154
|
+
**List Scope Catalog**
|
|
155
|
+
|
|
156
|
+
- HTTP: `GET /api/v1/api-keys/scopes`
|
|
157
|
+
- operationId: `list_scope_catalog_api_keys_scopes_get` (also callable as `g8.api.call("list_scope_catalog_api_keys_scopes_get", input)`)
|
|
158
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
159
|
+
- API-key scope: `account:read`
|
|
160
|
+
|
|
161
|
+
The scope vocabulary a key may be granted, so an automation can decide
|
|
162
|
+
what to ask for without reading source. Read-only, org-independent.
|
|
163
|
+
|
|
164
|
+
**Input**: none.
|
|
165
|
+
|
|
166
|
+
**Returns** `ApiResponse_ScopeCatalogResponse_`: the envelope `{ data: ScopeCatalogResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
167
|
+
|
|
168
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
169
|
+
|
|
170
|
+
`ScopeCatalogResponse` fields:
|
|
171
|
+
|
|
172
|
+
| Field | Type | Required | Description |
|
|
173
|
+
|---|---|---|---|
|
|
174
|
+
| `default_scopes` | `Array<string>` | yes | |
|
|
175
|
+
| `resources` | `Array<ScopeCatalogResource>` | yes | |
|
|
176
|
+
| `total` | `integer` | yes | |
|
|
177
|
+
| `full_access_scopes` | `Array<string>` | no | The full-access preset: every grantable scope except the explicit-only strict ones. `default_scopes` is read-only, so this is what a creator picks to opt in to write/run/launch/delete. |
|
|
178
|
+
| `read_only_scopes` | `Array<string>` | no | The read-only preset: every ':read' scope in the grantable vocabulary. Minting a key with exactly these produces a credential that can look but never write, run, launch or delete — the 'read-only key' standard option (issue #21188). |
|
|
179
|
+
|
|
180
|
+
**Example**
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
const result = await g8.api.apiKeys.listScopeCatalog();
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
<a id="op-rotateapikey"></a>
|
|
189
|
+
|
|
190
|
+
### `g8.api.apiKeys.rotateApiKey(input)`
|
|
191
|
+
|
|
192
|
+
**Rotate Api Key**
|
|
193
|
+
|
|
194
|
+
- HTTP: `POST /api/v1/api-keys/{api_key_id}/rotate`
|
|
195
|
+
- operationId: `rotate_api_key_api_keys__api_key_id__rotate_post` (also callable as `g8.api.call("rotate_api_key_api_keys__api_key_id__rotate_post", input)`)
|
|
196
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
197
|
+
- API-key scope: `account:write`
|
|
198
|
+
|
|
199
|
+
Rotate a key, preserving its mode, scopes and agency status.
|
|
200
|
+
|
|
201
|
+
The old key is deleted and a policy-equivalent replacement is minted; the
|
|
202
|
+
new token is returned exactly once. Ownership is enforced by the org-scoped
|
|
203
|
+
lookup below (mirroring the delete route) plus `rotate_api_key`'s own
|
|
204
|
+
org-scoped read-back (`campaign_builder/services/propelauth.py`).
|
|
205
|
+
|
|
206
|
+
Guard 4 (mode non-escalation) applies here too — see module docstring point
|
|
207
|
+
4. Rotation PRESERVES the target key's mode, so without this a `test`-mode
|
|
208
|
+
caller could rotate a `live` key and receive a brand-new `live` token (while
|
|
209
|
+
invalidating the working live key). That is the same escalation the create
|
|
210
|
+
route coerces away, so refuse it here rather than coerce: a rotation cannot
|
|
211
|
+
be silently downgraded to `test` without destroying a working live key.
|
|
212
|
+
|
|
213
|
+
**Input**
|
|
214
|
+
|
|
215
|
+
| Field | Type | Required | Description |
|
|
216
|
+
|---|---|---|---|
|
|
217
|
+
| `path.api_key_id` | `string` | yes | |
|
|
218
|
+
| `body` | `ApiKeyRotateRequest` | yes | Request body; fields below. |
|
|
219
|
+
|
|
220
|
+
Body fields (`ApiKeyRotateRequest`):
|
|
221
|
+
|
|
222
|
+
| Field | Type | Required | Description |
|
|
223
|
+
|---|---|---|---|
|
|
224
|
+
| `body.expires_in_days` | `integer \| null` | no | min 1, max 365 |
|
|
225
|
+
| `body.ip_allowlist` | `Array<string> \| null` | no | Update the IP allowlist on rotation. Omit to preserve the existing allowlist. Pass [] to remove all restrictions. |
|
|
226
|
+
| `body.name` | `string \| null` | no | min length 1, max length 100 |
|
|
227
|
+
|
|
228
|
+
**Returns** `ApiResponse_ApiKeyCreateResponse_`: the envelope `{ data: ApiKeyCreateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
229
|
+
|
|
230
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
231
|
+
|
|
232
|
+
`ApiKeyCreateResponse` fields:
|
|
233
|
+
|
|
234
|
+
| Field | Type | Required | Description |
|
|
235
|
+
|---|---|---|---|
|
|
236
|
+
| `api_key_id` | `string` | yes | |
|
|
237
|
+
| `api_key_token` | `string` | yes | |
|
|
238
|
+
| `name` | `string` | yes | |
|
|
239
|
+
| `mode` | `string` | no | default `"live"` |
|
|
240
|
+
| `scopes` | `Array<string>` | no | |
|
|
241
|
+
|
|
242
|
+
**Example**
|
|
243
|
+
|
|
244
|
+
```ts
|
|
245
|
+
const result = await g8.api.apiKeys.rotateApiKey({ path: { api_key_id: "id" }, body: {} });
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
<a id="op-updateipallowlist"></a>
|
|
251
|
+
|
|
252
|
+
### `g8.api.apiKeys.updateIpAllowlist(input)`
|
|
253
|
+
|
|
254
|
+
**Update Ip Allowlist**
|
|
255
|
+
|
|
256
|
+
- HTTP: `PUT /api/v1/api-keys/{api_key_id}/ip-allowlist`
|
|
257
|
+
- operationId: `update_ip_allowlist_api_keys__api_key_id__ip_allowlist_put` (also callable as `g8.api.call("update_ip_allowlist_api_keys__api_key_id__ip_allowlist_put", input)`)
|
|
258
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
259
|
+
- API-key scope: `account:write`
|
|
260
|
+
|
|
261
|
+
Replace the IP allowlist for a key in-place. The token is unchanged.
|
|
262
|
+
|
|
263
|
+
Pass an empty list to remove all IP restrictions.
|
|
264
|
+
Gated by account:write (same as create/rotate/delete).
|
|
265
|
+
|
|
266
|
+
**Input**
|
|
267
|
+
|
|
268
|
+
| Field | Type | Required | Description |
|
|
269
|
+
|---|---|---|---|
|
|
270
|
+
| `path.api_key_id` | `string` | yes | |
|
|
271
|
+
| `body` | `ApiKeyIpAllowlistRequest` | yes | Request body; fields below. |
|
|
272
|
+
|
|
273
|
+
Body fields (`ApiKeyIpAllowlistRequest`):
|
|
274
|
+
|
|
275
|
+
| Field | Type | Required | Description |
|
|
276
|
+
|---|---|---|---|
|
|
277
|
+
| `body.ip_allowlist` | `Array<string>` | yes | Replacement list of CIDR strings. Pass [] to remove all restrictions. Maximum 50 entries. |
|
|
278
|
+
|
|
279
|
+
**Returns** `ApiResponse_ApiKeyResponse_`: the envelope `{ data: ApiKeyResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
280
|
+
|
|
281
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
282
|
+
|
|
283
|
+
`ApiKeyResponse` fields:
|
|
284
|
+
|
|
285
|
+
| Field | Type | Required | Description |
|
|
286
|
+
|---|---|---|---|
|
|
287
|
+
| `api_key_id` | `string` | yes | |
|
|
288
|
+
| `name` | `string` | yes | |
|
|
289
|
+
| `created_at` | `integer \| null` | no | |
|
|
290
|
+
| `created_by` | `string \| null` | no | |
|
|
291
|
+
| `expires_at` | `integer \| null` | no | |
|
|
292
|
+
| `ip_allowlist` | `Array<string>` | no | CIDRs this key is restricted to. Empty = unrestricted. |
|
|
293
|
+
| `is_agency` | `boolean` | no | Whether this key is agency-scoped. Informational — this door cannot mint one. default `false` |
|
|
294
|
+
| `is_legacy_unrestricted` | `boolean` | no | True for a key minted before scopes existed. An empty scope list means unrestricted, not 'no access'. default `false` |
|
|
295
|
+
| `last_used_at` | `integer \| null` | no | |
|
|
296
|
+
| `mode` | `string` | no | default `"live"` |
|
|
297
|
+
| `scopes` | `Array<string>` | no | |
|
|
298
|
+
|
|
299
|
+
**Example**
|
|
300
|
+
|
|
301
|
+
```ts
|
|
302
|
+
const result = await g8.api.apiKeys.updateIpAllowlist({ path: { api_key_id: "id" }, body: { ip_allowlist: ["example"] } });
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Referenced types
|
|
308
|
+
|
|
309
|
+
Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
|
|
310
|
+
|
|
311
|
+
<a id="type-scopecatalogresource"></a>
|
|
312
|
+
|
|
313
|
+
### `ScopeCatalogResource`
|
|
314
|
+
|
|
315
|
+
| Field | Type | Required | Description |
|
|
316
|
+
|---|---|---|---|
|
|
317
|
+
| `resource` | `string` | yes | |
|
|
318
|
+
| `scopes` | `Array<ScopeCatalogEntry>` | yes | |
|