axhub-sdk 0.5.0 → 0.7.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.
- checksums.yaml +4 -4
- data/README.md +16 -41
- data/lib/axhub_sdk/version.rb +1 -1
- data/lib/axhub_sdk.rb +78 -35
- metadata +2 -13
- data/lib/axhub_sdk/data/client.rb +0 -250
- data/lib/axhub_sdk/data/discover.rb +0 -148
- data/lib/axhub_sdk/data/dsl/ops.rb +0 -150
- data/lib/axhub_sdk/data/dsl/schema.rb +0 -66
- data/lib/axhub_sdk/data/dsl/validation.rb +0 -60
- data/lib/axhub_sdk/data/errors.rb +0 -68
- data/lib/axhub_sdk/data/pagination.rb +0 -100
- data/lib/axhub_sdk/data/projection.rb +0 -50
- data/lib/axhub_sdk/data/schema_cache.rb +0 -105
- data/lib/axhub_sdk/data/where_serializer.rb +0 -84
- data/lib/axhub_sdk/data.rb +0 -67
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af207a4a3d83fa1b8f8fb7f66baa8a6f880877f0971ad6228ab65a9daede4e5e
|
|
4
|
+
data.tar.gz: 478545d4c9b51589fd403141e578f38e2f1189b0dfce8361a4963daae52eea0b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f503acb2c6d7b6daae9bac7d9311be9e5fa9e0e5cb51f089a2309be1c01cfa17803c52824d96b039158439c6c9d5c17d3b89789992804797c8599d3ebcb10b38
|
|
7
|
+
data.tar.gz: 39cf39bda82f472d156b6c10a575b3e6c88881b9610e349eb61000949b55c23e9a311b9f564931d35ba3260d2016c984bed9039c5cc8fc7975789d27c277fd79
|
data/README.md
CHANGED
|
@@ -25,7 +25,7 @@ export AXHUB_TENANT_SLUG="test"
|
|
|
25
25
|
|
|
26
26
|
PAT mode is explicit: `token_type: :pat` sends `X-Api-Key`. JWT mode is `token_type: :jwt` and sends `Authorization: Bearer`.
|
|
27
27
|
|
|
28
|
-
## Agent quickstart: create a disposable app and
|
|
28
|
+
## Agent quickstart: create a disposable app and enable its database
|
|
29
29
|
|
|
30
30
|
```ruby
|
|
31
31
|
require 'axhub_sdk'
|
|
@@ -44,7 +44,6 @@ raise 'authGetApiV1Me did not return a user id' if user_id.nil? || user_id.empty
|
|
|
44
44
|
|
|
45
45
|
suffix = (Time.now.to_f * 1000).to_i.to_s[-8, 8]
|
|
46
46
|
slug = "agent-rb-#{suffix}"
|
|
47
|
-
table = "items#{suffix[-6, 6]}"
|
|
48
47
|
|
|
49
48
|
app = client.apps.create(
|
|
50
49
|
slug: slug,
|
|
@@ -57,33 +56,22 @@ app = client.apps.create(
|
|
|
57
56
|
)
|
|
58
57
|
app_id = app['id']
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
table_name: table,
|
|
65
|
-
owner_column: 'owner_id',
|
|
66
|
-
columns: [
|
|
67
|
-
{ name: 'owner_id', type: 'uuid', nullable: false },
|
|
68
|
-
{ name: 'title', type: 'text', nullable: false },
|
|
69
|
-
{ name: 'status', type: 'text', nullable: false }
|
|
70
|
-
]
|
|
71
|
-
}
|
|
72
|
-
)
|
|
59
|
+
# Enable raw DB mode: a dedicated Postgres role is issued and DATABASE_URL is
|
|
60
|
+
# injected into the app on its next deploy. The app then does row CRUD over
|
|
61
|
+
# direct SQL with its own pg driver.
|
|
62
|
+
client.request('appsPostApiV1AppsByAppIDRawDb', path_params: { appID: app_id }, body: {})
|
|
73
63
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
)
|
|
79
|
-
puts "created #{app_id} #{table} #{row['id']}"
|
|
64
|
+
# Admin introspection/browse of the physical DB.
|
|
65
|
+
tables = client.request('schemaGetApiV1AppsByAppIDDbTables', path_params: { appID: app_id })
|
|
66
|
+
|
|
67
|
+
puts "created #{app_id} #{tables}"
|
|
80
68
|
```
|
|
81
69
|
|
|
82
70
|
## How to call the full API surface
|
|
83
71
|
|
|
84
72
|
- High-level app create: `client.apps.create(**body)` uses `default_tenant_id`.
|
|
85
73
|
- Any route by operation id: `client.request(operation_id, path_params: {}, query: {}, body: nil)`.
|
|
86
|
-
- Generated facade: `client.data.
|
|
74
|
+
- Generated facade: `client.data.schema_get_api_v1_apps_by_app_id_db_tables(path_params: {})`.
|
|
87
75
|
- Route inventory: `AxHub::ROUTES`, `AxHub::CONTEXT_ROUTES`, `AxHub::ERROR_CODES`, and `AxHub::OPERATION_METHODS`.
|
|
88
76
|
- Errors: catch `AxHub::Error` and branch on `code`, `category`, `status`, and `retryable`.
|
|
89
77
|
|
|
@@ -95,28 +83,15 @@ Use the high-level `apps.create` helper for the first app, then use generated op
|
|
|
95
83
|
|------|--------------|----------------------|-------------------|
|
|
96
84
|
| Create env var | `appsPostApiV1AppsByAppIDEnvVars` | `appID` | `env.list` includes `key` |
|
|
97
85
|
| Delete env var | `appsDeleteApiV1AppsByAppIDEnvVarsByKey` | `appID`, `key` | `env.list` no longer includes `key` |
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
| Add table grant | `schemaPostApiV1AppsByAppIDTablesByTableNameGrants` | `appID`, `tableName` | response has grant `id` |
|
|
103
|
-
| List grants | `schemaGetApiV1AppsByAppIDTablesByTableNameGrants` | `appID`, `tableName` | list contains grant `id` |
|
|
104
|
-
| Revoke/delete grant | `schemaDeleteApiV1AppsByAppIDTablesByTableNameGrantsByGrantID` | `appID`, `tableName`, `grantID` | list still contains grant with `revokedAt` set |
|
|
105
|
-
| Insert row | `schemaPostDataByTenantSlugByAppSlugByTable` | `tenantSlug`, `appSlug`, `table` | response has row `id` and submitted fields |
|
|
106
|
-
| Get row | `schemaGetDataByTenantSlugByAppSlugByTableById` | `tenantSlug`, `appSlug`, `table`, `id` | response row `id` matches |
|
|
107
|
-
| Update row | `schemaPatchDataByTenantSlugByAppSlugByTableById` | `tenantSlug`, `appSlug`, `table`, `id` | response contains patched fields |
|
|
108
|
-
| List rows | `schemaGetDataByTenantSlugByAppSlugByTable` | `tenantSlug`, `appSlug`, `table` | `items` contains row `id` |
|
|
109
|
-
| Count rows | `schemaGetDataByTenantSlugByAppSlugByTableCount` | `tenantSlug`, `appSlug`, `table` | `count` matches expected fixture count |
|
|
110
|
-
| Browse admin rows | `schemaGetApiV1AppsByAppIDTablesByTableNameRows` | `appID`, `tableName` | response has `rows` and `columns` arrays |
|
|
111
|
-
| Delete row | `schemaDeleteDataByTenantSlugByAppSlugByTableById` | `tenantSlug`, `appSlug`, `table`, `id` | follow-up get returns `404` or `410` |
|
|
112
|
-
| Delete table | `schemaDeleteApiV1AppsByAppIDTablesByTableName` | `appID`, `tableName` | follow-up inspect returns `404` or `410` |
|
|
86
|
+
| Enable raw DB | `appsPostApiV1AppsByAppIDRawDb` | `appID` | dedicated Postgres role issued; `DATABASE_URL` injected on next deploy |
|
|
87
|
+
| Disable raw DB | `appsDeleteApiV1AppsByAppIDRawDb` | `appID` | raw DB mode turned off (data preserved) |
|
|
88
|
+
| List DB tables | `schemaGetApiV1AppsByAppIDDbTables` | `appID` | response lists physical `information_schema` tables |
|
|
89
|
+
| Browse DB rows | `schemaGetApiV1AppsByAppIDDbTablesByTableRows` | `appID`, `table` | response has `rows` array |
|
|
113
90
|
| Delete app | `appsDeleteApiV1AppsByAppID`, then `appsDeleteApiV1AppsByAppIDPermanent` | `appID` | app is soft-deleted, then permanently deleted |
|
|
114
91
|
|
|
115
92
|
Important semantics from live QA:
|
|
116
93
|
|
|
117
|
-
-
|
|
118
|
-
- Table delete is hard enough for client assertions: a follow-up table inspect returns `404 not_found` or `410`.
|
|
119
|
-
- Table grant delete is a soft revoke: the grant can remain in `listGrants`, but the same grant id must have `revokedAt` set. Do not assert disappearance.
|
|
94
|
+
- App database access is raw: `appsPostApiV1AppsByAppIDRawDb` issues a dedicated Postgres role and injects `DATABASE_URL` on the next deploy (the connection string is never returned). The app does its own row CRUD via direct SQL; the SDK exposes admin introspection/browse only (`schemaGetApiV1AppsByAppIDDbTables` / `...DbTablesByTableRows`).
|
|
120
95
|
- Deployment creation without a connected git/bootstrap source can return a precondition-style 4xx. That verifies SDK error handling, not a deploy bug.
|
|
121
96
|
|
|
122
97
|
|
|
@@ -126,7 +101,7 @@ The SDK behavior documented here reflects live production QA against the AX Hub
|
|
|
126
101
|
|
|
127
102
|
- Tenant used for destructive QA: slug `test`, id `cc1e58f1-8e46-4ac7-96c1-190c4cdd5b70`.
|
|
128
103
|
- Go, Java, Kotlin, Python, and Ruby each ran the generated all-operation sweep against 189 backend routes: SDK exceptions `0`, backend 5xx `0`.
|
|
129
|
-
- Go, Java, Kotlin, Python, and Ruby each passed strict destructive DB QA:
|
|
104
|
+
- Go, Java, Kotlin, Python, and Ruby each passed strict destructive DB QA: the flow exercised the raw-DB enable/reset lifecycle (instead of the removed dynamic-table flow), then deleted the app and re-read to prove deletion semantics.
|
|
130
105
|
- Node ran the full production mutation suite and a real app bootstrap/deploy wait. Deployment id `d3a48ce3-0f9c-4bab-aa07-863c31c44460` finished `succeeded`, then the app was deleted permanently.
|
|
131
106
|
|
|
132
107
|
Do not print tokens. Use short-lived PATs for agent QA and revoke them after the run.
|
data/lib/axhub_sdk/version.rb
CHANGED
data/lib/axhub_sdk.rb
CHANGED
|
@@ -30,20 +30,26 @@ module AxHub
|
|
|
30
30
|
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/access", 'tag' => "Apps", 'operationId' => "appsDeleteApiV1AppsByAppIDAccess" },
|
|
31
31
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/access", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDAccess" },
|
|
32
32
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/access/me", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsByAppIDAccessMe" },
|
|
33
|
+
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/archive", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDArchive" },
|
|
33
34
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/comments", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsByAppIDComments" },
|
|
34
35
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/comments", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDComments" },
|
|
36
|
+
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/db/tables", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDDbTables" },
|
|
37
|
+
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/db/tables/{table}/rows", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDDbTablesByTableRows" },
|
|
35
38
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/deployments", 'tag' => "Deploy", 'operationId' => "deployGetApiV1AppsByAppIDDeployments" },
|
|
36
39
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/deployments", 'tag' => "Deploy", 'operationId' => "deployPostApiV1AppsByAppIDDeployments" },
|
|
37
40
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/deployments/{did}", 'tag' => "Deploy", 'operationId' => "deployGetApiV1AppsByAppIDDeploymentsByDid" },
|
|
38
41
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/deployments/{did}/cancel", 'tag' => "Deploy", 'operationId' => "deployPostApiV1AppsByAppIDDeploymentsByDidCancel" },
|
|
39
42
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/deployments/{did}/rollback", 'tag' => "Deploy", 'operationId' => "deployPostApiV1AppsByAppIDDeploymentsByDidRollback" },
|
|
43
|
+
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/diagnosis", 'tag' => "Deploy", 'operationId' => "deployGetApiV1AppsByAppIDDiagnosis" },
|
|
40
44
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/env-vars", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsByAppIDEnvVars" },
|
|
41
45
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/env-vars", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDEnvVars" },
|
|
42
46
|
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/env-vars/{key}", 'tag' => "Apps", 'operationId' => "appsDeleteApiV1AppsByAppIDEnvVarsByKey" },
|
|
47
|
+
{ 'method' => "PUT", 'path' => "/api/v1/apps/{appID}/env-vars/{key}/staging-value", 'tag' => "Apps", 'operationId' => "appsPutApiV1AppsByAppIDEnvVarsByKeyStagingValue" },
|
|
43
48
|
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/git-connection", 'tag' => "Deploy", 'operationId' => "deployDeleteApiV1AppsByAppIDGitConnection" },
|
|
44
49
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/git-connection", 'tag' => "Deploy", 'operationId' => "deployGetApiV1AppsByAppIDGitConnection" },
|
|
45
50
|
{ 'method' => "PATCH", 'path' => "/api/v1/apps/{appID}/git-connection", 'tag' => "Deploy", 'operationId' => "deployPatchApiV1AppsByAppIDGitConnection" },
|
|
46
51
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/git-connection", 'tag' => "Deploy", 'operationId' => "deployPostApiV1AppsByAppIDGitConnection" },
|
|
52
|
+
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/git/github/connect", 'tag' => "Deploy", 'operationId' => "deployPostApiV1AppsByAppIDGitGithubConnect" },
|
|
47
53
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/git/github/install/start", 'tag' => "Deploy", 'operationId' => "deployGetApiV1AppsByAppIDGitGithubInstallStart" },
|
|
48
54
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/icon-dark/upload-url", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDIconDarkUploadUrl" },
|
|
49
55
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/icon/upload-url", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDIconUploadUrl" },
|
|
@@ -56,25 +62,22 @@ module AxHub
|
|
|
56
62
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/members", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsByAppIDMembers" },
|
|
57
63
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/oauth-clients", 'tag' => "Auth", 'operationId' => "authPostApiV1AppsByAppIDOauthClients" },
|
|
58
64
|
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/permanent", 'tag' => "Apps", 'operationId' => "appsDeleteApiV1AppsByAppIDPermanent" },
|
|
65
|
+
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/promotions/{requestID}/retry", 'tag' => "Deploy", 'operationId' => "deployPostApiV1AppsByAppIDPromotionsByRequestIDRetry" },
|
|
66
|
+
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/raw-db", 'tag' => "Apps", 'operationId' => "appsDeleteApiV1AppsByAppIDRawDb" },
|
|
67
|
+
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/raw-db", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDRawDb" },
|
|
68
|
+
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/reactivate", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDReactivate" },
|
|
69
|
+
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/releases", 'tag' => "Deploy", 'operationId' => "deployGetApiV1AppsByAppIDReleases" },
|
|
70
|
+
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/releases/promote-preflight", 'tag' => "Deploy", 'operationId' => "deployGetApiV1AppsByAppIDReleasesPromotePreflight" },
|
|
59
71
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/resume", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDResume" },
|
|
60
72
|
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/review-requests", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsByAppIDReviewRequests" },
|
|
61
73
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/review-requests", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDReviewRequests" },
|
|
74
|
+
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/staging", 'tag' => "Deploy", 'operationId' => "deployDeleteApiV1AppsByAppIDStaging" },
|
|
75
|
+
{ 'method' => "PUT", 'path' => "/api/v1/apps/{appID}/staging", 'tag' => "Deploy", 'operationId' => "deployPutApiV1AppsByAppIDStaging" },
|
|
62
76
|
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/suspend", 'tag' => "Apps", 'operationId' => "appsPostApiV1AppsByAppIDSuspend" },
|
|
63
|
-
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/tables", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDTables" },
|
|
64
|
-
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/tables", 'tag' => "Schema", 'operationId' => "schemaPostApiV1AppsByAppIDTables" },
|
|
65
|
-
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/tables/{tableName}", 'tag' => "Schema", 'operationId' => "schemaDeleteApiV1AppsByAppIDTablesByTableName" },
|
|
66
|
-
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/tables/{tableName}", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDTablesByTableName" },
|
|
67
|
-
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/tables/{tableName}/columns", 'tag' => "Schema", 'operationId' => "schemaPostApiV1AppsByAppIDTablesByTableNameColumns" },
|
|
68
|
-
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/tables/{tableName}/columns/{columnName}", 'tag' => "Schema", 'operationId' => "schemaDeleteApiV1AppsByAppIDTablesByTableNameColumnsByColumnName" },
|
|
69
|
-
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/tables/{tableName}/grants", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDTablesByTableNameGrants" },
|
|
70
|
-
{ 'method' => "POST", 'path' => "/api/v1/apps/{appID}/tables/{tableName}/grants", 'tag' => "Schema", 'operationId' => "schemaPostApiV1AppsByAppIDTablesByTableNameGrants" },
|
|
71
|
-
{ 'method' => "DELETE", 'path' => "/api/v1/apps/{appID}/tables/{tableName}/grants/{grantID}", 'tag' => "Schema", 'operationId' => "schemaDeleteApiV1AppsByAppIDTablesByTableNameGrantsByGrantID" },
|
|
72
|
-
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/tables/{tableName}/rows", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDTablesByTableNameRows" },
|
|
73
|
-
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/tables/check-availability", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDTablesCheckAvailability" },
|
|
74
|
-
{ 'method' => "GET", 'path' => "/api/v1/apps/{appID}/tables/column-types", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDTablesColumnTypes" },
|
|
75
77
|
{ 'method' => "GET", 'path' => "/api/v1/apps/discover", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsDiscover" },
|
|
76
78
|
{ 'method' => "GET", 'path' => "/api/v1/apps/search", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsSearch" },
|
|
77
79
|
{ 'method' => "DELETE", 'path' => "/api/v1/comments/{commentID}", 'tag' => "Apps", 'operationId' => "appsDeleteApiV1CommentsByCommentID" },
|
|
80
|
+
{ 'method' => "POST", 'path' => "/api/v1/git/github/complete", 'tag' => "Deploy", 'operationId' => "deployPostApiV1GitGithubComplete" },
|
|
78
81
|
{ 'method' => "GET", 'path' => "/api/v1/github/accounts", 'tag' => "deploy", 'operationId' => "deployGetApiV1GithubAccounts" },
|
|
79
82
|
{ 'method' => "GET", 'path' => "/api/v1/github/installations/{installationID}/repositories", 'tag' => "deploy", 'operationId' => "deployGetApiV1GithubInstallationsByInstallationIDRepositories" },
|
|
80
83
|
{ 'method' => "GET", 'path' => "/api/v1/invite-links/{token}", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1InviteLinksByToken" },
|
|
@@ -95,6 +98,7 @@ module AxHub
|
|
|
95
98
|
{ 'method' => "POST", 'path' => "/api/v1/review-requests/{rrID}/reject", 'tag' => "Apps", 'operationId' => "appsPostApiV1ReviewRequestsByRrIDReject" },
|
|
96
99
|
{ 'method' => "GET", 'path' => "/api/v1/review-requests/history", 'tag' => "Apps", 'operationId' => "appsGetApiV1ReviewRequestsHistory" },
|
|
97
100
|
{ 'method' => "GET", 'path' => "/api/v1/review-requests/pending", 'tag' => "Apps", 'operationId' => "appsGetApiV1ReviewRequestsPending" },
|
|
101
|
+
{ 'method' => "GET", 'path' => "/api/v1/static-auth/start", 'tag' => "Apps", 'operationId' => "appsGetApiV1StaticAuthStart" },
|
|
98
102
|
{ 'method' => "GET", 'path' => "/api/v1/templates", 'tag' => "Apps", 'operationId' => "appsGetApiV1Templates" },
|
|
99
103
|
{ 'method' => "GET", 'path' => "/api/v1/tenants", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1Tenants" },
|
|
100
104
|
{ 'method' => "POST", 'path' => "/api/v1/tenants", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1Tenants" },
|
|
@@ -105,6 +109,21 @@ module AxHub
|
|
|
105
109
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/app-bootstraps/{bootstrapID}", 'tag' => "Deploy", 'operationId' => "deployGetApiV1TenantsByTenantIDAppBootstrapsByBootstrapID" },
|
|
106
110
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/apps", 'tag' => "Apps", 'operationId' => "appsGetApiV1TenantsByTenantIDApps" },
|
|
107
111
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDApps" },
|
|
112
|
+
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases", 'tag' => "Apps", 'operationId' => "appsGetApiV1TenantsByTenantIDAppsByAppIDStaticReleases" },
|
|
113
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticReleases" },
|
|
114
|
+
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases/{releaseID}", 'tag' => "Apps", 'operationId' => "appsDeleteApiV1TenantsByTenantIDAppsByAppIDStaticReleasesByReleaseID" },
|
|
115
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases/{releaseID}/activate", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticReleasesByReleaseIDActivate" },
|
|
116
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases/{releaseID}/finalize", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticReleasesByReleaseIDFinalize" },
|
|
117
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases/{releaseID}/promote-approve", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticReleasesByReleaseIDPromoteApprove" },
|
|
118
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases/{releaseID}/promote-reject", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticReleasesByReleaseIDPromoteReject" },
|
|
119
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases/{releaseID}/promote-request", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticReleasesByReleaseIDPromoteRequest" },
|
|
120
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases/{releaseID}/rollback", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticReleasesByReleaseIDRollback" },
|
|
121
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/releases/{releaseID}/stage", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticReleasesByReleaseIDStage" },
|
|
122
|
+
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/site", 'tag' => "Apps", 'operationId' => "appsGetApiV1TenantsByTenantIDAppsByAppIDStaticSite" },
|
|
123
|
+
{ 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/site", 'tag' => "Apps", 'operationId' => "appsPatchApiV1TenantsByTenantIDAppsByAppIDStaticSite" },
|
|
124
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/site/staging/disable", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticSiteStagingDisable" },
|
|
125
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/site/staging/enable", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticSiteStagingEnable" },
|
|
126
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/{appID}/static/site/unpublish", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsByAppIDStaticSiteUnpublish" },
|
|
108
127
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/apps/check-availability", 'tag' => "Apps", 'operationId' => "appsGetApiV1TenantsByTenantIDAppsCheckAvailability" },
|
|
109
128
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/apps/icon/upload-url", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDAppsIconUploadUrl" },
|
|
110
129
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/audit-events", 'tag' => "Audit", 'operationId' => "auditGetApiV1TenantsByTenantIDAuditEvents" },
|
|
@@ -121,7 +140,11 @@ module AxHub
|
|
|
121
140
|
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}", 'tag' => "Gateway", 'operationId' => "gatewayDeleteApiV1TenantsByTenantIDConnectorsByConnectorID" },
|
|
122
141
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDConnectorsByConnectorID" },
|
|
123
142
|
{ 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}", 'tag' => "Gateway", 'operationId' => "gatewayPatchApiV1TenantsByTenantIDConnectorsByConnectorID" },
|
|
143
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}/discover", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDConnectorsByConnectorIDDiscover" },
|
|
144
|
+
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}/resources", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDConnectorsByConnectorIDResources" },
|
|
124
145
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}/test-connection", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDConnectorsByConnectorIDTestConnection" },
|
|
146
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/connectors/oauth/google/finalize", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDConnectorsOauthGoogleFinalize" },
|
|
147
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/connectors/oauth/google/start", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDConnectorsOauthGoogleStart" },
|
|
125
148
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/by-app", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostByApp" },
|
|
126
149
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/by-cost-center", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostByCostCenter" },
|
|
127
150
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/export", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostExport" },
|
|
@@ -133,6 +156,8 @@ module AxHub
|
|
|
133
156
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/email-domains", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDEmailDomains" },
|
|
134
157
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/email-domains", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDEmailDomains" },
|
|
135
158
|
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/email-domains/{domain}", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDEmailDomainsByDomain" },
|
|
159
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/gateway/document-invoke", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDGatewayDocumentInvoke" },
|
|
160
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/gateway/file-invoke", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDGatewayFileInvoke" },
|
|
136
161
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/gateway/invoke", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDGatewayInvoke" },
|
|
137
162
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/gateway/query", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDGatewayQuery" },
|
|
138
163
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/gateway/sessions", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDGatewaySessions" },
|
|
@@ -141,6 +166,10 @@ module AxHub
|
|
|
141
166
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/grants", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDGrants" },
|
|
142
167
|
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/grants/{grantID}", 'tag' => "Authorization", 'operationId' => "authorizationDeleteApiV1TenantsByTenantIDGrantsByGrantID" },
|
|
143
168
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/grants/{grantID}", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDGrantsByGrantID" },
|
|
169
|
+
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/groups", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDGroups" },
|
|
170
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/groups", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDGroups" },
|
|
171
|
+
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/groups/{groupID}", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDGroupsByGroupID" },
|
|
172
|
+
{ 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/groups/{groupID}", 'tag' => "Tenants", 'operationId' => "tenantsPatchApiV1TenantsByTenantIDGroupsByGroupID" },
|
|
144
173
|
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/icon", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDIcon" },
|
|
145
174
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/icon/upload-url", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDIconUploadUrl" },
|
|
146
175
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/identity-providers", 'tag' => "Auth", 'operationId' => "authGetApiV1TenantsByTenantIDIdentityProviders" },
|
|
@@ -162,12 +191,20 @@ module AxHub
|
|
|
162
191
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/members", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDMembers" },
|
|
163
192
|
{ 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/members/{membershipID}", 'tag' => "Tenants", 'operationId' => "tenantsPatchApiV1TenantsByTenantIDMembersByMembershipID" },
|
|
164
193
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/members/{membershipID}/deactivate", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDMembersByMembershipIDDeactivate" },
|
|
194
|
+
{ 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/members/{membershipID}/group", 'tag' => "Tenants", 'operationId' => "tenantsPatchApiV1TenantsByTenantIDMembersByMembershipIDGroup" },
|
|
165
195
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/members/{membershipID}/reactivate", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDMembersByMembershipIDReactivate" },
|
|
196
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/members/{membershipID}/restore-scim", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDMembersByMembershipIDRestoreScim" },
|
|
197
|
+
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/members/{userID}/seat", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDMembersByUserIDSeat" },
|
|
198
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/members/{userID}/seat", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDMembersByUserIDSeat" },
|
|
199
|
+
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/members/directory", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDMembersDirectory" },
|
|
166
200
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/presets", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDPresets" },
|
|
167
201
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/presets", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDPresets" },
|
|
168
202
|
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/presets/{presetID}", 'tag' => "Authorization", 'operationId' => "authorizationDeleteApiV1TenantsByTenantIDPresetsByPresetID" },
|
|
169
203
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/presets/{presetID}", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDPresetsByPresetID" },
|
|
170
204
|
{ 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/presets/{presetID}", 'tag' => "Authorization", 'operationId' => "authorizationPatchApiV1TenantsByTenantIDPresetsByPresetID" },
|
|
205
|
+
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/scim/connection", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDScimConnection" },
|
|
206
|
+
{ 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/scim/token", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDScimToken" },
|
|
207
|
+
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/scim/token", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDScimToken" },
|
|
171
208
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/subjects", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDSubjects" },
|
|
172
209
|
{ 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/subjects", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDSubjects" },
|
|
173
210
|
{ 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/subjects/{subjectID}", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDSubjectsBySubjectID" },
|
|
@@ -184,18 +221,13 @@ module AxHub
|
|
|
184
221
|
{ 'method' => "GET", 'path' => "/auth/silent/callback", 'tag' => "Auth", 'operationId' => "authGetAuthSilentCallback" },
|
|
185
222
|
{ 'method' => "GET", 'path' => "/auth/silent/start", 'tag' => "Auth", 'operationId' => "authGetAuthSilentStart" },
|
|
186
223
|
{ 'method' => "GET", 'path' => "/config/public", 'tag' => "Config", 'operationId' => "configGetConfigPublic" },
|
|
187
|
-
{ 'method' => "GET", 'path' => "/data/{tenantSlug}/{appSlug}/{table}", 'tag' => "Schema", 'operationId' => "schemaGetDataByTenantSlugByAppSlugByTable" },
|
|
188
|
-
{ 'method' => "POST", 'path' => "/data/{tenantSlug}/{appSlug}/{table}", 'tag' => "Schema", 'operationId' => "schemaPostDataByTenantSlugByAppSlugByTable" },
|
|
189
|
-
{ 'method' => "GET", 'path' => "/data/{tenantSlug}/{appSlug}/{table}/_count", 'tag' => "Schema", 'operationId' => "schemaGetDataByTenantSlugByAppSlugByTableCount" },
|
|
190
|
-
{ 'method' => "DELETE", 'path' => "/data/{tenantSlug}/{appSlug}/{table}/{id}", 'tag' => "Schema", 'operationId' => "schemaDeleteDataByTenantSlugByAppSlugByTableById" },
|
|
191
|
-
{ 'method' => "GET", 'path' => "/data/{tenantSlug}/{appSlug}/{table}/{id}", 'tag' => "Schema", 'operationId' => "schemaGetDataByTenantSlugByAppSlugByTableById" },
|
|
192
|
-
{ 'method' => "PATCH", 'path' => "/data/{tenantSlug}/{appSlug}/{table}/{id}", 'tag' => "Schema", 'operationId' => "schemaPatchDataByTenantSlugByAppSlugByTableById" },
|
|
193
224
|
{ 'method' => "GET", 'path' => "/internal/app-access", 'tag' => "Apps", 'operationId' => "appsGetInternalAppAccess" },
|
|
194
225
|
{ 'method' => "GET", 'path' => "/oauth/authorize", 'tag' => "Auth", 'operationId' => "authGetOauthAuthorize" },
|
|
195
226
|
{ 'method' => "POST", 'path' => "/oauth/authorize/tenant", 'tag' => "Auth", 'operationId' => "authPostOauthAuthorizeTenant" },
|
|
196
227
|
{ 'method' => "POST", 'path' => "/oauth/device_authorization", 'tag' => "Auth", 'operationId' => "authPostOauthDeviceAuthorization" },
|
|
197
228
|
{ 'method' => "POST", 'path' => "/oauth/device/authorize", 'tag' => "Auth", 'operationId' => "authPostOauthDeviceAuthorize" },
|
|
198
229
|
{ 'method' => "GET", 'path' => "/oauth/device/lookup", 'tag' => "Auth", 'operationId' => "authGetOauthDeviceLookup" },
|
|
230
|
+
{ 'method' => "GET", 'path' => "/oauth/google/callback", 'tag' => "Gateway", 'operationId' => "gatewayGetOauthGoogleCallback" },
|
|
199
231
|
{ 'method' => "POST", 'path' => "/oauth/register", 'tag' => "Auth", 'operationId' => "authPostOauthRegister" },
|
|
200
232
|
{ 'method' => "POST", 'path' => "/oauth/revoke", 'tag' => "Auth", 'operationId' => "authPostOauthRevoke" },
|
|
201
233
|
{ 'method' => "POST", 'path' => "/oauth/token", 'tag' => "Auth", 'operationId' => "authPostOauthToken" },
|
|
@@ -218,9 +250,11 @@ module AxHub
|
|
|
218
250
|
"already_suspended" => ErrorInfo.new("conflict", 409, false),
|
|
219
251
|
"already_terminal" => ErrorInfo.new("conflict", 409, false),
|
|
220
252
|
"app_unavailable" => ErrorInfo.new("conflict", 409, false),
|
|
253
|
+
"auth_expired" => ErrorInfo.new("unavailable", 503, false),
|
|
221
254
|
"bad_request" => ErrorInfo.new("validation", 400, false),
|
|
222
255
|
"build_env_no_override" => ErrorInfo.new("validation", 400, false),
|
|
223
256
|
"cannot_reactivate" => ErrorInfo.new("conflict", 409, false),
|
|
257
|
+
"charge_failed" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
224
258
|
"confirm_required" => ErrorInfo.new("precondition_failed", 412, false),
|
|
225
259
|
"conflict" => ErrorInfo.new("conflict", 409, false),
|
|
226
260
|
"connector_inactive" => ErrorInfo.new("permission_denied", 403, false),
|
|
@@ -229,7 +263,9 @@ module AxHub
|
|
|
229
263
|
"domain_taken" => ErrorInfo.new("conflict", 409, false),
|
|
230
264
|
"duplicate" => ErrorInfo.new("validation", 400, false),
|
|
231
265
|
"empty" => ErrorInfo.new("validation", 400, false),
|
|
266
|
+
"exceeds_max" => ErrorInfo.new("conflict", 409, false),
|
|
232
267
|
"expiry_in_past" => ErrorInfo.new("validation", 400, false),
|
|
268
|
+
"feature_not_in_plan" => ErrorInfo.new("permission_denied", 403, false),
|
|
233
269
|
"final_visibility_too_wide" => ErrorInfo.new("validation", 400, false),
|
|
234
270
|
"forbidden" => ErrorInfo.new("permission_denied", 403, false),
|
|
235
271
|
"github_device_flow_disabled" => ErrorInfo.new("unavailable", 503, false),
|
|
@@ -238,32 +274,50 @@ module AxHub
|
|
|
238
274
|
"grant_expired" => ErrorInfo.new("permission_denied", 403, false),
|
|
239
275
|
"grant_revoked" => ErrorInfo.new("permission_denied", 403, false),
|
|
240
276
|
"internal_error" => ErrorInfo.new("internal", 500, false),
|
|
277
|
+
"invalid_drive" => ErrorInfo.new("validation", 400, false),
|
|
278
|
+
"invalid_entitlement" => ErrorInfo.new("validation", 400, false),
|
|
241
279
|
"invalid_expiry" => ErrorInfo.new("validation", 400, false),
|
|
242
280
|
"invalid_format" => ErrorInfo.new("validation", 400, false),
|
|
281
|
+
"invalid_oauth_state" => ErrorInfo.new("validation", 400, false),
|
|
243
282
|
"invalid_state_transition" => ErrorInfo.new("conflict", 409, false),
|
|
283
|
+
"invalid_target" => ErrorInfo.new("conflict", 409, false),
|
|
244
284
|
"invalid_value" => ErrorInfo.new("validation", 400, false),
|
|
245
285
|
"invitation_expired" => ErrorInfo.new("not_found", 410, false),
|
|
246
286
|
"kind_engine_mismatch" => ErrorInfo.new("validation", 400, false),
|
|
247
287
|
"last_admin" => ErrorInfo.new("conflict", 409, false),
|
|
248
288
|
"link_invalid" => ErrorInfo.new("not_found", 404, false),
|
|
249
289
|
"no_active_grant" => ErrorInfo.new("not_found", 404, false),
|
|
290
|
+
"no_available_seat" => ErrorInfo.new("conflict", 409, false),
|
|
291
|
+
"no_billing_key" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
292
|
+
"no_payment_method" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
250
293
|
"not_admin" => ErrorInfo.new("permission_denied", 403, false),
|
|
251
294
|
"not_allowed" => ErrorInfo.new("validation", 400, false),
|
|
252
295
|
"not_deleted" => ErrorInfo.new("conflict", 409, false),
|
|
296
|
+
"not_deployed" => ErrorInfo.new("conflict", 409, false),
|
|
253
297
|
"not_found" => ErrorInfo.new("not_found", 404, false),
|
|
254
298
|
"not_member" => ErrorInfo.new("permission_denied", 403, false),
|
|
255
299
|
"not_promotable" => ErrorInfo.new("precondition_failed", 412, false),
|
|
256
300
|
"not_suspended" => ErrorInfo.new("conflict", 409, false),
|
|
301
|
+
"oauth_denied" => ErrorInfo.new("validation", 400, false),
|
|
302
|
+
"payment_failed" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
303
|
+
"payment_required" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
257
304
|
"pending_exists" => ErrorInfo.new("conflict", 409, false),
|
|
258
305
|
"pending_review_exists" => ErrorInfo.new("precondition_failed", 412, false),
|
|
259
306
|
"permanently_deleted" => ErrorInfo.new("not_found", 410, false),
|
|
307
|
+
"plan_version_exists" => ErrorInfo.new("conflict", 409, false),
|
|
260
308
|
"precondition_failed" => ErrorInfo.new("precondition_failed", 412, false),
|
|
261
309
|
"preset_in_use" => ErrorInfo.new("conflict", 409, false),
|
|
262
310
|
"preset_mismatch" => ErrorInfo.new("validation", 400, false),
|
|
311
|
+
"preset_not_in_plan" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
263
312
|
"prod_deploy_required" => ErrorInfo.new("precondition_failed", 412, false),
|
|
264
313
|
"promote_in_progress" => ErrorInfo.new("precondition_failed", 412, true),
|
|
314
|
+
"quota_exceeded" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
265
315
|
"required" => ErrorInfo.new("validation", 400, false),
|
|
316
|
+
"resource_quota_exceeded" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
266
317
|
"schema_name_taken" => ErrorInfo.new("conflict", 409, false),
|
|
318
|
+
"seat_in_use" => ErrorInfo.new("conflict", 409, false),
|
|
319
|
+
"seat_unassigned" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
320
|
+
"seats_not_supported" => ErrorInfo.new("conflict", 409, false),
|
|
267
321
|
"session_ended" => ErrorInfo.new("unauthenticated", 401, true),
|
|
268
322
|
"session_expired" => ErrorInfo.new("unauthenticated", 401, true),
|
|
269
323
|
"slug_taken" => ErrorInfo.new("conflict", 409, false),
|
|
@@ -271,11 +325,16 @@ module AxHub
|
|
|
271
325
|
"staging_mismatch" => ErrorInfo.new("precondition_failed", 412, false),
|
|
272
326
|
"staging_not_enabled" => ErrorInfo.new("precondition_failed", 412, false),
|
|
273
327
|
"staging_required" => ErrorInfo.new("precondition_failed", 412, false),
|
|
274
|
-
"
|
|
328
|
+
"static_release_in_use" => ErrorInfo.new("conflict", 409, false),
|
|
329
|
+
"static_release_not_ready" => ErrorInfo.new("precondition_failed", 412, false),
|
|
330
|
+
"temporarily_unavailable" => ErrorInfo.new("unavailable", 429, true),
|
|
275
331
|
"token_expired" => ErrorInfo.new("unauthenticated", 401, true),
|
|
276
332
|
"token_invalid" => ErrorInfo.new("unauthenticated", 401, true),
|
|
277
333
|
"token_missing" => ErrorInfo.new("unauthenticated", 401, true),
|
|
278
334
|
"too_long" => ErrorInfo.new("validation", 400, false),
|
|
335
|
+
"unknown_plan" => ErrorInfo.new("not_found", 404, false),
|
|
336
|
+
"unpaid_balance" => ErrorInfo.new("CategoryPaymentRequired", 402, false),
|
|
337
|
+
"unsupported_for_static_app" => ErrorInfo.new("conflict", 409, false),
|
|
279
338
|
"version_not_approved" => ErrorInfo.new("permission_denied", 403, false),
|
|
280
339
|
"visibility_widen_not_allowed" => ErrorInfo.new("conflict", 409, false),
|
|
281
340
|
}.freeze
|
|
@@ -320,21 +379,6 @@ module AxHub
|
|
|
320
379
|
_send(req, uri, camelize: true)
|
|
321
380
|
end
|
|
322
381
|
|
|
323
|
-
# Raw-path transport for endpoints with no generated operation-id facade
|
|
324
|
-
# (the ergonomic data ring: dynamic CRUD + runtime schema discover). `path`
|
|
325
|
-
# is already fully substituted; `query` keys may be array-valued so repeated
|
|
326
|
-
# filter params (e.g. `tag=eq.a&tag=eq.b`) serialize via URI.encode_www_form.
|
|
327
|
-
# Defaults to `camelize: false` to mirror the node data transport: row bodies
|
|
328
|
-
# and list envelopes (`has_more`/`per_page`) are returned verbatim.
|
|
329
|
-
def request_raw(method, path, query: {}, body: nil, camelize: false)
|
|
330
|
-
uri = URI(@base_url + path); uri.query = URI.encode_www_form(query) unless query.nil? || query.empty?
|
|
331
|
-
req_class = Net::HTTP.const_get(method.to_s.capitalize); req = req_class.new(uri); req['X-Request-ID'] = request_id
|
|
332
|
-
unless body.nil?
|
|
333
|
-
req['Content-Type'] = 'application/json'; req.body = JSON.generate(body)
|
|
334
|
-
end
|
|
335
|
-
_send(req, uri, camelize: camelize)
|
|
336
|
-
end
|
|
337
|
-
|
|
338
382
|
private
|
|
339
383
|
|
|
340
384
|
# Shared auth + send + redirect policy + response/error normalization tail.
|
|
@@ -403,4 +447,3 @@ module AxHub
|
|
|
403
447
|
end
|
|
404
448
|
|
|
405
449
|
require_relative 'axhub_sdk/operations'
|
|
406
|
-
require_relative 'axhub_sdk/data'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: axhub-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jocoding AX Partners
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-07-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|
|
@@ -50,17 +50,6 @@ files:
|
|
|
50
50
|
- README.md
|
|
51
51
|
- axhub-sdk.gemspec
|
|
52
52
|
- lib/axhub_sdk.rb
|
|
53
|
-
- lib/axhub_sdk/data.rb
|
|
54
|
-
- lib/axhub_sdk/data/client.rb
|
|
55
|
-
- lib/axhub_sdk/data/discover.rb
|
|
56
|
-
- lib/axhub_sdk/data/dsl/ops.rb
|
|
57
|
-
- lib/axhub_sdk/data/dsl/schema.rb
|
|
58
|
-
- lib/axhub_sdk/data/dsl/validation.rb
|
|
59
|
-
- lib/axhub_sdk/data/errors.rb
|
|
60
|
-
- lib/axhub_sdk/data/pagination.rb
|
|
61
|
-
- lib/axhub_sdk/data/projection.rb
|
|
62
|
-
- lib/axhub_sdk/data/schema_cache.rb
|
|
63
|
-
- lib/axhub_sdk/data/where_serializer.rb
|
|
64
53
|
- lib/axhub_sdk/operations.rb
|
|
65
54
|
- lib/axhub_sdk/version.rb
|
|
66
55
|
homepage: https://github.com/jocoding-ax-partners/axhub-sdk-ruby
|