axhub-sdk 0.3.1 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 85d987bf30aef83087acd96efae5f26be3edb75bab6db845b2b03e20855e022f
4
- data.tar.gz: 9a9f21590240febb36affc2af156007840ccb0d273a279a89bd520544fa5c97c
3
+ metadata.gz: '053963821b948473882e41080e081b709c301d2e46936f241e2943c11efda494'
4
+ data.tar.gz: ae6eadcc57dc330271655820bb2112dd90bcd332a726cec8831bd9d3b05c5ba2
5
5
  SHA512:
6
- metadata.gz: ff15d439f50d8b4b28f79307c951f52b4581a234c7d50c58735153d090ceb8a44885852a37ec03760254a92ade0362633780641df75b1e3e5fbaf6279984a8b2
7
- data.tar.gz: 8b0ec9cf0a69d1b702e859ee033f1b2d35eb3df213434f8acaceb5f208206b043300e526f60134f5f1274bbfb6cc3a21592c3fa432ca431b8c25e07aa8120269
6
+ metadata.gz: d1969fb1cd767f65117ab6cc35b76614ccf316d151a9366306ba7ca35f92f4afd7282a2712e3dc816ca0ea6b18c5585c7fcb88ca96e2aa68ca5b6bfab4f62c9c
7
+ data.tar.gz: a7f088cf9979edbb888661dda47ecb0fe85ccd04189cacf80179ea8a54f1eda083bd58c3fbe662339224a6a3acf75c1cd698e01fd2ea372db50b0db6e35ec4ac
data/README.md CHANGED
@@ -5,7 +5,7 @@ AX Hub Ruby SDK for `https://api.axhub.ai`. It gives agents a dependency-light c
5
5
  ## Install
6
6
 
7
7
  ```bash
8
- gem install axhub-sdk -v 0.2.0
8
+ gem install axhub-sdk -v 0.4.0
9
9
  ```
10
10
 
11
11
  Local development:
