@epilot/sdk 2.2.1 → 2.2.2
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/definitions/access-token-runtime.json +1 -0
- package/definitions/access-token.json +663 -0
- package/definitions/address-runtime.json +1 -0
- package/definitions/address-suggestions-runtime.json +1 -0
- package/definitions/address-suggestions.json +582 -0
- package/definitions/address.json +578 -0
- package/definitions/ai-agents-runtime.json +1 -0
- package/definitions/ai-agents.json +1711 -0
- package/definitions/app-runtime.json +1 -0
- package/definitions/app.json +4493 -0
- package/definitions/audit-logs-runtime.json +1 -0
- package/definitions/audit-logs.json +305 -0
- package/definitions/automation-runtime.json +1 -0
- package/definitions/automation.json +4819 -0
- package/definitions/billing-runtime.json +1 -0
- package/definitions/billing.json +837 -0
- package/definitions/blueprint-manifest-runtime.json +1 -0
- package/definitions/blueprint-manifest.json +3490 -0
- package/definitions/consent-runtime.json +1 -0
- package/definitions/consent.json +344 -0
- package/definitions/customer-portal-runtime.json +1 -0
- package/definitions/customer-portal.json +15676 -0
- package/definitions/dashboard-runtime.json +1 -0
- package/definitions/dashboard.json +484 -0
- package/definitions/data-management-runtime.json +1 -0
- package/definitions/data-management.json +972 -0
- package/definitions/deduplication-runtime.json +1 -0
- package/definitions/deduplication.json +183 -0
- package/definitions/design-runtime.json +1 -0
- package/definitions/design.json +1423 -0
- package/definitions/document-runtime.json +1 -0
- package/definitions/document.json +758 -0
- package/definitions/email-settings-runtime.json +1 -0
- package/definitions/email-settings.json +2748 -0
- package/definitions/email-template-runtime.json +1 -0
- package/definitions/email-template.json +1441 -0
- package/definitions/entity-mapping-runtime.json +1 -0
- package/definitions/entity-mapping.json +1642 -0
- package/definitions/entity-runtime.json +1 -0
- package/definitions/entity.json +10404 -0
- package/definitions/environments-runtime.json +1 -0
- package/definitions/environments.json +363 -0
- package/definitions/erp-integration-runtime.json +1 -0
- package/definitions/erp-integration.json +6780 -0
- package/definitions/event-catalog-runtime.json +1 -0
- package/definitions/event-catalog.json +1051 -0
- package/definitions/file-runtime.json +1 -0
- package/definitions/file.json +2842 -0
- package/definitions/iban-runtime.json +1 -0
- package/definitions/iban.json +132 -0
- package/definitions/journey-runtime.json +1 -0
- package/definitions/journey.json +2603 -0
- package/definitions/kanban-runtime.json +1 -0
- package/definitions/kanban.json +1505 -0
- package/definitions/message-runtime.json +1 -0
- package/definitions/message.json +2660 -0
- package/definitions/metering-runtime.json +1 -0
- package/definitions/metering.json +2321 -0
- package/definitions/notes-runtime.json +1 -0
- package/definitions/notes.json +1531 -0
- package/definitions/notification-runtime.json +1 -0
- package/definitions/notification.json +1425 -0
- package/definitions/organization-runtime.json +1 -0
- package/definitions/organization.json +1192 -0
- package/definitions/partner-directory-runtime.json +1 -0
- package/definitions/partner-directory.json +2284 -0
- package/definitions/permissions-runtime.json +1 -0
- package/definitions/permissions.json +1515 -0
- package/definitions/pricing-runtime.json +1 -0
- package/definitions/pricing-tier-runtime.json +1 -0
- package/definitions/pricing-tier.json +105 -0
- package/definitions/pricing.json +9884 -0
- package/definitions/purpose-runtime.json +1 -0
- package/definitions/purpose.json +524 -0
- package/definitions/sandbox-runtime.json +1 -0
- package/definitions/sandbox.json +453 -0
- package/definitions/submission-runtime.json +1 -0
- package/definitions/submission.json +313 -0
- package/definitions/targeting-runtime.json +1 -0
- package/definitions/targeting.json +1474 -0
- package/definitions/template-variables-runtime.json +1 -0
- package/definitions/template-variables.json +1408 -0
- package/definitions/user-runtime.json +1 -0
- package/definitions/user.json +2408 -0
- package/definitions/validation-rules-runtime.json +1 -0
- package/definitions/validation-rules.json +1491 -0
- package/definitions/webhooks-runtime.json +1 -0
- package/definitions/webhooks.json +1634 -0
- package/definitions/workflow-definition-runtime.json +1 -0
- package/definitions/workflow-definition.json +3417 -0
- package/definitions/workflow-runtime.json +1 -0
- package/definitions/workflow.json +4146 -0
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.d.cts +2 -2
- package/dist/apis/automation.d.ts +2 -2
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-management.cjs +6 -6
- package/dist/apis/data-management.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +8 -8
- package/dist/apis/entity.d.cts +2 -2
- package/dist/apis/entity.d.ts +2 -2
- package/dist/apis/entity.js +2 -2
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/erp-integration.cjs +8 -8
- package/dist/apis/erp-integration.d.cts +2 -2
- package/dist/apis/erp-integration.d.ts +2 -2
- package/dist/apis/erp-integration.js +2 -2
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/{automation.d-KOiZ6ru5.d.cts → automation.d-D7BzN7Gq.d.cts} +4 -0
- package/dist/{automation.d-KOiZ6ru5.d.ts → automation.d-D7BzN7Gq.d.ts} +4 -0
- package/dist/{chunk-G33CBNJD.js → chunk-K7HKCNT2.js} +4 -4
- package/dist/{chunk-TPA4HEAO.js → chunk-LHVRAAFH.js} +1 -1
- package/dist/{chunk-IGVVJMX7.cjs → chunk-ODD4JQVS.cjs} +1 -1
- package/dist/chunk-RKSUIRD2.js +14 -0
- package/dist/{chunk-6TKKEGYU.cjs → chunk-TG2P4RWZ.cjs} +4 -4
- package/dist/chunk-XLQ4ZRBF.cjs +14 -0
- package/dist/entity-RCWJZZXM.cjs +7 -0
- package/dist/entity-X374X6EQ.js +7 -0
- package/dist/{entity-runtime-QSFVEFJ6.js → entity-runtime-CWQUEFCS.js} +1 -1
- package/dist/entity-runtime-EOWSEXC7.cjs +5 -0
- package/dist/{entity.d-DtiajmaY.d.cts → entity.d-t9R21446.d.cts} +140 -4
- package/dist/{entity.d-DtiajmaY.d.ts → entity.d-t9R21446.d.ts} +140 -4
- package/dist/erp-integration-6I4B4BIU.cjs +7 -0
- package/dist/erp-integration-G54BMGGE.js +7 -0
- package/dist/{erp-integration-runtime-FNJXDO75.js → erp-integration-runtime-6SBLYZ34.js} +1 -1
- package/dist/{erp-integration-runtime-WXZIQCLJ.cjs → erp-integration-runtime-HZI2P4X7.cjs} +2 -2
- package/dist/{erp-integration.d-DOhxy4P5.d.cts → erp-integration.d-BV3Rv9e6.d.cts} +479 -14
- package/dist/{erp-integration.d-DOhxy4P5.d.ts → erp-integration.d-BV3Rv9e6.d.ts} +479 -14
- package/dist/index.cjs +12 -12
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/docs/entity.md +337 -5
- package/docs/erp-integration.md +643 -16
- package/package.json +1 -1
- package/dist/chunk-24T6CJTG.js +0 -14
- package/dist/chunk-TTNPMFXL.cjs +0 -14
- package/dist/entity-FA6PZX6S.js +0 -7
- package/dist/entity-IX5NSHPX.cjs +0 -7
- package/dist/entity-runtime-XSAICIVR.cjs +0 -5
- package/dist/erp-integration-EP2XFEH5.js +0 -7
- package/dist/erp-integration-NNV72VFI.cjs +0 -7
|
@@ -0,0 +1,1192 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.3",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Organization API",
|
|
5
|
+
"description": "The Organization API provides endpoints for managing epilot tenant organizations.\n\n## Overview\n\nThis API allows you to:\n- **Retrieve organization details** - Get information about the current organization or a specific organization by ID\n- **Update organization profiles** - Modify organization name, contact information, address, and branding assets\n- **Manage organization settings** - Configure organization-wide settings such as feature flags and preferences\n- **Branding configuration** - Set organization logos, email signatures, and style settings\n\n## Organization Types\n\nOrganizations can be configured as:\n- **Production** - Live production environments for real business operations\n- **Sandbox** - Test environments linked to a parent production organization\n",
|
|
6
|
+
"version": "1.1.0"
|
|
7
|
+
},
|
|
8
|
+
"tags": [
|
|
9
|
+
{
|
|
10
|
+
"name": "Organization",
|
|
11
|
+
"description": "Endpoints for managing organization profiles and information.\n\nOrganizations represent tenant accounts in the epilot platform. Each organization has:\n- Basic profile information (name, contact details, address)\n- Branding assets (logo, email signature)\n- Configuration settings\n- Usage type (Production or Sandbox)\n"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "Organization Settings",
|
|
15
|
+
"description": "Endpoints for managing organization-wide configuration settings.\n\nSettings are stored as key-value pairs and can include:\n- Feature flags (e.g., double_opt_in)\n- Integration configurations\n- Platform preferences\n\nSettings values can be strings, numbers, booleans, arrays, or objects.\n"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Cleanup",
|
|
19
|
+
"description": "Internal endpoints for organization cleanup operations.\n\nThese endpoints are used by internal services to manage the deletion and cleanup\nof organization data across the platform. They track cleanup status per service\nto ensure complete data removal.\n"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "Internal",
|
|
23
|
+
"description": "Internal endpoints for platform administration.\n\nThese endpoints are not part of the public API and are used by internal epilot\nservices for administrative operations such as organization provisioning,\ndata aggregation, and cross-organization queries.\n"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "HubSpot",
|
|
27
|
+
"description": "Internal endpoints for HubSpot CRM integration.\n\nThese endpoints provide access to HubSpot company data synchronized with the\nepilot data warehouse for organization mapping and CRM integration purposes.\n"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "Feature Settings",
|
|
31
|
+
"description": "Feature flag metadata for the organization settings page.\n\nThis metadata is used by frontend applications to render feature toggles\nwithout hardcoding titles, descriptions, badges, and visibility rules in the UI.\n"
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"security": [
|
|
35
|
+
{
|
|
36
|
+
"EpilotAuth": []
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"paths": {
|
|
40
|
+
"/v2/organization/current": {
|
|
41
|
+
"get": {
|
|
42
|
+
"operationId": "getCurrentOrganization",
|
|
43
|
+
"summary": "getCurrentOrganization",
|
|
44
|
+
"description": "Retrieves the organization associated with the authenticated user's current session.\n\nThis endpoint is useful for fetching organization details without knowing the organization ID,\nas it automatically resolves the organization from the authentication token.\n",
|
|
45
|
+
"tags": [
|
|
46
|
+
"Organization"
|
|
47
|
+
],
|
|
48
|
+
"responses": {
|
|
49
|
+
"200": {
|
|
50
|
+
"description": "The organization associated with the current authenticated user",
|
|
51
|
+
"content": {
|
|
52
|
+
"application/json": {
|
|
53
|
+
"schema": {
|
|
54
|
+
"$ref": "#/components/schemas/Organization"
|
|
55
|
+
},
|
|
56
|
+
"example": {
|
|
57
|
+
"id": "739224",
|
|
58
|
+
"name": "Epilot",
|
|
59
|
+
"email": "contact@epilot.cloud",
|
|
60
|
+
"phone": "+49123456789",
|
|
61
|
+
"website": "https://epilot.cloud",
|
|
62
|
+
"address": {
|
|
63
|
+
"country": "Germany",
|
|
64
|
+
"city": "Cologne",
|
|
65
|
+
"postal_code": "50667",
|
|
66
|
+
"street": "Im Mediapark",
|
|
67
|
+
"street_number": "8a"
|
|
68
|
+
},
|
|
69
|
+
"organization_use": "Production",
|
|
70
|
+
"created_date": "2021-01-15T10:30:00Z",
|
|
71
|
+
"logo_url": "https://epilot-playground-organization-data.s3.eu-central-1.amazonaws.com/epilot-logo.png",
|
|
72
|
+
"signature": "<p>Best regards,<br/>The epilot Team</p>"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"401": {
|
|
78
|
+
"description": "Unauthorized - Invalid or missing authentication token"
|
|
79
|
+
},
|
|
80
|
+
"403": {
|
|
81
|
+
"description": "Forbidden - User does not have permission to access organization data"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"/v2/organization/{org_id}": {
|
|
87
|
+
"get": {
|
|
88
|
+
"operationId": "getOrganization",
|
|
89
|
+
"summary": "getOrganization",
|
|
90
|
+
"description": "Retrieves detailed information about a specific organization by its unique identifier.\n\nReturns the organization's profile information including name, contact details,\naddress, branding assets, and configuration.\n",
|
|
91
|
+
"tags": [
|
|
92
|
+
"Organization"
|
|
93
|
+
],
|
|
94
|
+
"parameters": [
|
|
95
|
+
{
|
|
96
|
+
"in": "path",
|
|
97
|
+
"name": "org_id",
|
|
98
|
+
"schema": {
|
|
99
|
+
"$ref": "#/components/schemas/OrganizationId"
|
|
100
|
+
},
|
|
101
|
+
"required": true,
|
|
102
|
+
"description": "The unique identifier of the organization to retrieve"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"responses": {
|
|
106
|
+
"200": {
|
|
107
|
+
"description": "Organization details retrieved successfully",
|
|
108
|
+
"content": {
|
|
109
|
+
"application/json": {
|
|
110
|
+
"schema": {
|
|
111
|
+
"$ref": "#/components/schemas/Organization"
|
|
112
|
+
},
|
|
113
|
+
"example": {
|
|
114
|
+
"id": "739224",
|
|
115
|
+
"name": "Epilot",
|
|
116
|
+
"email": "contact@epilot.cloud",
|
|
117
|
+
"phone": "+49123456789",
|
|
118
|
+
"website": "https://epilot.cloud",
|
|
119
|
+
"address": {
|
|
120
|
+
"country": "Germany",
|
|
121
|
+
"city": "Cologne",
|
|
122
|
+
"postal_code": "50667",
|
|
123
|
+
"street": "Im Mediapark",
|
|
124
|
+
"street_number": "8a"
|
|
125
|
+
},
|
|
126
|
+
"organization_use": "Production",
|
|
127
|
+
"created_date": "2021-01-15T10:30:00Z",
|
|
128
|
+
"logo_url": "https://epilot-playground-organization-data.s3.eu-central-1.amazonaws.com/epilot-logo.png",
|
|
129
|
+
"signature": "<p>Best regards,<br/>The epilot Team</p>"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"401": {
|
|
135
|
+
"description": "Unauthorized - Invalid or missing authentication token"
|
|
136
|
+
},
|
|
137
|
+
"403": {
|
|
138
|
+
"description": "Forbidden - User does not have permission to access this organization"
|
|
139
|
+
},
|
|
140
|
+
"404": {
|
|
141
|
+
"description": "Not Found - Organization with the specified ID does not exist"
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"patch": {
|
|
146
|
+
"operationId": "updateOrganization",
|
|
147
|
+
"summary": "updateOrganization",
|
|
148
|
+
"description": "Updates an organization's profile information.\n\nThis endpoint supports partial updates - only the fields provided in the request body\nwill be modified. Fields not included in the request will retain their current values.\n\nCommon use cases:\n- Updating contact information (email, phone, website)\n- Changing the organization name\n- Updating the postal address\n- Setting or updating branding assets (logo_url, logo_thumbnail_url)\n- Configuring the default email signature\n",
|
|
149
|
+
"tags": [
|
|
150
|
+
"Organization"
|
|
151
|
+
],
|
|
152
|
+
"parameters": [
|
|
153
|
+
{
|
|
154
|
+
"in": "path",
|
|
155
|
+
"name": "org_id",
|
|
156
|
+
"schema": {
|
|
157
|
+
"$ref": "#/components/schemas/OrganizationId"
|
|
158
|
+
},
|
|
159
|
+
"required": true,
|
|
160
|
+
"description": "The unique identifier of the organization to update"
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
"requestBody": {
|
|
164
|
+
"description": "Organization fields to update. Only provided fields will be modified.",
|
|
165
|
+
"required": true,
|
|
166
|
+
"content": {
|
|
167
|
+
"application/json": {
|
|
168
|
+
"schema": {
|
|
169
|
+
"$ref": "#/components/schemas/Organization"
|
|
170
|
+
},
|
|
171
|
+
"example": {
|
|
172
|
+
"name": "Epilot GmbH",
|
|
173
|
+
"email": "info@epilot.cloud",
|
|
174
|
+
"phone": "+49221123456",
|
|
175
|
+
"website": "https://www.epilot.cloud",
|
|
176
|
+
"address": {
|
|
177
|
+
"country": "Germany",
|
|
178
|
+
"city": "Cologne",
|
|
179
|
+
"postal_code": "50667",
|
|
180
|
+
"street": "Im Mediapark",
|
|
181
|
+
"street_number": "8a"
|
|
182
|
+
},
|
|
183
|
+
"logo_url": "https://example.com/new-logo.png",
|
|
184
|
+
"signature": "<p>Kind regards,<br/>The epilot Team</p>"
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"responses": {
|
|
190
|
+
"200": {
|
|
191
|
+
"description": "Organization updated successfully",
|
|
192
|
+
"content": {
|
|
193
|
+
"application/json": {
|
|
194
|
+
"schema": {
|
|
195
|
+
"$ref": "#/components/schemas/Organization"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"400": {
|
|
201
|
+
"description": "Bad Request - Invalid request body or field values"
|
|
202
|
+
},
|
|
203
|
+
"401": {
|
|
204
|
+
"description": "Unauthorized - Invalid or missing authentication token"
|
|
205
|
+
},
|
|
206
|
+
"403": {
|
|
207
|
+
"description": "Forbidden - User does not have permission to update this organization"
|
|
208
|
+
},
|
|
209
|
+
"404": {
|
|
210
|
+
"description": "Not Found - Organization with the specified ID does not exist"
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
"/v2/organization/{org_id}/settings": {
|
|
216
|
+
"get": {
|
|
217
|
+
"operationId": "getSettings",
|
|
218
|
+
"summary": "getSettings",
|
|
219
|
+
"description": "Retrieves all configuration settings for an organization.\n\nReturns a key-value map of all settings configured for the organization.\nSettings control various platform features and behaviors including:\n- Feature flags (e.g., double_opt_in, email_tracking)\n- Integration configurations\n- UI preferences\n- Workflow settings\n",
|
|
220
|
+
"tags": [
|
|
221
|
+
"Organization Settings"
|
|
222
|
+
],
|
|
223
|
+
"parameters": [
|
|
224
|
+
{
|
|
225
|
+
"in": "path",
|
|
226
|
+
"name": "org_id",
|
|
227
|
+
"schema": {
|
|
228
|
+
"$ref": "#/components/schemas/OrganizationId"
|
|
229
|
+
},
|
|
230
|
+
"required": true,
|
|
231
|
+
"description": "The unique identifier of the organization"
|
|
232
|
+
}
|
|
233
|
+
],
|
|
234
|
+
"responses": {
|
|
235
|
+
"200": {
|
|
236
|
+
"description": "Organization settings retrieved successfully",
|
|
237
|
+
"content": {
|
|
238
|
+
"application/json": {
|
|
239
|
+
"schema": {
|
|
240
|
+
"$ref": "#/components/schemas/Settings"
|
|
241
|
+
},
|
|
242
|
+
"example": {
|
|
243
|
+
"double_opt_in": {
|
|
244
|
+
"enabled": true
|
|
245
|
+
},
|
|
246
|
+
"email_tracking": {
|
|
247
|
+
"enabled": true,
|
|
248
|
+
"track_opens": true,
|
|
249
|
+
"track_clicks": false
|
|
250
|
+
},
|
|
251
|
+
"default_language": "de",
|
|
252
|
+
"workflow_notifications": {
|
|
253
|
+
"enabled": true,
|
|
254
|
+
"channels": [
|
|
255
|
+
"email",
|
|
256
|
+
"in_app"
|
|
257
|
+
]
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
"401": {
|
|
264
|
+
"description": "Unauthorized - Invalid or missing authentication token"
|
|
265
|
+
},
|
|
266
|
+
"403": {
|
|
267
|
+
"description": "Forbidden - User does not have permission to access organization settings"
|
|
268
|
+
},
|
|
269
|
+
"404": {
|
|
270
|
+
"description": "Not Found - Organization with the specified ID does not exist"
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
"/v2/organization/{org_id}/settings/{key}": {
|
|
276
|
+
"put": {
|
|
277
|
+
"operationId": "putSettingsValue",
|
|
278
|
+
"summary": "putSettingsValue",
|
|
279
|
+
"description": "Creates or updates a specific organization setting identified by its key.\n\nThe setting value can be any valid JSON type:\n- String (e.g., \"en\", \"production\")\n- Number (e.g., 100, 3.14)\n- Boolean (e.g., true, false)\n- Object (e.g., {\"enabled\": true, \"threshold\": 50})\n- Array (e.g., [\"email\", \"sms\", \"push\"])\n\nIf the setting key does not exist, it will be created. If it exists, its value\nwill be replaced with the new value.\n",
|
|
280
|
+
"tags": [
|
|
281
|
+
"Organization Settings"
|
|
282
|
+
],
|
|
283
|
+
"parameters": [
|
|
284
|
+
{
|
|
285
|
+
"in": "path",
|
|
286
|
+
"name": "org_id",
|
|
287
|
+
"schema": {
|
|
288
|
+
"$ref": "#/components/schemas/OrganizationId"
|
|
289
|
+
},
|
|
290
|
+
"required": true,
|
|
291
|
+
"description": "The unique identifier of the organization"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"in": "path",
|
|
295
|
+
"name": "key",
|
|
296
|
+
"schema": {
|
|
297
|
+
"type": "string"
|
|
298
|
+
},
|
|
299
|
+
"required": true,
|
|
300
|
+
"description": "The setting key to create or update.\nCommon keys include: double_opt_in, email_tracking, default_language, workflow_notifications\n",
|
|
301
|
+
"example": "double_opt_in"
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
"requestBody": {
|
|
305
|
+
"description": "The value to set for the specified setting key",
|
|
306
|
+
"required": true,
|
|
307
|
+
"content": {
|
|
308
|
+
"application/json": {
|
|
309
|
+
"schema": {
|
|
310
|
+
"$ref": "#/components/schemas/SettingsValue"
|
|
311
|
+
},
|
|
312
|
+
"examples": {
|
|
313
|
+
"boolean_setting": {
|
|
314
|
+
"summary": "Boolean setting",
|
|
315
|
+
"value": {
|
|
316
|
+
"enabled": true
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
"string_setting": {
|
|
320
|
+
"summary": "String setting",
|
|
321
|
+
"value": "de"
|
|
322
|
+
},
|
|
323
|
+
"object_setting": {
|
|
324
|
+
"summary": "Object setting",
|
|
325
|
+
"value": {
|
|
326
|
+
"enabled": true,
|
|
327
|
+
"track_opens": true,
|
|
328
|
+
"track_clicks": false
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
"responses": {
|
|
336
|
+
"200": {
|
|
337
|
+
"description": "Setting updated successfully",
|
|
338
|
+
"content": {
|
|
339
|
+
"application/json": {
|
|
340
|
+
"schema": {
|
|
341
|
+
"$ref": "#/components/schemas/SettingsValue"
|
|
342
|
+
},
|
|
343
|
+
"example": {
|
|
344
|
+
"enabled": true
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
"400": {
|
|
350
|
+
"description": "Bad Request - Invalid setting value"
|
|
351
|
+
},
|
|
352
|
+
"401": {
|
|
353
|
+
"description": "Unauthorized - Invalid or missing authentication token"
|
|
354
|
+
},
|
|
355
|
+
"403": {
|
|
356
|
+
"description": "Forbidden - User does not have permission to modify organization settings"
|
|
357
|
+
},
|
|
358
|
+
"404": {
|
|
359
|
+
"description": "Not Found - Organization with the specified ID does not exist"
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"delete": {
|
|
364
|
+
"operationId": "deleteSettingsValue",
|
|
365
|
+
"summary": "deleteSettingsValue",
|
|
366
|
+
"description": "Removes a specific organization setting identified by its key.\n\nAfter deletion, the setting will no longer appear in the organization's settings\nand any features relying on this setting will use their default behavior.\n",
|
|
367
|
+
"tags": [
|
|
368
|
+
"Organization Settings"
|
|
369
|
+
],
|
|
370
|
+
"parameters": [
|
|
371
|
+
{
|
|
372
|
+
"in": "path",
|
|
373
|
+
"name": "org_id",
|
|
374
|
+
"schema": {
|
|
375
|
+
"$ref": "#/components/schemas/OrganizationId"
|
|
376
|
+
},
|
|
377
|
+
"required": true,
|
|
378
|
+
"description": "The unique identifier of the organization"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"in": "path",
|
|
382
|
+
"name": "key",
|
|
383
|
+
"schema": {
|
|
384
|
+
"type": "string"
|
|
385
|
+
},
|
|
386
|
+
"required": true,
|
|
387
|
+
"description": "The setting key to delete",
|
|
388
|
+
"example": "double_opt_in"
|
|
389
|
+
}
|
|
390
|
+
],
|
|
391
|
+
"responses": {
|
|
392
|
+
"200": {
|
|
393
|
+
"description": "Setting deleted successfully"
|
|
394
|
+
},
|
|
395
|
+
"401": {
|
|
396
|
+
"description": "Unauthorized - Invalid or missing authentication token"
|
|
397
|
+
},
|
|
398
|
+
"403": {
|
|
399
|
+
"description": "Forbidden - User does not have permission to delete organization settings"
|
|
400
|
+
},
|
|
401
|
+
"404": {
|
|
402
|
+
"description": "Not Found - Organization or setting key does not exist"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
"/v2/organization/feature-settings": {
|
|
408
|
+
"get": {
|
|
409
|
+
"operationId": "getOrganizationFeatureSettings",
|
|
410
|
+
"summary": "Get organization feature settings",
|
|
411
|
+
"description": "Returns feature flag metadata for the organization UI.\n\nThis data is static (identical for all organizations) and changes infrequently.\nClients should cache responses using the Cache-Control header.\n",
|
|
412
|
+
"tags": [
|
|
413
|
+
"Feature Settings"
|
|
414
|
+
],
|
|
415
|
+
"responses": {
|
|
416
|
+
"200": {
|
|
417
|
+
"description": "Feature settings",
|
|
418
|
+
"headers": {
|
|
419
|
+
"cache-control": {
|
|
420
|
+
"schema": {
|
|
421
|
+
"type": "string",
|
|
422
|
+
"example": "public, max-age=3600"
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
},
|
|
426
|
+
"content": {
|
|
427
|
+
"application/json": {
|
|
428
|
+
"schema": {
|
|
429
|
+
"$ref": "#/components/schemas/FeatureSettings"
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
"401": {
|
|
435
|
+
"description": "Unauthorized - Invalid or missing authentication token"
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
"/v2/feature-settings": {
|
|
441
|
+
"get": {
|
|
442
|
+
"operationId": "getFeatureSettings",
|
|
443
|
+
"deprecated": true,
|
|
444
|
+
"summary": "Get platform configuration metadata",
|
|
445
|
+
"description": "Deprecated: use /v2/organization/feature-settings instead.",
|
|
446
|
+
"tags": [
|
|
447
|
+
"Feature Settings"
|
|
448
|
+
],
|
|
449
|
+
"responses": {
|
|
450
|
+
"200": {
|
|
451
|
+
"description": "Platform configuration metadata",
|
|
452
|
+
"content": {
|
|
453
|
+
"application/json": {
|
|
454
|
+
"schema": {
|
|
455
|
+
"$ref": "#/components/schemas/FeatureSettings"
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
},
|
|
460
|
+
"401": {
|
|
461
|
+
"description": "Unauthorized - Invalid or missing authentication token"
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
},
|
|
467
|
+
"components": {
|
|
468
|
+
"securitySchemes": {
|
|
469
|
+
"EpilotAuth": {
|
|
470
|
+
"type": "http",
|
|
471
|
+
"scheme": "bearer",
|
|
472
|
+
"description": "Authorization header with epilot OAuth2 bearer token",
|
|
473
|
+
"bearerFormat": "JWT"
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
"schemas": {
|
|
477
|
+
"OrganizationId": {
|
|
478
|
+
"type": "string",
|
|
479
|
+
"description": "Unique identifier for an organization (tenant) in the epilot platform",
|
|
480
|
+
"example": "739224"
|
|
481
|
+
},
|
|
482
|
+
"Organization": {
|
|
483
|
+
"type": "object",
|
|
484
|
+
"description": "Represents an epilot organization (tenant).\n\nAn organization contains all the configuration, branding, and contact information\nfor a tenant account on the epilot platform.\n",
|
|
485
|
+
"properties": {
|
|
486
|
+
"id": {
|
|
487
|
+
"$ref": "#/components/schemas/OrganizationId"
|
|
488
|
+
},
|
|
489
|
+
"name": {
|
|
490
|
+
"type": "string",
|
|
491
|
+
"description": "Organization name",
|
|
492
|
+
"example": "Epilot",
|
|
493
|
+
"nullable": true
|
|
494
|
+
},
|
|
495
|
+
"email": {
|
|
496
|
+
"type": "string",
|
|
497
|
+
"description": "Organization contact email",
|
|
498
|
+
"example": "someone@epilot.cloud",
|
|
499
|
+
"nullable": true
|
|
500
|
+
},
|
|
501
|
+
"phone": {
|
|
502
|
+
"description": "Organization contact phone",
|
|
503
|
+
"type": "string",
|
|
504
|
+
"example": "+49123123123",
|
|
505
|
+
"nullable": true
|
|
506
|
+
},
|
|
507
|
+
"website": {
|
|
508
|
+
"description": "Organization website",
|
|
509
|
+
"type": "string",
|
|
510
|
+
"example": "https://epilot.cloud",
|
|
511
|
+
"nullable": true
|
|
512
|
+
},
|
|
513
|
+
"address": {
|
|
514
|
+
"description": "Organization postal address",
|
|
515
|
+
"type": "object",
|
|
516
|
+
"additionalProperties": true,
|
|
517
|
+
"properties": {
|
|
518
|
+
"country": {
|
|
519
|
+
"type": "string",
|
|
520
|
+
"nullable": true
|
|
521
|
+
},
|
|
522
|
+
"city": {
|
|
523
|
+
"type": "string",
|
|
524
|
+
"nullable": true
|
|
525
|
+
},
|
|
526
|
+
"postal_code": {
|
|
527
|
+
"type": "string",
|
|
528
|
+
"nullable": true
|
|
529
|
+
},
|
|
530
|
+
"street": {
|
|
531
|
+
"type": "string",
|
|
532
|
+
"nullable": true
|
|
533
|
+
},
|
|
534
|
+
"street_number": {
|
|
535
|
+
"type": "string",
|
|
536
|
+
"nullable": true
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
},
|
|
540
|
+
"organization_use": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"description": "Indicates whether this is a production or sandbox organization.\nSandbox organizations are linked to a parent production organization for testing purposes.\n",
|
|
543
|
+
"enum": [
|
|
544
|
+
"Production",
|
|
545
|
+
"Sandbox"
|
|
546
|
+
],
|
|
547
|
+
"nullable": true
|
|
548
|
+
},
|
|
549
|
+
"parent_production_org_id": {
|
|
550
|
+
"type": "string",
|
|
551
|
+
"description": "The ID of the parent production organization.\nOnly set for sandbox organizations to link them to their production counterpart.\n",
|
|
552
|
+
"nullable": true
|
|
553
|
+
},
|
|
554
|
+
"created_date": {
|
|
555
|
+
"type": "string",
|
|
556
|
+
"format": "date-time",
|
|
557
|
+
"description": "Organization created date"
|
|
558
|
+
},
|
|
559
|
+
"logo_url": {
|
|
560
|
+
"description": "Organization logo URL",
|
|
561
|
+
"type": "string",
|
|
562
|
+
"example": "https://epilot-playground-organization-data.s3.eu-central-1.amazonaws.com/epilot-logo.png",
|
|
563
|
+
"nullable": true
|
|
564
|
+
},
|
|
565
|
+
"logo_thumbnail_url": {
|
|
566
|
+
"description": "Organization logo thumbnail URL",
|
|
567
|
+
"type": "string",
|
|
568
|
+
"example": "https://epilot-playground-organization-data.s3.eu-central-1.amazonaws.com/epilot-logo.png",
|
|
569
|
+
"nullable": true
|
|
570
|
+
},
|
|
571
|
+
"signature": {
|
|
572
|
+
"type": "string",
|
|
573
|
+
"description": "Default email signature of organization",
|
|
574
|
+
"example": "<p>Thanks</p>",
|
|
575
|
+
"nullable": true
|
|
576
|
+
},
|
|
577
|
+
"is_unlicensed_org": {
|
|
578
|
+
"type": "boolean",
|
|
579
|
+
"example": false,
|
|
580
|
+
"nullable": true,
|
|
581
|
+
"deprecated": true
|
|
582
|
+
},
|
|
583
|
+
"style": {
|
|
584
|
+
"type": "object",
|
|
585
|
+
"description": "Organization style setting (e.g. font setting)",
|
|
586
|
+
"additionalProperties": true,
|
|
587
|
+
"nullable": true,
|
|
588
|
+
"deprecated": true
|
|
589
|
+
},
|
|
590
|
+
"type": {
|
|
591
|
+
"type": "string",
|
|
592
|
+
"deprecated": true,
|
|
593
|
+
"enum": [
|
|
594
|
+
"Vendor",
|
|
595
|
+
"Partner"
|
|
596
|
+
],
|
|
597
|
+
"nullable": true
|
|
598
|
+
},
|
|
599
|
+
"symbol": {
|
|
600
|
+
"deprecated": true,
|
|
601
|
+
"type": "string",
|
|
602
|
+
"example": "EPI",
|
|
603
|
+
"nullable": true
|
|
604
|
+
},
|
|
605
|
+
"pricing_tier": {
|
|
606
|
+
"deprecated": true,
|
|
607
|
+
"description": "Deprecated - Please use pricing tier api",
|
|
608
|
+
"type": "string",
|
|
609
|
+
"example": "professional",
|
|
610
|
+
"nullable": true
|
|
611
|
+
},
|
|
612
|
+
"free_user_limit": {
|
|
613
|
+
"deprecated": true,
|
|
614
|
+
"type": "number",
|
|
615
|
+
"example": 50,
|
|
616
|
+
"nullable": true
|
|
617
|
+
},
|
|
618
|
+
"tags": {
|
|
619
|
+
"type": "array",
|
|
620
|
+
"description": "Labels/tags associated with the organization for categorization and filtering.\nUsed internally to classify organizations (e.g., \"enterprise\", \"beta-tester\", \"test org\").\n",
|
|
621
|
+
"items": {
|
|
622
|
+
"type": "string",
|
|
623
|
+
"example": "test org"
|
|
624
|
+
},
|
|
625
|
+
"nullable": true
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
},
|
|
629
|
+
"InternalOrganization": {
|
|
630
|
+
"description": "Extended organization object with internal-only fields.\n\nIncludes all fields from the base Organization schema plus additional\ninternal metadata used for platform administration and support.\n",
|
|
631
|
+
"allOf": [
|
|
632
|
+
{
|
|
633
|
+
"$ref": "#/components/schemas/Organization"
|
|
634
|
+
}
|
|
635
|
+
]
|
|
636
|
+
},
|
|
637
|
+
"SettingKey": {
|
|
638
|
+
"type": "string",
|
|
639
|
+
"description": "A unique key identifying an organization setting.\nCommon setting keys include: double_opt_in, email_tracking, default_language, workflow_notifications\n",
|
|
640
|
+
"example": "double_opt_in"
|
|
641
|
+
},
|
|
642
|
+
"Settings": {
|
|
643
|
+
"type": "object",
|
|
644
|
+
"description": "A key-value map of all organization settings.\nKeys are setting identifiers and values can be any valid JSON type.\n",
|
|
645
|
+
"additionalProperties": true,
|
|
646
|
+
"example": {
|
|
647
|
+
"double_opt_in": {
|
|
648
|
+
"enabled": true
|
|
649
|
+
},
|
|
650
|
+
"email_tracking": {
|
|
651
|
+
"enabled": true,
|
|
652
|
+
"track_opens": true
|
|
653
|
+
},
|
|
654
|
+
"default_language": "de"
|
|
655
|
+
}
|
|
656
|
+
},
|
|
657
|
+
"SettingsValue": {
|
|
658
|
+
"description": "The value of an organization setting.\nCan be any valid JSON type: string, number, boolean, array, or object.\n",
|
|
659
|
+
"anyOf": [
|
|
660
|
+
{
|
|
661
|
+
"type": "string"
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"type": "number"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"type": "boolean"
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"type": "array",
|
|
671
|
+
"items": {
|
|
672
|
+
"type": "object",
|
|
673
|
+
"additionalProperties": true
|
|
674
|
+
}
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"type": "object",
|
|
678
|
+
"additionalProperties": true
|
|
679
|
+
}
|
|
680
|
+
],
|
|
681
|
+
"example": {
|
|
682
|
+
"enabled": true
|
|
683
|
+
}
|
|
684
|
+
},
|
|
685
|
+
"CreateOrganizationRequest": {
|
|
686
|
+
"type": "object",
|
|
687
|
+
"description": "Request payload for creating a new organization",
|
|
688
|
+
"properties": {
|
|
689
|
+
"organization_detail": {
|
|
690
|
+
"description": "Core organization information for the new tenant",
|
|
691
|
+
"type": "object",
|
|
692
|
+
"required": [
|
|
693
|
+
"name",
|
|
694
|
+
"type",
|
|
695
|
+
"pricing_tier_id"
|
|
696
|
+
],
|
|
697
|
+
"properties": {
|
|
698
|
+
"name": {
|
|
699
|
+
"description": "Display name for the organization",
|
|
700
|
+
"type": "string",
|
|
701
|
+
"example": "epilot"
|
|
702
|
+
},
|
|
703
|
+
"email_address": {
|
|
704
|
+
"description": "Primary contact email for the organization",
|
|
705
|
+
"type": "string",
|
|
706
|
+
"example": "epilot@epilot.cloud"
|
|
707
|
+
},
|
|
708
|
+
"type": {
|
|
709
|
+
"description": "Organization type classification.\n- Vendor: Primary organization type for epilot customers\n- Partner: Partner organization type\n",
|
|
710
|
+
"type": "string",
|
|
711
|
+
"example": "Vendor"
|
|
712
|
+
},
|
|
713
|
+
"organization_use": {
|
|
714
|
+
"description": "Whether this is a production or sandbox environment.\nSandbox organizations are for testing and linked to a production org.\n",
|
|
715
|
+
"type": "string",
|
|
716
|
+
"enum": [
|
|
717
|
+
"Production",
|
|
718
|
+
"Sandbox"
|
|
719
|
+
]
|
|
720
|
+
},
|
|
721
|
+
"pricing_tier_id": {
|
|
722
|
+
"description": "The ULID of the pricing tier to assign to this organization.\nDetermines feature access and billing.\n",
|
|
723
|
+
"type": "string",
|
|
724
|
+
"example": "01GEKHZHSN19KK10ZS92Y3WY9B"
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
},
|
|
728
|
+
"owner_user": {
|
|
729
|
+
"description": "Initial owner user details.\nThis user will receive an invitation email to complete registration\nand become the organization administrator.\n",
|
|
730
|
+
"type": "object",
|
|
731
|
+
"required": [
|
|
732
|
+
"email_address"
|
|
733
|
+
],
|
|
734
|
+
"properties": {
|
|
735
|
+
"full_name": {
|
|
736
|
+
"description": "Full name of the owner user",
|
|
737
|
+
"type": "string",
|
|
738
|
+
"example": "Ny Huynh"
|
|
739
|
+
},
|
|
740
|
+
"email_address": {
|
|
741
|
+
"description": "Email address for the invitation (must be unique in the platform)",
|
|
742
|
+
"type": "string",
|
|
743
|
+
"example": "ny.huynhthi@axonactive.com"
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
},
|
|
749
|
+
"DataPointsResponse": {
|
|
750
|
+
"type": "array",
|
|
751
|
+
"description": "List of data point metrics for all organizations",
|
|
752
|
+
"items": {
|
|
753
|
+
"$ref": "#/components/schemas/DataPoint"
|
|
754
|
+
}
|
|
755
|
+
},
|
|
756
|
+
"DataPoint": {
|
|
757
|
+
"type": "object",
|
|
758
|
+
"description": "Data point metrics for a single organization, used for usage tracking and billing",
|
|
759
|
+
"properties": {
|
|
760
|
+
"id": {
|
|
761
|
+
"description": "The organization ID (numeric format)",
|
|
762
|
+
"type": "number",
|
|
763
|
+
"example": 206801
|
|
764
|
+
},
|
|
765
|
+
"max_customer": {
|
|
766
|
+
"description": "Maximum number of customer entities recorded in the previous month.\nUsed as a high-water mark for billing calculations.\n",
|
|
767
|
+
"type": "number",
|
|
768
|
+
"example": 10
|
|
769
|
+
},
|
|
770
|
+
"actual_customer": {
|
|
771
|
+
"description": "Current count of customer entities in the organization.\nRepresents the actual usage at the time of the query.\n",
|
|
772
|
+
"type": "number",
|
|
773
|
+
"example": 10
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
"OrganizationToCleanup": {
|
|
778
|
+
"type": "object",
|
|
779
|
+
"description": "Represents an organization that has been marked for deletion and requires cleanup.\nContains metadata about the deletion request.\n",
|
|
780
|
+
"required": [
|
|
781
|
+
"org_id",
|
|
782
|
+
"deleted_at",
|
|
783
|
+
"deleted_by"
|
|
784
|
+
],
|
|
785
|
+
"properties": {
|
|
786
|
+
"org_id": {
|
|
787
|
+
"$ref": "#/components/schemas/OrganizationId"
|
|
788
|
+
},
|
|
789
|
+
"deleted_at": {
|
|
790
|
+
"description": "Timestamp when the organization was marked for deletion",
|
|
791
|
+
"type": "string",
|
|
792
|
+
"format": "date-time",
|
|
793
|
+
"example": "2021-06-01T00:00:00Z"
|
|
794
|
+
},
|
|
795
|
+
"deleted_by": {
|
|
796
|
+
"description": "User ID of the person who initiated the deletion",
|
|
797
|
+
"type": "string",
|
|
798
|
+
"example": "123456"
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
},
|
|
802
|
+
"OrganizationCleanupStatus": {
|
|
803
|
+
"type": "object",
|
|
804
|
+
"description": "Records the cleanup status reported by a specific service for an organization.\nEach service that stores organization data reports its cleanup operations here.\n",
|
|
805
|
+
"required": [
|
|
806
|
+
"org_id",
|
|
807
|
+
"service_name"
|
|
808
|
+
],
|
|
809
|
+
"properties": {
|
|
810
|
+
"org_id": {
|
|
811
|
+
"$ref": "#/components/schemas/OrganizationId"
|
|
812
|
+
},
|
|
813
|
+
"service_name": {
|
|
814
|
+
"description": "Name of the service reporting its cleanup status",
|
|
815
|
+
"type": "string",
|
|
816
|
+
"example": "organization-api"
|
|
817
|
+
},
|
|
818
|
+
"operations": {
|
|
819
|
+
"description": "List of cleanup operations performed by the service.\nEach operation describes what action was taken on which resource.\n",
|
|
820
|
+
"type": "array",
|
|
821
|
+
"items": {
|
|
822
|
+
"type": "object",
|
|
823
|
+
"additionalProperties": true,
|
|
824
|
+
"properties": {
|
|
825
|
+
"action": {
|
|
826
|
+
"description": "The type of cleanup action performed.\nCommon values: Delete, Archive, Purge\n",
|
|
827
|
+
"type": "string",
|
|
828
|
+
"example": "Delete"
|
|
829
|
+
},
|
|
830
|
+
"resource": {
|
|
831
|
+
"description": "The resource that was cleaned up.\nCan be a table name, S3 bucket, or other resource identifier.\n",
|
|
832
|
+
"type": "string",
|
|
833
|
+
"example": "OrgTable"
|
|
834
|
+
},
|
|
835
|
+
"extra_info": {
|
|
836
|
+
"description": "Additional context about the cleanup operation",
|
|
837
|
+
"anyOf": [
|
|
838
|
+
{
|
|
839
|
+
"type": "string"
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"type": "number"
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
"type": "boolean"
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
"type": "array",
|
|
849
|
+
"items": {
|
|
850
|
+
"type": "object",
|
|
851
|
+
"additionalProperties": true
|
|
852
|
+
}
|
|
853
|
+
},
|
|
854
|
+
{
|
|
855
|
+
"type": "object",
|
|
856
|
+
"additionalProperties": true
|
|
857
|
+
}
|
|
858
|
+
]
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
},
|
|
862
|
+
"example": [
|
|
863
|
+
{
|
|
864
|
+
"action": "Delete",
|
|
865
|
+
"resource": "OrgTable",
|
|
866
|
+
"extra_info": "pk: ORG#739224"
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"action": "Archive",
|
|
870
|
+
"resource": "s3://my-bucket",
|
|
871
|
+
"extra_info": "my-bucket/my-key.txt"
|
|
872
|
+
}
|
|
873
|
+
]
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
},
|
|
877
|
+
"HubspotCompany": {
|
|
878
|
+
"type": "object",
|
|
879
|
+
"description": "Represents a company record from HubSpot CRM synchronized to the epilot data warehouse.\nUsed for CRM integration and organization mapping.\n",
|
|
880
|
+
"properties": {
|
|
881
|
+
"company_id": {
|
|
882
|
+
"type": "string",
|
|
883
|
+
"description": "The unique HubSpot company identifier",
|
|
884
|
+
"example": "12345678901"
|
|
885
|
+
},
|
|
886
|
+
"company_name": {
|
|
887
|
+
"type": "string",
|
|
888
|
+
"nullable": true,
|
|
889
|
+
"description": "The display name of the company in HubSpot",
|
|
890
|
+
"example": "Acme Corp"
|
|
891
|
+
},
|
|
892
|
+
"domain": {
|
|
893
|
+
"type": "string",
|
|
894
|
+
"nullable": true,
|
|
895
|
+
"description": "The primary web domain associated with the company",
|
|
896
|
+
"example": "acme.com"
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
},
|
|
900
|
+
"HubspotCompaniesResponse": {
|
|
901
|
+
"type": "object",
|
|
902
|
+
"description": "Response containing a list of HubSpot companies matching the search criteria",
|
|
903
|
+
"properties": {
|
|
904
|
+
"results": {
|
|
905
|
+
"type": "array",
|
|
906
|
+
"description": "List of HubSpot companies matching the query",
|
|
907
|
+
"items": {
|
|
908
|
+
"$ref": "#/components/schemas/HubspotCompany"
|
|
909
|
+
}
|
|
910
|
+
},
|
|
911
|
+
"total": {
|
|
912
|
+
"type": "integer",
|
|
913
|
+
"description": "Total number of companies in the response",
|
|
914
|
+
"example": 10
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
},
|
|
918
|
+
"HubspotOrganizationData": {
|
|
919
|
+
"type": "object",
|
|
920
|
+
"description": "HubSpot company data associated with an epilot organization.\nContains business metrics and CRM properties synced from HubSpot.\n",
|
|
921
|
+
"properties": {
|
|
922
|
+
"company_id": {
|
|
923
|
+
"type": "string",
|
|
924
|
+
"description": "The unique HubSpot company identifier",
|
|
925
|
+
"example": "5278308807"
|
|
926
|
+
},
|
|
927
|
+
"company_name": {
|
|
928
|
+
"type": "string",
|
|
929
|
+
"nullable": true,
|
|
930
|
+
"description": "The display name of the company in HubSpot",
|
|
931
|
+
"example": "Stadtwerke Meerbusch Willich Netz"
|
|
932
|
+
},
|
|
933
|
+
"domain": {
|
|
934
|
+
"type": "string",
|
|
935
|
+
"nullable": true,
|
|
936
|
+
"description": "The primary web domain associated with the company",
|
|
937
|
+
"example": "stadtwerke-service.de"
|
|
938
|
+
},
|
|
939
|
+
"current_mrr": {
|
|
940
|
+
"type": "string",
|
|
941
|
+
"nullable": true,
|
|
942
|
+
"description": "Current Monthly Recurring Revenue",
|
|
943
|
+
"example": "11033.33"
|
|
944
|
+
},
|
|
945
|
+
"potential_mrr": {
|
|
946
|
+
"type": "string",
|
|
947
|
+
"nullable": true,
|
|
948
|
+
"description": "Potential Monthly Recurring Revenue",
|
|
949
|
+
"example": "20000"
|
|
950
|
+
},
|
|
951
|
+
"company_size": {
|
|
952
|
+
"type": "string",
|
|
953
|
+
"nullable": true,
|
|
954
|
+
"description": "Company size classification",
|
|
955
|
+
"example": "Large"
|
|
956
|
+
},
|
|
957
|
+
"pricing_tier": {
|
|
958
|
+
"type": "string",
|
|
959
|
+
"nullable": true,
|
|
960
|
+
"description": "Current pricing tier",
|
|
961
|
+
"example": "Professional"
|
|
962
|
+
},
|
|
963
|
+
"lifecyclestage": {
|
|
964
|
+
"type": "string",
|
|
965
|
+
"nullable": true,
|
|
966
|
+
"description": "HubSpot lifecycle stage",
|
|
967
|
+
"example": "customer"
|
|
968
|
+
},
|
|
969
|
+
"industry": {
|
|
970
|
+
"type": "string",
|
|
971
|
+
"nullable": true,
|
|
972
|
+
"description": "Industry classification",
|
|
973
|
+
"example": "Energiedienstleister"
|
|
974
|
+
},
|
|
975
|
+
"numberofemployees": {
|
|
976
|
+
"type": "string",
|
|
977
|
+
"nullable": true,
|
|
978
|
+
"description": "Number of employees",
|
|
979
|
+
"example": "200"
|
|
980
|
+
},
|
|
981
|
+
"customer_number": {
|
|
982
|
+
"type": "string",
|
|
983
|
+
"nullable": true,
|
|
984
|
+
"description": "epilot customer number",
|
|
985
|
+
"example": "10031"
|
|
986
|
+
},
|
|
987
|
+
"no_of_users": {
|
|
988
|
+
"type": "string",
|
|
989
|
+
"nullable": true,
|
|
990
|
+
"description": "Number of active users",
|
|
991
|
+
"example": "34"
|
|
992
|
+
},
|
|
993
|
+
"activation_rate": {
|
|
994
|
+
"type": "string",
|
|
995
|
+
"nullable": true,
|
|
996
|
+
"description": "User activation rate",
|
|
997
|
+
"example": "0.647059"
|
|
998
|
+
},
|
|
999
|
+
"active_features": {
|
|
1000
|
+
"type": "string",
|
|
1001
|
+
"nullable": true,
|
|
1002
|
+
"description": "List of active features",
|
|
1003
|
+
"example": "Installer Portal"
|
|
1004
|
+
},
|
|
1005
|
+
"usecases_implemented": {
|
|
1006
|
+
"type": "string",
|
|
1007
|
+
"nullable": true,
|
|
1008
|
+
"description": "Implemented use cases",
|
|
1009
|
+
"example": "GRID: Installations (MGA);GRID: House Connections"
|
|
1010
|
+
},
|
|
1011
|
+
"buyer_journey": {
|
|
1012
|
+
"type": "string",
|
|
1013
|
+
"nullable": true,
|
|
1014
|
+
"description": "Current buyer's journey stage",
|
|
1015
|
+
"example": "Expansion-Ready"
|
|
1016
|
+
},
|
|
1017
|
+
"country": {
|
|
1018
|
+
"type": "string",
|
|
1019
|
+
"nullable": true,
|
|
1020
|
+
"description": "Company country",
|
|
1021
|
+
"example": "Germany"
|
|
1022
|
+
},
|
|
1023
|
+
"city": {
|
|
1024
|
+
"type": "string",
|
|
1025
|
+
"nullable": true,
|
|
1026
|
+
"description": "Company city",
|
|
1027
|
+
"example": "Willich"
|
|
1028
|
+
},
|
|
1029
|
+
"properties": {
|
|
1030
|
+
"type": "object",
|
|
1031
|
+
"additionalProperties": true,
|
|
1032
|
+
"description": "Full HubSpot properties object with all available fields"
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
},
|
|
1036
|
+
"FeatureSettings": {
|
|
1037
|
+
"type": "object",
|
|
1038
|
+
"description": "Feature settings metadata served to frontend applications.",
|
|
1039
|
+
"required": [
|
|
1040
|
+
"version",
|
|
1041
|
+
"feature_flags"
|
|
1042
|
+
],
|
|
1043
|
+
"properties": {
|
|
1044
|
+
"version": {
|
|
1045
|
+
"type": "string",
|
|
1046
|
+
"description": "Schema version for backwards compatibility",
|
|
1047
|
+
"example": "1.0.0"
|
|
1048
|
+
},
|
|
1049
|
+
"feature_flags": {
|
|
1050
|
+
"type": "array",
|
|
1051
|
+
"description": "Feature flag metadata for the settings page",
|
|
1052
|
+
"items": {
|
|
1053
|
+
"$ref": "#/components/schemas/FeatureFlagMetadata"
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
"FeatureFlagMetadata": {
|
|
1059
|
+
"type": "object",
|
|
1060
|
+
"description": "Metadata for a single feature flag toggle",
|
|
1061
|
+
"required": [
|
|
1062
|
+
"feature_name",
|
|
1063
|
+
"visibility_rules"
|
|
1064
|
+
],
|
|
1065
|
+
"properties": {
|
|
1066
|
+
"feature_name": {
|
|
1067
|
+
"type": "string",
|
|
1068
|
+
"description": "Unique identifier matching the organization setting key",
|
|
1069
|
+
"example": "canary"
|
|
1070
|
+
},
|
|
1071
|
+
"title": {
|
|
1072
|
+
"$ref": "#/components/schemas/I18nString"
|
|
1073
|
+
},
|
|
1074
|
+
"description": {
|
|
1075
|
+
"$ref": "#/components/schemas/I18nString"
|
|
1076
|
+
},
|
|
1077
|
+
"badge": {
|
|
1078
|
+
"type": "string",
|
|
1079
|
+
"description": "Badge label shown next to the feature toggle",
|
|
1080
|
+
"enum": [
|
|
1081
|
+
"alpha",
|
|
1082
|
+
"beta",
|
|
1083
|
+
"new",
|
|
1084
|
+
"advanced",
|
|
1085
|
+
"experiment",
|
|
1086
|
+
"deprecated"
|
|
1087
|
+
]
|
|
1088
|
+
},
|
|
1089
|
+
"confetti": {
|
|
1090
|
+
"type": "boolean",
|
|
1091
|
+
"description": "Whether to show confetti animation when enabled"
|
|
1092
|
+
},
|
|
1093
|
+
"one_way": {
|
|
1094
|
+
"type": "boolean",
|
|
1095
|
+
"description": "Whether the toggle can only be turned on (not off)"
|
|
1096
|
+
},
|
|
1097
|
+
"reverse_checked": {
|
|
1098
|
+
"type": "boolean",
|
|
1099
|
+
"description": "Whether the toggle value is inverted (checked = disabled)"
|
|
1100
|
+
},
|
|
1101
|
+
"is_visible_for_partner": {
|
|
1102
|
+
"type": "boolean",
|
|
1103
|
+
"description": "Whether this feature is visible for partner organizations"
|
|
1104
|
+
},
|
|
1105
|
+
"visibility_rules": {
|
|
1106
|
+
"type": "array",
|
|
1107
|
+
"description": "Rules that must ALL pass for this feature to be visible (implicit AND)",
|
|
1108
|
+
"items": {
|
|
1109
|
+
"$ref": "#/components/schemas/VisibilityRule"
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
},
|
|
1114
|
+
"I18nString": {
|
|
1115
|
+
"type": "object",
|
|
1116
|
+
"description": "Internationalized string with a translation key and optional default value",
|
|
1117
|
+
"required": [
|
|
1118
|
+
"key"
|
|
1119
|
+
],
|
|
1120
|
+
"properties": {
|
|
1121
|
+
"key": {
|
|
1122
|
+
"type": "string",
|
|
1123
|
+
"description": "Translation key for i18n lookup",
|
|
1124
|
+
"example": "canary_setting.title"
|
|
1125
|
+
},
|
|
1126
|
+
"default_value": {
|
|
1127
|
+
"type": "string",
|
|
1128
|
+
"description": "Fallback value when translation is not available",
|
|
1129
|
+
"example": "Canary Updates"
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
},
|
|
1133
|
+
"VisibilityRule": {
|
|
1134
|
+
"type": "object",
|
|
1135
|
+
"description": "A rule that determines feature visibility. Rules are combined with AND logic\nat the top level. Supports boolean combinators (and, or, not) for complex logic.\n",
|
|
1136
|
+
"required": [
|
|
1137
|
+
"type"
|
|
1138
|
+
],
|
|
1139
|
+
"properties": {
|
|
1140
|
+
"type": {
|
|
1141
|
+
"type": "string",
|
|
1142
|
+
"description": "The rule type discriminator",
|
|
1143
|
+
"enum": [
|
|
1144
|
+
"always",
|
|
1145
|
+
"never",
|
|
1146
|
+
"advanced_mode",
|
|
1147
|
+
"pricing_tier",
|
|
1148
|
+
"feature_flag",
|
|
1149
|
+
"permission",
|
|
1150
|
+
"setting_enabled",
|
|
1151
|
+
"flag_enabled",
|
|
1152
|
+
"not",
|
|
1153
|
+
"and",
|
|
1154
|
+
"or"
|
|
1155
|
+
]
|
|
1156
|
+
},
|
|
1157
|
+
"setting_key": {
|
|
1158
|
+
"type": "string",
|
|
1159
|
+
"description": "Setting key for pricing_tier and setting_enabled rules"
|
|
1160
|
+
},
|
|
1161
|
+
"flag_name": {
|
|
1162
|
+
"type": "string",
|
|
1163
|
+
"description": "Flag name for feature_flag and flag_enabled rules"
|
|
1164
|
+
},
|
|
1165
|
+
"action": {
|
|
1166
|
+
"type": "string",
|
|
1167
|
+
"description": "Permission action for permission rules"
|
|
1168
|
+
},
|
|
1169
|
+
"resource": {
|
|
1170
|
+
"type": "string",
|
|
1171
|
+
"description": "Optional resource for permission rules"
|
|
1172
|
+
},
|
|
1173
|
+
"rule": {
|
|
1174
|
+
"$ref": "#/components/schemas/VisibilityRule"
|
|
1175
|
+
},
|
|
1176
|
+
"rules": {
|
|
1177
|
+
"type": "array",
|
|
1178
|
+
"description": "Child rules for and/or combinators",
|
|
1179
|
+
"items": {
|
|
1180
|
+
"$ref": "#/components/schemas/VisibilityRule"
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1186
|
+
},
|
|
1187
|
+
"servers": [
|
|
1188
|
+
{
|
|
1189
|
+
"url": "https://organization-v2.sls.epilot.io"
|
|
1190
|
+
}
|
|
1191
|
+
]
|
|
1192
|
+
}
|