@@ -51,7 +51,7 @@ app = client.apps.create(
51
51
  name: 'Agent Ruby README QA',
52
52
  visibility: 'private',
53
53
  auth_mode: 'anonymous',
54
- resource_tier: 'S',
54
+ resource_preset: 'S',
55
55
  deploy_method: 'docker',
56
56
  subdomain: slug
57
57
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AxHub
4
- VERSION = '0.3.1'
4
+ VERSION = '0.5.0'
5
5
  end
data/lib/axhub_sdk.rb CHANGED
@@ -17,6 +17,7 @@ module AxHub
17
17
  end
18
18
  ROUTES = [
19
19
  { 'method' => "GET", 'path' => "/.well-known/jwks.json", 'tag' => "Auth", 'operationId' => "authGetWellKnownJwksJson" },
20
+ { 'method' => "GET", 'path' => "/.well-known/oauth-authorization-server", 'tag' => "Auth", 'operationId' => "authGetWellKnownOauthAuthorizationServer" },
20
21
  { 'method' => "GET", 'path' => "/.well-known/openid-configuration", 'tag' => "Auth", 'operationId' => "authGetWellKnownOpenidConfiguration" },
21
22
  { 'method' => "GET", 'path' => "/api/v1/admin/templates", 'tag' => "Apps", 'operationId' => "appsGetApiV1AdminTemplates" },
22
23
  { 'method' => "POST", 'path' => "/api/v1/admin/templates", 'tag' => "Apps", 'operationId' => "appsPostApiV1AdminTemplates" },
@@ -73,9 +74,7 @@ module AxHub
73
74
  { 'method' => "GET", 'path' => "/api/v1/apps/{appID}/tables/column-types", 'tag' => "Schema", 'operationId' => "schemaGetApiV1AppsByAppIDTablesColumnTypes" },
74
75
  { 'method' => "GET", 'path' => "/api/v1/apps/discover", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsDiscover" },
75
76
  { 'method' => "GET", 'path' => "/api/v1/apps/search", 'tag' => "Apps", 'operationId' => "appsGetApiV1AppsSearch" },
76
- { 'method' => "GET", 'path' => "/api/v1/catalog/kinds", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1CatalogKinds" },
77
77
  { 'method' => "DELETE", 'path' => "/api/v1/comments/{commentID}", 'tag' => "Apps", 'operationId' => "appsDeleteApiV1CommentsByCommentID" },
78
- { 'method' => "GET", 'path' => "/api/v1/engines", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1Engines" },
79
78
  { 'method' => "GET", 'path' => "/api/v1/github/accounts", 'tag' => "deploy", 'operationId' => "deployGetApiV1GithubAccounts" },
80
79
  { 'method' => "GET", 'path' => "/api/v1/github/installations/{installationID}/repositories", 'tag' => "deploy", 'operationId' => "deployGetApiV1GithubInstallationsByInstallationIDRepositories" },
81
80
  { 'method' => "GET", 'path' => "/api/v1/invite-links/{token}", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1InviteLinksByToken" },
@@ -90,6 +89,7 @@ module AxHub
90
89
  { 'method' => "DELETE", 'path' => "/api/v1/me/personal-access-tokens/{patID}", 'tag' => "Schema", 'operationId' => "schemaDeleteApiV1MePersonalAccessTokensByPatID" },
91
90
  { 'method' => "GET", 'path' => "/api/v1/oauth-clients/{clientID}", 'tag' => "Auth", 'operationId' => "authGetApiV1OauthClientsByClientID" },
92
91
  { 'method' => "DELETE", 'path' => "/api/v1/oauth/clients/{clientID}/grants/me", 'tag' => "Auth", 'operationId' => "authDeleteApiV1OauthClientsByClientIDGrantsMe" },
92
+ { 'method' => "GET", 'path' => "/api/v1/resource-presets", 'tag' => "Apps", 'operationId' => "appsGetApiV1ResourcePresets" },
93
93
  { 'method' => "GET", 'path' => "/api/v1/review-requests/{rrID}", 'tag' => "Apps", 'operationId' => "appsGetApiV1ReviewRequestsByRrID" },
94
94
  { 'method' => "POST", 'path' => "/api/v1/review-requests/{rrID}/approve", 'tag' => "Apps", 'operationId' => "appsPostApiV1ReviewRequestsByRrIDApprove" },
95
95
  { 'method' => "POST", 'path' => "/api/v1/review-requests/{rrID}/reject", 'tag' => "Apps", 'operationId' => "appsPostApiV1ReviewRequestsByRrIDReject" },
@@ -111,10 +111,6 @@ module AxHub
111
111
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/audit-events/{eventID}", 'tag' => "Audit", 'operationId' => "auditGetApiV1TenantsByTenantIDAuditEventsByEventID" },
112
112
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/audit-events/anonymize", 'tag' => "Audit", 'operationId' => "auditPostApiV1TenantsByTenantIDAuditEventsAnonymize" },
113
113
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/audit-events/integrity-check", 'tag' => "Audit", 'operationId' => "auditGetApiV1TenantsByTenantIDAuditEventsIntegrityCheck" },
114
- { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/catalog/connectors", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDCatalogConnectors" },
115
- { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/catalog/resources", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDCatalogResources" },
116
- { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/catalog/resources/{connector}/{path}", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDCatalogResourcesByConnectorByPath" },
117
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/catalog/resources/{connector}/{path}", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDCatalogResourcesByConnectorByPath" },
118
114
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/categories", 'tag' => "Apps", 'operationId' => "appsGetApiV1TenantsByTenantIDCategories" },
119
115
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/categories", 'tag' => "Apps", 'operationId' => "appsPostApiV1TenantsByTenantIDCategories" },
120
116
  { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/categories/{categoryID}", 'tag' => "Apps", 'operationId' => "appsDeleteApiV1TenantsByTenantIDCategoriesByCategoryID" },
@@ -123,28 +119,36 @@ module AxHub
123
119
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/connectors", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDConnectors" },
124
120
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/connectors", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDConnectors" },
125
121
  { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}", 'tag' => "Gateway", 'operationId' => "gatewayDeleteApiV1TenantsByTenantIDConnectorsByConnectorID" },
122
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDConnectorsByConnectorID" },
126
123
  { 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}", 'tag' => "Gateway", 'operationId' => "gatewayPatchApiV1TenantsByTenantIDConnectorsByConnectorID" },
127
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}/credentials", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDConnectorsByConnectorIDCredentials" },
128
- { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}/discover", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDConnectorsByConnectorIDDiscover" },
124
+ { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/connectors/{connectorID}/test-connection", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDConnectorsByConnectorIDTestConnection" },
129
125
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/by-app", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostByApp" },
130
126
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/by-cost-center", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostByCostCenter" },
131
127
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/export", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostExport" },
128
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/months", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostMonths" },
132
129
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/summary", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostSummary" },
133
130
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/cost/timeseries", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDCostTimeseries" },
131
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/deployments", 'tag' => "Deploy", 'operationId' => "deployGetApiV1TenantsByTenantIDDeployments" },
134
132
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/discover/apps", 'tag' => "Apps", 'operationId' => "appsGetApiV1TenantsByTenantIDDiscoverApps" },
135
133
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/email-domains", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDEmailDomains" },
136
134
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/email-domains", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDEmailDomains" },
137
135
  { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/email-domains/{domain}", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDEmailDomainsByDomain" },
136
+ { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/gateway/invoke", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDGatewayInvoke" },
138
137
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/gateway/query", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDGatewayQuery" },
138
+ { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/gateway/sessions", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDGatewaySessions" },
139
+ { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/gateway/sessions/{sessionID}", 'tag' => "Gateway", 'operationId' => "gatewayDeleteApiV1TenantsByTenantIDGatewaySessionsBySessionID" },
139
140
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/grants", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDGrants" },
140
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/grants/{grantID}/grant", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDGrantsByGrantIDGrant" },
141
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/grants/{grantID}/revoke", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDGrantsByGrantIDRevoke" },
141
+ { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/grants", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDGrants" },
142
+ { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/grants/{grantID}", 'tag' => "Authorization", 'operationId' => "authorizationDeleteApiV1TenantsByTenantIDGrantsByGrantID" },
143
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/grants/{grantID}", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDGrantsByGrantID" },
142
144
  { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/icon", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDIcon" },
143
145
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/icon/upload-url", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDIconUploadUrl" },
144
146
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/identity-providers", 'tag' => "Auth", 'operationId' => "authGetApiV1TenantsByTenantIDIdentityProviders" },
145
147
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/identity-providers", 'tag' => "Auth", 'operationId' => "authPostApiV1TenantsByTenantIDIdentityProviders" },
146
148
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/identity-providers/{providerID}/disable", 'tag' => "Auth", 'operationId' => "authPostApiV1TenantsByTenantIDIdentityProvidersByProviderIDDisable" },
147
149
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/identity-providers/{providerID}/enable", 'tag' => "Auth", 'operationId' => "authPostApiV1TenantsByTenantIDIdentityProvidersByProviderIDEnable" },
150
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/infra/apps/{appID}/usage-series", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDInfraAppsByAppIDUsageSeries" },
151
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/infra/usage", 'tag' => "Cost", 'operationId' => "costGetApiV1TenantsByTenantIDInfraUsage" },
148
152
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/invitations", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDInvitations" },
149
153
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/invitations", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDInvitations" },
150
154
  { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/invitations/{invitationID}", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDInvitationsByInvitationID" },
@@ -152,29 +156,21 @@ module AxHub
152
156
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/invite-links", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDInviteLinks" },
153
157
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/invite-links", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDInviteLinks" },
154
158
  { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/invite-links/{linkID}", 'tag' => "Tenants", 'operationId' => "tenantsDeleteApiV1TenantsByTenantIDInviteLinksByLinkID" },
159
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/me/connectors", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDMeConnectors" },
160
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/me/connectors/{connectorID}/resources", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDMeConnectorsByConnectorIDResources" },
161
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/me/grants", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDMeGrants" },
155
162
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/members", 'tag' => "Tenants", 'operationId' => "tenantsGetApiV1TenantsByTenantIDMembers" },
156
163
  { 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/members/{membershipID}", 'tag' => "Tenants", 'operationId' => "tenantsPatchApiV1TenantsByTenantIDMembersByMembershipID" },
157
164
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/members/{membershipID}/deactivate", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDMembersByMembershipIDDeactivate" },
158
165
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/members/{membershipID}/reactivate", 'tag' => "Tenants", 'operationId' => "tenantsPostApiV1TenantsByTenantIDMembersByMembershipIDReactivate" },
159
- { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/resources", 'tag' => "Gateway", 'operationId' => "gatewayGetApiV1TenantsByTenantIDResources" },
160
- { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/resources/{resourceID}", 'tag' => "Gateway", 'operationId' => "gatewayDeleteApiV1TenantsByTenantIDResourcesByResourceID" },
161
- { 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/resources/{resourceID}", 'tag' => "Gateway", 'operationId' => "gatewayPatchApiV1TenantsByTenantIDResourcesByResourceID" },
162
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/resources/{resourceID}/move", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDResourcesByResourceIDMove" },
163
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/resources/{resourceID}/tags", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDResourcesByResourceIDTags" },
164
- { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/resources/{resourceID}/tags/{tagID}", 'tag' => "Gateway", 'operationId' => "gatewayDeleteApiV1TenantsByTenantIDResourcesByResourceIDTagsByTagID" },
165
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/resources/bulk", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDResourcesBulk" },
166
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/resources/namespaces", 'tag' => "Gateway", 'operationId' => "gatewayPostApiV1TenantsByTenantIDResourcesNamespaces" },
166
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/presets", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDPresets" },
167
+ { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/presets", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDPresets" },
168
+ { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/presets/{presetID}", 'tag' => "Authorization", 'operationId' => "authorizationDeleteApiV1TenantsByTenantIDPresetsByPresetID" },
169
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/presets/{presetID}", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDPresetsByPresetID" },
170
+ { 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/presets/{presetID}", 'tag' => "Authorization", 'operationId' => "authorizationPatchApiV1TenantsByTenantIDPresetsByPresetID" },
167
171
  { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/subjects", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDSubjects" },
168
172
  { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/subjects", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDSubjects" },
169
- { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/subjects/{subjectID}", 'tag' => "Authorization", 'operationId' => "authorizationDeleteApiV1TenantsByTenantIDSubjectsBySubjectID" },
170
- { 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/subjects/{subjectID}", 'tag' => "Authorization", 'operationId' => "authorizationPatchApiV1TenantsByTenantIDSubjectsBySubjectID" },
171
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/subjects/{subjectID}/move", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDSubjectsBySubjectIDMove" },
172
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/subjects/{subjectID}/tags", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDSubjectsBySubjectIDTags" },
173
- { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/subjects/{subjectID}/tags/{tagID}", 'tag' => "Authorization", 'operationId' => "authorizationDeleteApiV1TenantsByTenantIDSubjectsBySubjectIDTagsByTagID" },
174
- { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/tags", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDTags" },
175
- { 'method' => "POST", 'path' => "/api/v1/tenants/{tenantID}/tags", 'tag' => "Authorization", 'operationId' => "authorizationPostApiV1TenantsByTenantIDTags" },
176
- { 'method' => "DELETE", 'path' => "/api/v1/tenants/{tenantID}/tags/{tagID}", 'tag' => "Authorization", 'operationId' => "authorizationDeleteApiV1TenantsByTenantIDTagsByTagID" },
177
- { 'method' => "PATCH", 'path' => "/api/v1/tenants/{tenantID}/tags/{tagID}", 'tag' => "Authorization", 'operationId' => "authorizationPatchApiV1TenantsByTenantIDTagsByTagID" },
173
+ { 'method' => "GET", 'path' => "/api/v1/tenants/{tenantID}/subjects/{subjectID}", 'tag' => "Authorization", 'operationId' => "authorizationGetApiV1TenantsByTenantIDSubjectsBySubjectID" },
178
174
  { 'method' => "GET", 'path' => "/api/v1/users/me/apps", 'tag' => "Apps", 'operationId' => "appsGetApiV1UsersMeApps" },
179
175
  { 'method' => "GET", 'path' => "/auth/{providerID}/start", 'tag' => "Auth", 'operationId' => "authGetAuthByProviderIDStart" },
180
176
  { 'method' => "GET", 'path' => "/auth/github", 'tag' => "identity", 'operationId' => "identityGetAuthGithub" },
@@ -208,49 +204,80 @@ module AxHub
208
204
  ].freeze
209
205
 
210
206
  ERROR_CODES = {
207
+ "action_denied" => ErrorInfo.new("permission_denied", 403, false),
208
+ "action_invalid" => ErrorInfo.new("validation", 400, false),
211
209
  "already_accessed" => ErrorInfo.new("conflict", 409, false),
212
210
  "already_active" => ErrorInfo.new("conflict", 409, false),
213
211
  "already_deleted" => ErrorInfo.new("conflict", 409, false),
214
212
  "already_exists" => ErrorInfo.new("conflict", 409, false),
215
213
  "already_inactive" => ErrorInfo.new("conflict", 409, false),
216
214
  "already_member" => ErrorInfo.new("conflict", 409, false),
215
+ "already_promoted" => ErrorInfo.new("conflict", 409, false),
217
216
  "already_revoked" => ErrorInfo.new("conflict", 409, false),
218
217
  "already_settled" => ErrorInfo.new("conflict", 409, false),
219
218
  "already_suspended" => ErrorInfo.new("conflict", 409, false),
219
+ "already_terminal" => ErrorInfo.new("conflict", 409, false),
220
220
  "app_unavailable" => ErrorInfo.new("conflict", 409, false),
221
221
  "bad_request" => ErrorInfo.new("validation", 400, false),
222
+ "build_env_no_override" => ErrorInfo.new("validation", 400, false),
222
223
  "cannot_reactivate" => ErrorInfo.new("conflict", 409, false),
224
+ "confirm_required" => ErrorInfo.new("precondition_failed", 412, false),
223
225
  "conflict" => ErrorInfo.new("conflict", 409, false),
226
+ "connector_inactive" => ErrorInfo.new("permission_denied", 403, false),
224
227
  "cross_tenant" => ErrorInfo.new("validation", 400, false),
225
228
  "domain_blocked" => ErrorInfo.new("precondition_failed", 422, false),
226
229
  "domain_taken" => ErrorInfo.new("conflict", 409, false),
227
230
  "duplicate" => ErrorInfo.new("validation", 400, false),
228
231
  "empty" => ErrorInfo.new("validation", 400, false),
232
+ "expiry_in_past" => ErrorInfo.new("validation", 400, false),
233
+ "final_visibility_too_wide" => ErrorInfo.new("validation", 400, false),
229
234
  "forbidden" => ErrorInfo.new("permission_denied", 403, false),
235
+ "github_device_flow_disabled" => ErrorInfo.new("unavailable", 503, false),
236
+ "grant_already_terminal" => ErrorInfo.new("conflict", 409, false),
237
+ "grant_conflict" => ErrorInfo.new("conflict", 409, false),
238
+ "grant_expired" => ErrorInfo.new("permission_denied", 403, false),
239
+ "grant_revoked" => ErrorInfo.new("permission_denied", 403, false),
230
240
  "internal_error" => ErrorInfo.new("internal", 500, false),
231
241
  "invalid_expiry" => ErrorInfo.new("validation", 400, false),
232
242
  "invalid_format" => ErrorInfo.new("validation", 400, false),
233
243
  "invalid_state_transition" => ErrorInfo.new("conflict", 409, false),
234
244
  "invalid_value" => ErrorInfo.new("validation", 400, false),
235
245
  "invitation_expired" => ErrorInfo.new("not_found", 410, false),
246
+ "kind_engine_mismatch" => ErrorInfo.new("validation", 400, false),
236
247
  "last_admin" => ErrorInfo.new("conflict", 409, false),
248
+ "link_invalid" => ErrorInfo.new("not_found", 404, false),
249
+ "no_active_grant" => ErrorInfo.new("not_found", 404, false),
237
250
  "not_admin" => ErrorInfo.new("permission_denied", 403, false),
238
251
  "not_allowed" => ErrorInfo.new("validation", 400, false),
239
252
  "not_deleted" => ErrorInfo.new("conflict", 409, false),
240
253
  "not_found" => ErrorInfo.new("not_found", 404, false),
241
254
  "not_member" => ErrorInfo.new("permission_denied", 403, false),
255
+ "not_promotable" => ErrorInfo.new("precondition_failed", 412, false),
242
256
  "not_suspended" => ErrorInfo.new("conflict", 409, false),
243
257
  "pending_exists" => ErrorInfo.new("conflict", 409, false),
258
+ "pending_review_exists" => ErrorInfo.new("precondition_failed", 412, false),
244
259
  "permanently_deleted" => ErrorInfo.new("not_found", 410, false),
245
260
  "precondition_failed" => ErrorInfo.new("precondition_failed", 412, false),
261
+ "preset_in_use" => ErrorInfo.new("conflict", 409, false),
262
+ "preset_mismatch" => ErrorInfo.new("validation", 400, false),
263
+ "prod_deploy_required" => ErrorInfo.new("precondition_failed", 412, false),
264
+ "promote_in_progress" => ErrorInfo.new("precondition_failed", 412, true),
246
265
  "required" => ErrorInfo.new("validation", 400, false),
247
266
  "schema_name_taken" => ErrorInfo.new("conflict", 409, false),
267
+ "session_ended" => ErrorInfo.new("unauthenticated", 401, true),
268
+ "session_expired" => ErrorInfo.new("unauthenticated", 401, true),
248
269
  "slug_taken" => ErrorInfo.new("conflict", 409, false),
249
- "temporarily_unavailable" => ErrorInfo.new("unavailable", 429, true),
270
+ "staging_already_enabled" => ErrorInfo.new("conflict", 409, false),
271
+ "staging_mismatch" => ErrorInfo.new("precondition_failed", 412, false),
272
+ "staging_not_enabled" => ErrorInfo.new("precondition_failed", 412, false),
273
+ "staging_required" => ErrorInfo.new("precondition_failed", 412, false),
274
+ "temporarily_unavailable" => ErrorInfo.new("unavailable", 503, true),
250
275
  "token_expired" => ErrorInfo.new("unauthenticated", 401, true),
251
276
  "token_invalid" => ErrorInfo.new("unauthenticated", 401, true),
252
277
  "token_missing" => ErrorInfo.new("unauthenticated", 401, true),
253
278
  "too_long" => ErrorInfo.new("validation", 400, false),
279
+ "version_not_approved" => ErrorInfo.new("permission_denied", 403, false),
280
+ "visibility_widen_not_allowed" => ErrorInfo.new("conflict", 409, false),
254
281
  }.freeze
255
282
 
256
283
  ROUTE_BY_OP = ROUTES.map { |r| [r['operationId'], r] }.to_h
@@ -271,7 +298,7 @@ module AxHub
271
298
  ].freeze
272
299
  class Client
273
300
  attr_reader :base_url, :apps
274
- def initialize(base_url: DEFAULT_BASE_URL, token: nil, token_type: nil, default_tenant_id: nil, default_tenant_slug: nil, timeout_seconds: 10)
301
+ def initialize(base_url: DEFAULT_BASE_URL, token: nil, token_type: nil, default_tenant_id: nil, default_tenant_slug: nil, timeout_seconds: 30)
275
302
  @base_url = base_url.sub(%r{/$}, ''); @token = token; @token_type = token_type&.to_sym; @default_tenant_id = default_tenant_id; @default_tenant_slug = default_tenant_slug; @timeout_seconds = timeout_seconds; @apps = AppsClient.new(self)
276
303
  end
277
304
  def redacted_token
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.3.1
4
+ version: 0.5.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-06-10 00:00:00.000000000 Z
11
+ date: 2026-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest