@opusdns/api 1.110.0 → 1.112.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/helpers/constants.ts +15 -0
- package/src/helpers/keys.ts +52 -11
- package/src/helpers/requests.d.ts +12 -3
- package/src/helpers/responses.d.ts +10 -0
- package/src/helpers/schemas.d.ts +5 -1
- package/src/openapi.yaml +342 -49
- package/src/schema.d.ts +210 -26
package/package.json
CHANGED
package/src/helpers/constants.ts
CHANGED
|
@@ -116,6 +116,7 @@ import type {
|
|
|
116
116
|
VerificationClaimType,
|
|
117
117
|
VerificationDeadlineType,
|
|
118
118
|
VerificationType,
|
|
119
|
+
WhitelabelBrandingTier,
|
|
119
120
|
WhitelabelOnboardingFailureCode,
|
|
120
121
|
WhitelabelOnboardingFailureType,
|
|
121
122
|
WhitelabelOnboardingStatus,
|
|
@@ -211,6 +212,7 @@ export const BILLING_TRANSACTION_ACTION = {
|
|
|
211
212
|
TRADE: "trade",
|
|
212
213
|
APPLICATION: "application",
|
|
213
214
|
SERVICE_FEE: "service_fee",
|
|
215
|
+
UPGRADE_FEE: "upgrade_fee",
|
|
214
216
|
WALLET_TOP_UP: "wallet_top_up",
|
|
215
217
|
} as const satisfies Record<string, BillingTransactionAction>;
|
|
216
218
|
|
|
@@ -222,6 +224,7 @@ export const BILLING_TRANSACTION_ACTION_VALUES = [
|
|
|
222
224
|
'trade',
|
|
223
225
|
'application',
|
|
224
226
|
'service_fee',
|
|
227
|
+
'upgrade_fee',
|
|
225
228
|
'wallet_top_up',
|
|
226
229
|
] as const satisfies ReadonlyArray<BillingTransactionAction>;
|
|
227
230
|
|
|
@@ -233,6 +236,7 @@ export const BILLING_TRANSACTION_PRODUCT_TYPE = {
|
|
|
233
236
|
ACCOUNT_WALLET: "account_wallet",
|
|
234
237
|
VANITY_NAMESERVER: "vanity_nameserver",
|
|
235
238
|
WHITELABEL_BRANDING: "whitelabel_branding",
|
|
239
|
+
WHITELABEL_BRANDING_PLUS: "whitelabel_branding_plus",
|
|
236
240
|
} as const satisfies Record<string, BillingTransactionProductType>;
|
|
237
241
|
|
|
238
242
|
export const BILLING_TRANSACTION_PRODUCT_TYPE_VALUES = [
|
|
@@ -243,6 +247,7 @@ export const BILLING_TRANSACTION_PRODUCT_TYPE_VALUES = [
|
|
|
243
247
|
'account_wallet',
|
|
244
248
|
'vanity_nameserver',
|
|
245
249
|
'whitelabel_branding',
|
|
250
|
+
'whitelabel_branding_plus',
|
|
246
251
|
] as const satisfies ReadonlyArray<BillingTransactionProductType>;
|
|
247
252
|
|
|
248
253
|
export const BILLING_TRANSACTION_SORT_FIELD = {
|
|
@@ -2066,6 +2071,16 @@ export const VERIFICATION_TYPE_VALUES = [
|
|
|
2066
2071
|
'email',
|
|
2067
2072
|
] as const satisfies ReadonlyArray<VerificationType>;
|
|
2068
2073
|
|
|
2074
|
+
export const WHITELABEL_BRANDING_TIER = {
|
|
2075
|
+
BASE: "base",
|
|
2076
|
+
PLUS: "plus",
|
|
2077
|
+
} as const satisfies Record<string, WhitelabelBrandingTier>;
|
|
2078
|
+
|
|
2079
|
+
export const WHITELABEL_BRANDING_TIER_VALUES = [
|
|
2080
|
+
'base',
|
|
2081
|
+
'plus',
|
|
2082
|
+
] as const satisfies ReadonlyArray<WhitelabelBrandingTier>;
|
|
2083
|
+
|
|
2069
2084
|
export const WHITELABEL_ONBOARDING_FAILURE_CODE = {
|
|
2070
2085
|
ZONE_NOT_OWNED: "zone_not_owned",
|
|
2071
2086
|
DELEGATION_MISSING: "delegation_missing",
|
package/src/helpers/keys.ts
CHANGED
|
@@ -428,9 +428,12 @@ import type {
|
|
|
428
428
|
VerificationRegistrantDetails,
|
|
429
429
|
Verification,
|
|
430
430
|
VisitsByKeyBucket,
|
|
431
|
-
|
|
431
|
+
WhitelabelBaseCreate,
|
|
432
|
+
WhitelabelBrandingPatch,
|
|
432
433
|
WhitelabelBrandingRecheck,
|
|
433
434
|
WhitelabelBranding,
|
|
435
|
+
WhitelabelPlusCreate,
|
|
436
|
+
WhitelabelUpgradeToPlus,
|
|
434
437
|
WhoisBase,
|
|
435
438
|
ZoneVanitySetUpdate,
|
|
436
439
|
ZonesContext,
|
|
@@ -5810,17 +5813,23 @@ export const KEYS_VISITS_BY_KEY_BUCKET = [
|
|
|
5810
5813
|
KEY_VISITS_BY_KEY_BUCKET_UNIQUE,
|
|
5811
5814
|
] as const satisfies (keyof VisitsByKeyBucket)[];
|
|
5812
5815
|
|
|
5813
|
-
export const
|
|
5814
|
-
export const
|
|
5815
|
-
export const
|
|
5816
|
-
export const KEY_WHITELABEL_BRANDING_CREATE_PERIOD = 'period' satisfies keyof WhitelabelBrandingCreate;
|
|
5816
|
+
export const KEY_WHITELABEL_BASE_CREATE_LABEL = 'label' satisfies keyof WhitelabelBaseCreate;
|
|
5817
|
+
export const KEY_WHITELABEL_BASE_CREATE_PERIOD = 'period' satisfies keyof WhitelabelBaseCreate;
|
|
5818
|
+
export const KEY_WHITELABEL_BASE_CREATE_TIER = 'tier' satisfies keyof WhitelabelBaseCreate;
|
|
5817
5819
|
|
|
5818
|
-
export const
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5820
|
+
export const KEYS_WHITELABEL_BASE_CREATE = [
|
|
5821
|
+
KEY_WHITELABEL_BASE_CREATE_LABEL,
|
|
5822
|
+
KEY_WHITELABEL_BASE_CREATE_PERIOD,
|
|
5823
|
+
KEY_WHITELABEL_BASE_CREATE_TIER,
|
|
5824
|
+
] as const satisfies (keyof WhitelabelBaseCreate)[];
|
|
5825
|
+
|
|
5826
|
+
export const KEY_WHITELABEL_BRANDING_PATCH_ENABLED = 'enabled' satisfies keyof WhitelabelBrandingPatch;
|
|
5827
|
+
export const KEY_WHITELABEL_BRANDING_PATCH_LABEL = 'label' satisfies keyof WhitelabelBrandingPatch;
|
|
5828
|
+
|
|
5829
|
+
export const KEYS_WHITELABEL_BRANDING_PATCH = [
|
|
5830
|
+
KEY_WHITELABEL_BRANDING_PATCH_ENABLED,
|
|
5831
|
+
KEY_WHITELABEL_BRANDING_PATCH_LABEL,
|
|
5832
|
+
] as const satisfies (keyof WhitelabelBrandingPatch)[];
|
|
5824
5833
|
|
|
5825
5834
|
export const KEY_WHITELABEL_BRANDING_RECHECK_AUTH_SUBDOMAIN = 'auth_subdomain' satisfies keyof WhitelabelBrandingRecheck;
|
|
5826
5835
|
export const KEY_WHITELABEL_BRANDING_RECHECK_DASHBOARD_SUBDOMAIN = 'dashboard_subdomain' satisfies keyof WhitelabelBrandingRecheck;
|
|
@@ -5833,7 +5842,9 @@ export const KEYS_WHITELABEL_BRANDING_RECHECK = [
|
|
|
5833
5842
|
] as const satisfies (keyof WhitelabelBrandingRecheck)[];
|
|
5834
5843
|
|
|
5835
5844
|
export const KEY_WHITELABEL_BRANDING_AUTH_HOSTNAME = 'auth_hostname' satisfies keyof WhitelabelBranding;
|
|
5845
|
+
export const KEY_WHITELABEL_BRANDING_BASE_LABEL = 'base_label' satisfies keyof WhitelabelBranding;
|
|
5836
5846
|
export const KEY_WHITELABEL_BRANDING_CREATED_ON = 'created_on' satisfies keyof WhitelabelBranding;
|
|
5847
|
+
export const KEY_WHITELABEL_BRANDING_ENABLED = 'enabled' satisfies keyof WhitelabelBranding;
|
|
5837
5848
|
export const KEY_WHITELABEL_BRANDING_FAILURE_CODE = 'failure_code' satisfies keyof WhitelabelBranding;
|
|
5838
5849
|
export const KEY_WHITELABEL_BRANDING_FAILURE_DETAIL = 'failure_detail' satisfies keyof WhitelabelBranding;
|
|
5839
5850
|
export const KEY_WHITELABEL_BRANDING_FAILURE_TYPE = 'failure_type' satisfies keyof WhitelabelBranding;
|
|
@@ -5841,13 +5852,16 @@ export const KEY_WHITELABEL_BRANDING_HOSTNAME = 'hostname' satisfies keyof White
|
|
|
5841
5852
|
export const KEY_WHITELABEL_BRANDING_KEYCLOAK_CLIENT_ID = 'keycloak_client_id' satisfies keyof WhitelabelBranding;
|
|
5842
5853
|
export const KEY_WHITELABEL_BRANDING_ONBOARDING_STATUS = 'onboarding_status' satisfies keyof WhitelabelBranding;
|
|
5843
5854
|
export const KEY_WHITELABEL_BRANDING_ORGANIZATION_ID = 'organization_id' satisfies keyof WhitelabelBranding;
|
|
5855
|
+
export const KEY_WHITELABEL_BRANDING_TIER = 'tier' satisfies keyof WhitelabelBranding;
|
|
5844
5856
|
export const KEY_WHITELABEL_BRANDING_UPDATED_ON = 'updated_on' satisfies keyof WhitelabelBranding;
|
|
5845
5857
|
export const KEY_WHITELABEL_BRANDING_VERIFICATION_DOMAIN = 'verification_domain' satisfies keyof WhitelabelBranding;
|
|
5846
5858
|
export const KEY_WHITELABEL_BRANDING_WHITELABEL_BRANDING_ID = 'whitelabel_branding_id' satisfies keyof WhitelabelBranding;
|
|
5847
5859
|
|
|
5848
5860
|
export const KEYS_WHITELABEL_BRANDING = [
|
|
5849
5861
|
KEY_WHITELABEL_BRANDING_AUTH_HOSTNAME,
|
|
5862
|
+
KEY_WHITELABEL_BRANDING_BASE_LABEL,
|
|
5850
5863
|
KEY_WHITELABEL_BRANDING_CREATED_ON,
|
|
5864
|
+
KEY_WHITELABEL_BRANDING_ENABLED,
|
|
5851
5865
|
KEY_WHITELABEL_BRANDING_FAILURE_CODE,
|
|
5852
5866
|
KEY_WHITELABEL_BRANDING_FAILURE_DETAIL,
|
|
5853
5867
|
KEY_WHITELABEL_BRANDING_FAILURE_TYPE,
|
|
@@ -5855,11 +5869,38 @@ export const KEYS_WHITELABEL_BRANDING = [
|
|
|
5855
5869
|
KEY_WHITELABEL_BRANDING_KEYCLOAK_CLIENT_ID,
|
|
5856
5870
|
KEY_WHITELABEL_BRANDING_ONBOARDING_STATUS,
|
|
5857
5871
|
KEY_WHITELABEL_BRANDING_ORGANIZATION_ID,
|
|
5872
|
+
KEY_WHITELABEL_BRANDING_TIER,
|
|
5858
5873
|
KEY_WHITELABEL_BRANDING_UPDATED_ON,
|
|
5859
5874
|
KEY_WHITELABEL_BRANDING_VERIFICATION_DOMAIN,
|
|
5860
5875
|
KEY_WHITELABEL_BRANDING_WHITELABEL_BRANDING_ID,
|
|
5861
5876
|
] as const satisfies (keyof WhitelabelBranding)[];
|
|
5862
5877
|
|
|
5878
|
+
export const KEY_WHITELABEL_PLUS_CREATE_AUTH_SUBDOMAIN = 'auth_subdomain' satisfies keyof WhitelabelPlusCreate;
|
|
5879
|
+
export const KEY_WHITELABEL_PLUS_CREATE_DASHBOARD_SUBDOMAIN = 'dashboard_subdomain' satisfies keyof WhitelabelPlusCreate;
|
|
5880
|
+
export const KEY_WHITELABEL_PLUS_CREATE_HOSTNAME = 'hostname' satisfies keyof WhitelabelPlusCreate;
|
|
5881
|
+
export const KEY_WHITELABEL_PLUS_CREATE_LABEL = 'label' satisfies keyof WhitelabelPlusCreate;
|
|
5882
|
+
export const KEY_WHITELABEL_PLUS_CREATE_PERIOD = 'period' satisfies keyof WhitelabelPlusCreate;
|
|
5883
|
+
export const KEY_WHITELABEL_PLUS_CREATE_TIER = 'tier' satisfies keyof WhitelabelPlusCreate;
|
|
5884
|
+
|
|
5885
|
+
export const KEYS_WHITELABEL_PLUS_CREATE = [
|
|
5886
|
+
KEY_WHITELABEL_PLUS_CREATE_AUTH_SUBDOMAIN,
|
|
5887
|
+
KEY_WHITELABEL_PLUS_CREATE_DASHBOARD_SUBDOMAIN,
|
|
5888
|
+
KEY_WHITELABEL_PLUS_CREATE_HOSTNAME,
|
|
5889
|
+
KEY_WHITELABEL_PLUS_CREATE_LABEL,
|
|
5890
|
+
KEY_WHITELABEL_PLUS_CREATE_PERIOD,
|
|
5891
|
+
KEY_WHITELABEL_PLUS_CREATE_TIER,
|
|
5892
|
+
] as const satisfies (keyof WhitelabelPlusCreate)[];
|
|
5893
|
+
|
|
5894
|
+
export const KEY_WHITELABEL_UPGRADE_TO_PLUS_AUTH_SUBDOMAIN = 'auth_subdomain' satisfies keyof WhitelabelUpgradeToPlus;
|
|
5895
|
+
export const KEY_WHITELABEL_UPGRADE_TO_PLUS_DASHBOARD_SUBDOMAIN = 'dashboard_subdomain' satisfies keyof WhitelabelUpgradeToPlus;
|
|
5896
|
+
export const KEY_WHITELABEL_UPGRADE_TO_PLUS_HOSTNAME = 'hostname' satisfies keyof WhitelabelUpgradeToPlus;
|
|
5897
|
+
|
|
5898
|
+
export const KEYS_WHITELABEL_UPGRADE_TO_PLUS = [
|
|
5899
|
+
KEY_WHITELABEL_UPGRADE_TO_PLUS_AUTH_SUBDOMAIN,
|
|
5900
|
+
KEY_WHITELABEL_UPGRADE_TO_PLUS_DASHBOARD_SUBDOMAIN,
|
|
5901
|
+
KEY_WHITELABEL_UPGRADE_TO_PLUS_HOSTNAME,
|
|
5902
|
+
] as const satisfies (keyof WhitelabelUpgradeToPlus)[];
|
|
5903
|
+
|
|
5863
5904
|
export const KEY_WHOIS_BASE_WHOIS_SERVER = 'whois_server' satisfies keyof WhoisBase;
|
|
5864
5905
|
|
|
5865
5906
|
export const KEYS_WHOIS_BASE = [
|
|
@@ -55,7 +55,8 @@ import type {
|
|
|
55
55
|
UserUpdate,
|
|
56
56
|
VanityNameserverSetCreate,
|
|
57
57
|
VanityNsCheckPublicReq,
|
|
58
|
-
|
|
58
|
+
WhitelabelBrandingPatch,
|
|
59
|
+
WhitelabelUpgradeToPlus,
|
|
59
60
|
ZoneVanitySetUpdate,
|
|
60
61
|
} from './schemas';
|
|
61
62
|
|
|
@@ -1151,10 +1152,13 @@ export type DELETE_VanityNameserverSetsDefault_Request = {
|
|
|
1151
1152
|
export type GET_WhitelabelBranding_Request = {
|
|
1152
1153
|
};
|
|
1153
1154
|
|
|
1155
|
+
export type PATCH_WhitelabelBranding_Request = {
|
|
1156
|
+
requestBody: WhitelabelBrandingPatch;
|
|
1157
|
+
};
|
|
1158
|
+
export type PATCH_WhitelabelBranding_Request_Body = PATCH_WhitelabelBranding_Request['requestBody'];
|
|
1159
|
+
|
|
1154
1160
|
export type POST_WhitelabelBranding_Request = {
|
|
1155
|
-
requestBody: WhitelabelBrandingCreate;
|
|
1156
1161
|
};
|
|
1157
|
-
export type POST_WhitelabelBranding_Request_Body = POST_WhitelabelBranding_Request['requestBody'];
|
|
1158
1162
|
|
|
1159
1163
|
export type POST_WhitelabelBrandingEmailPreview_Request = {
|
|
1160
1164
|
requestBody: PreviewMailReq;
|
|
@@ -1166,3 +1170,8 @@ export type GET_WhitelabelBrandingEmailTemplates_Request = {
|
|
|
1166
1170
|
|
|
1167
1171
|
export type POST_WhitelabelBrandingRecheck_Request = {
|
|
1168
1172
|
};
|
|
1173
|
+
|
|
1174
|
+
export type POST_WhitelabelBrandingTier_Request = {
|
|
1175
|
+
requestBody: WhitelabelUpgradeToPlus;
|
|
1176
|
+
};
|
|
1177
|
+
export type POST_WhitelabelBrandingTier_Request_Body = POST_WhitelabelBrandingTier_Request['requestBody'];
|
|
@@ -1018,6 +1018,11 @@ export type PATCH_VanityNameserverSetsBySetIdDefault_Response = PATCH_VanityName
|
|
|
1018
1018
|
export type PATCH_VanityNameserverSetsBySetIdDefault_Response_200 = SetVanityNameserverSetDefaultRes;
|
|
1019
1019
|
export type PATCH_VanityNameserverSetsBySetIdDefault_Response_422 = HTTPValidationError;
|
|
1020
1020
|
|
|
1021
|
+
export type PATCH_WhitelabelBranding_Response = PATCH_WhitelabelBranding_Response_202 | PATCH_WhitelabelBranding_Response_422;
|
|
1022
|
+
|
|
1023
|
+
export type PATCH_WhitelabelBranding_Response_202 = WhitelabelBranding;
|
|
1024
|
+
export type PATCH_WhitelabelBranding_Response_422 = HTTPValidationError;
|
|
1025
|
+
|
|
1021
1026
|
export type POST_AiConciergeConversations_Response = POST_AiConciergeConversations_Response_201 | POST_AiConciergeConversations_Response_401 | POST_AiConciergeConversations_Response_404 | POST_AiConciergeConversations_Response_422 | POST_AiConciergeConversations_Response_502;
|
|
1022
1027
|
|
|
1023
1028
|
export type POST_AiConciergeConversations_Response_201 = Conversation;
|
|
@@ -1413,6 +1418,11 @@ export type POST_WhitelabelBrandingRecheck_Response = POST_WhitelabelBrandingRec
|
|
|
1413
1418
|
export type POST_WhitelabelBrandingRecheck_Response_202 = WhitelabelBranding;
|
|
1414
1419
|
export type POST_WhitelabelBrandingRecheck_Response_422 = HTTPValidationError;
|
|
1415
1420
|
|
|
1421
|
+
export type POST_WhitelabelBrandingTier_Response = POST_WhitelabelBrandingTier_Response_202 | POST_WhitelabelBrandingTier_Response_422;
|
|
1422
|
+
|
|
1423
|
+
export type POST_WhitelabelBrandingTier_Response_202 = ProductCreateRes;
|
|
1424
|
+
export type POST_WhitelabelBrandingTier_Response_422 = HTTPValidationError;
|
|
1425
|
+
|
|
1416
1426
|
export type PUT_ContactsByContactIdVerification_Response = PUT_ContactsByContactIdVerification_Response_400 | PUT_ContactsByContactIdVerification_Response_401 | PUT_ContactsByContactIdVerification_Response_403 | PUT_ContactsByContactIdVerification_Response_404 | PUT_ContactsByContactIdVerification_Response_422;
|
|
1417
1427
|
|
|
1418
1428
|
export type PUT_ContactsByContactIdVerification_Response_400 = Problem;
|
package/src/helpers/schemas.d.ts
CHANGED
|
@@ -569,12 +569,16 @@ export type VerificationRegistrantDetails = components['schemas']['VerificationR
|
|
|
569
569
|
export type Verification = components['schemas']['VerificationResponse'];
|
|
570
570
|
export type VerificationType = components['schemas']['VerificationType'];
|
|
571
571
|
export type VisitsByKeyBucket = components['schemas']['VisitsByKeyBucket'];
|
|
572
|
-
export type
|
|
572
|
+
export type WhitelabelBaseCreate = components['schemas']['WhitelabelBaseCreate'];
|
|
573
|
+
export type WhitelabelBrandingPatch = components['schemas']['WhitelabelBrandingPatch'];
|
|
573
574
|
export type WhitelabelBrandingRecheck = components['schemas']['WhitelabelBrandingRecheck'];
|
|
574
575
|
export type WhitelabelBranding = components['schemas']['WhitelabelBrandingResponse'];
|
|
576
|
+
export type WhitelabelBrandingTier = components['schemas']['WhitelabelBrandingTier'];
|
|
575
577
|
export type WhitelabelOnboardingFailureCode = components['schemas']['WhitelabelOnboardingFailureCode'];
|
|
576
578
|
export type WhitelabelOnboardingFailureType = components['schemas']['WhitelabelOnboardingFailureType'];
|
|
577
579
|
export type WhitelabelOnboardingStatus = components['schemas']['WhitelabelOnboardingStatus'];
|
|
580
|
+
export type WhitelabelPlusCreate = components['schemas']['WhitelabelPlusCreate'];
|
|
581
|
+
export type WhitelabelUpgradeToPlus = components['schemas']['WhitelabelUpgradeToPlus'];
|
|
578
582
|
export type WhoisBase = components['schemas']['WhoisBase'];
|
|
579
583
|
export type ZoneIncludeField = components['schemas']['ZoneIncludeField'];
|
|
580
584
|
export type ZoneSortField = components['schemas']['ZoneSortField'];
|
package/src/openapi.yaml
CHANGED
|
@@ -263,6 +263,7 @@ components:
|
|
|
263
263
|
- trade
|
|
264
264
|
- application
|
|
265
265
|
- service_fee
|
|
266
|
+
- upgrade_fee
|
|
266
267
|
- wallet_top_up
|
|
267
268
|
title: BillingTransactionAction
|
|
268
269
|
type: string
|
|
@@ -275,6 +276,7 @@ components:
|
|
|
275
276
|
- account_wallet
|
|
276
277
|
- vanity_nameserver
|
|
277
278
|
- whitelabel_branding
|
|
279
|
+
- whitelabel_branding_plus
|
|
278
280
|
title: BillingTransactionProductType
|
|
279
281
|
type: string
|
|
280
282
|
BillingTransactionResponse:
|
|
@@ -14541,53 +14543,59 @@ components:
|
|
|
14541
14543
|
- unique
|
|
14542
14544
|
title: VisitsByKeyBucket
|
|
14543
14545
|
type: object
|
|
14544
|
-
|
|
14545
|
-
|
|
14546
|
-
|
|
14547
|
-
|
|
14548
|
-
|
|
14549
|
-
|
|
14550
|
-
|
|
14551
|
-
|
|
14546
|
+
WhitelabelBaseCreate:
|
|
14547
|
+
additionalProperties: false
|
|
14548
|
+
description: 'Create the base tier: served on a managed subdomain composed from
|
|
14549
|
+
`label`.'
|
|
14550
|
+
properties:
|
|
14551
|
+
label:
|
|
14552
|
+
description: Managed-subdomain label; composed into app.<label>.<base-tier
|
|
14553
|
+
suffix> / auth.<label>.<suffix>
|
|
14554
|
+
maxLength: 63
|
|
14555
|
+
minLength: 1
|
|
14556
|
+
title: Label
|
|
14557
|
+
type: string
|
|
14558
|
+
period:
|
|
14559
|
+
$ref: '#/components/schemas/Period'
|
|
14560
|
+
description: 'Billing period; offered: 1 month or 1 year'
|
|
14561
|
+
tier:
|
|
14562
|
+
const: base
|
|
14563
|
+
title: Tier
|
|
14564
|
+
type: string
|
|
14565
|
+
required:
|
|
14566
|
+
- tier
|
|
14567
|
+
- label
|
|
14568
|
+
- period
|
|
14569
|
+
title: WhitelabelBaseCreate
|
|
14570
|
+
type: object
|
|
14571
|
+
WhitelabelBrandingPatch:
|
|
14572
|
+
description: 'Public patch body. Neither field is a purchase, so nothing here
|
|
14573
|
+
touches the subscription or
|
|
14552
14574
|
|
|
14553
|
-
`
|
|
14575
|
+
its price: `label` moves the base subdomain to a different label (base tier
|
|
14576
|
+
only - a plus
|
|
14554
14577
|
|
|
14555
|
-
|
|
14556
|
-
|
|
14578
|
+
whitelabel is re-pointed by its hostnames through recheck), and `enabled`
|
|
14579
|
+
starts or stops
|
|
14557
14580
|
|
|
14558
|
-
|
|
14581
|
+
serving it. At least one must be given.'
|
|
14559
14582
|
properties:
|
|
14560
|
-
|
|
14561
|
-
description: Subdomain the Keycloak login is served on (e.g. auth -> auth.customer.com)
|
|
14562
|
-
maxLength: 255
|
|
14563
|
-
minLength: 1
|
|
14564
|
-
title: Auth Subdomain
|
|
14565
|
-
type: string
|
|
14566
|
-
dashboard_subdomain:
|
|
14583
|
+
enabled:
|
|
14567
14584
|
anyOf:
|
|
14568
|
-
-
|
|
14585
|
+
- type: boolean
|
|
14586
|
+
- type: 'null'
|
|
14587
|
+
description: Whether this whitelabel should be served
|
|
14588
|
+
title: Enabled
|
|
14589
|
+
label:
|
|
14590
|
+
anyOf:
|
|
14591
|
+
- maxLength: 63
|
|
14569
14592
|
minLength: 1
|
|
14570
14593
|
type: string
|
|
14571
14594
|
- type: 'null'
|
|
14572
|
-
description:
|
|
14573
|
-
|
|
14574
|
-
title:
|
|
14575
|
-
|
|
14576
|
-
description: Domain the whitelabel runs under (e.g. customer.com); must
|
|
14577
|
-
be an OpusDNS-hosted zone
|
|
14578
|
-
maxLength: 255
|
|
14579
|
-
minLength: 1
|
|
14580
|
-
title: Hostname
|
|
14581
|
-
type: string
|
|
14582
|
-
period:
|
|
14583
|
-
$ref: '#/components/schemas/Period'
|
|
14584
|
-
description: 'Billing period for the subscription; offered: 1 month or 1
|
|
14585
|
-
year'
|
|
14586
|
-
required:
|
|
14587
|
-
- hostname
|
|
14588
|
-
- auth_subdomain
|
|
14589
|
-
- period
|
|
14590
|
-
title: WhitelabelBrandingCreate
|
|
14595
|
+
description: New base-tier label; the hostnames become app.<label>.<suffix>
|
|
14596
|
+
/ auth.<label>.<suffix>. Base tier only.
|
|
14597
|
+
title: Label
|
|
14598
|
+
title: WhitelabelBrandingPatch
|
|
14591
14599
|
type: object
|
|
14592
14600
|
WhitelabelBrandingRecheck:
|
|
14593
14601
|
description: 'Public recheck body. Empty = re-run onboarding against the stored
|
|
@@ -14596,10 +14604,10 @@ components:
|
|
|
14596
14604
|
fixing DNS). hostname + auth_subdomain present = re-point a wrong domain before
|
|
14597
14605
|
re-running
|
|
14598
14606
|
|
|
14599
|
-
(pre-provisioning only; server rejects once a Keycloak client exists).
|
|
14600
|
-
|
|
14607
|
+
(pre-provisioning only; server rejects once a Keycloak client exists). Plus
|
|
14608
|
+
tier only - a
|
|
14601
14609
|
|
|
14602
|
-
|
|
14610
|
+
base whitelabel is re-labelled through PATCH instead.'
|
|
14603
14611
|
properties:
|
|
14604
14612
|
auth_subdomain:
|
|
14605
14613
|
anyOf:
|
|
@@ -14632,10 +14640,19 @@ components:
|
|
|
14632
14640
|
minLength: 1
|
|
14633
14641
|
title: Auth Hostname
|
|
14634
14642
|
type: string
|
|
14643
|
+
base_label:
|
|
14644
|
+
maxLength: 255
|
|
14645
|
+
minLength: 1
|
|
14646
|
+
title: Base Label
|
|
14647
|
+
type: string
|
|
14635
14648
|
created_on:
|
|
14636
14649
|
format: date-time
|
|
14637
14650
|
title: Created On
|
|
14638
14651
|
type: string
|
|
14652
|
+
enabled:
|
|
14653
|
+
default: true
|
|
14654
|
+
title: Enabled
|
|
14655
|
+
type: boolean
|
|
14639
14656
|
failure_code:
|
|
14640
14657
|
anyOf:
|
|
14641
14658
|
- $ref: '#/components/schemas/WhitelabelOnboardingFailureCode'
|
|
@@ -14672,6 +14689,8 @@ components:
|
|
|
14672
14689
|
title: Organization Id
|
|
14673
14690
|
type: string
|
|
14674
14691
|
x-typeid-prefix: organization
|
|
14692
|
+
tier:
|
|
14693
|
+
$ref: '#/components/schemas/WhitelabelBrandingTier'
|
|
14675
14694
|
updated_on:
|
|
14676
14695
|
format: date-time
|
|
14677
14696
|
title: Updated On
|
|
@@ -14692,9 +14711,11 @@ components:
|
|
|
14692
14711
|
required:
|
|
14693
14712
|
- whitelabel_branding_id
|
|
14694
14713
|
- organization_id
|
|
14714
|
+
- tier
|
|
14695
14715
|
- onboarding_status
|
|
14696
14716
|
- hostname
|
|
14697
14717
|
- auth_hostname
|
|
14718
|
+
- base_label
|
|
14698
14719
|
- verification_domain
|
|
14699
14720
|
- keycloak_client_id
|
|
14700
14721
|
- created_on
|
|
@@ -14702,6 +14723,29 @@ components:
|
|
|
14702
14723
|
- failure_type
|
|
14703
14724
|
title: WhitelabelBrandingResponse
|
|
14704
14725
|
type: object
|
|
14726
|
+
WhitelabelBrandingTier:
|
|
14727
|
+
description: 'Which tier a whitelabel config is on. One config per organization,
|
|
14728
|
+
one tier at a time.
|
|
14729
|
+
|
|
14730
|
+
|
|
14731
|
+
BASE serves the customer on a subdomain of an OpusDNS-owned zone; PLUS serves
|
|
14732
|
+
them on their
|
|
14733
|
+
|
|
14734
|
+
own domain. A whitelabel switches between the two in place (a plan change),
|
|
14735
|
+
so `tier` is a
|
|
14736
|
+
|
|
14737
|
+
mutable attribute of the single config row, never a discriminator between
|
|
14738
|
+
two rows. Deliberately
|
|
14739
|
+
|
|
14740
|
+
stored rather than inferred from the hostname, so a base-zone rename can never
|
|
14741
|
+
re-route the row
|
|
14742
|
+
|
|
14743
|
+
down the wrong onboarding path.'
|
|
14744
|
+
enum:
|
|
14745
|
+
- base
|
|
14746
|
+
- plus
|
|
14747
|
+
title: WhitelabelBrandingTier
|
|
14748
|
+
type: string
|
|
14705
14749
|
WhitelabelOnboardingFailureCode:
|
|
14706
14750
|
description: 'Stable, frontend-facing reason a terminal onboarding failure happened.
|
|
14707
14751
|
The free-text
|
|
@@ -14734,6 +14778,99 @@ components:
|
|
|
14734
14778
|
- failed
|
|
14735
14779
|
title: WhitelabelOnboardingStatus
|
|
14736
14780
|
type: string
|
|
14781
|
+
WhitelabelPlusCreate:
|
|
14782
|
+
additionalProperties: false
|
|
14783
|
+
description: 'Create the plus tier: served on the customer''s own domain; `label`
|
|
14784
|
+
still reserves a base
|
|
14785
|
+
|
|
14786
|
+
subdomain (kept for the redirect/downgrade).'
|
|
14787
|
+
properties:
|
|
14788
|
+
auth_subdomain:
|
|
14789
|
+
description: Subdomain the Keycloak login is served on (e.g. auth -> auth.customer.com)
|
|
14790
|
+
maxLength: 255
|
|
14791
|
+
minLength: 1
|
|
14792
|
+
title: Auth Subdomain
|
|
14793
|
+
type: string
|
|
14794
|
+
dashboard_subdomain:
|
|
14795
|
+
anyOf:
|
|
14796
|
+
- maxLength: 255
|
|
14797
|
+
minLength: 1
|
|
14798
|
+
type: string
|
|
14799
|
+
- type: 'null'
|
|
14800
|
+
description: Subdomain the dashboard is served on (e.g. dash -> dash.customer.com);
|
|
14801
|
+
omit for apex
|
|
14802
|
+
title: Dashboard Subdomain
|
|
14803
|
+
hostname:
|
|
14804
|
+
description: Domain the whitelabel runs under (e.g. customer.com); an OpusDNS-hosted
|
|
14805
|
+
zone owned by the org
|
|
14806
|
+
maxLength: 255
|
|
14807
|
+
minLength: 1
|
|
14808
|
+
title: Hostname
|
|
14809
|
+
type: string
|
|
14810
|
+
label:
|
|
14811
|
+
description: Managed-subdomain label reserved for the redirect/downgrade
|
|
14812
|
+
maxLength: 63
|
|
14813
|
+
minLength: 1
|
|
14814
|
+
title: Label
|
|
14815
|
+
type: string
|
|
14816
|
+
period:
|
|
14817
|
+
$ref: '#/components/schemas/Period'
|
|
14818
|
+
description: 'Billing period; offered: 1 month or 1 year'
|
|
14819
|
+
tier:
|
|
14820
|
+
const: plus
|
|
14821
|
+
title: Tier
|
|
14822
|
+
type: string
|
|
14823
|
+
required:
|
|
14824
|
+
- hostname
|
|
14825
|
+
- auth_subdomain
|
|
14826
|
+
- tier
|
|
14827
|
+
- label
|
|
14828
|
+
- period
|
|
14829
|
+
title: WhitelabelPlusCreate
|
|
14830
|
+
type: object
|
|
14831
|
+
WhitelabelUpgradeToPlus:
|
|
14832
|
+
additionalProperties: false
|
|
14833
|
+
description: 'Upgrade the whitelabel to the plus tier, served on the customer''s
|
|
14834
|
+
own domain. This is NOT a
|
|
14835
|
+
|
|
14836
|
+
term change: the subscription keeps its period and renewal date and simply
|
|
14837
|
+
renews at the plus
|
|
14838
|
+
|
|
14839
|
+
price. A yearly upgrade bills a one-time prorated difference for the remaining
|
|
14840
|
+
whole months; a
|
|
14841
|
+
|
|
14842
|
+
monthly upgrade bills nothing now. Downgrades (plus -> base) are not supported
|
|
14843
|
+
- cancel + rebook
|
|
14844
|
+
|
|
14845
|
+
instead - so this body only ever moves to plus (no tier field, no period).'
|
|
14846
|
+
properties:
|
|
14847
|
+
auth_subdomain:
|
|
14848
|
+
description: Subdomain the Keycloak login is served on (e.g. auth -> auth.customer.com)
|
|
14849
|
+
maxLength: 255
|
|
14850
|
+
minLength: 1
|
|
14851
|
+
title: Auth Subdomain
|
|
14852
|
+
type: string
|
|
14853
|
+
dashboard_subdomain:
|
|
14854
|
+
anyOf:
|
|
14855
|
+
- maxLength: 255
|
|
14856
|
+
minLength: 1
|
|
14857
|
+
type: string
|
|
14858
|
+
- type: 'null'
|
|
14859
|
+
description: Subdomain the dashboard is served on (e.g. dash -> dash.customer.com);
|
|
14860
|
+
omit for apex
|
|
14861
|
+
title: Dashboard Subdomain
|
|
14862
|
+
hostname:
|
|
14863
|
+
description: Domain the whitelabel runs under (e.g. customer.com); an OpusDNS-hosted
|
|
14864
|
+
zone owned by the org
|
|
14865
|
+
maxLength: 255
|
|
14866
|
+
minLength: 1
|
|
14867
|
+
title: Hostname
|
|
14868
|
+
type: string
|
|
14869
|
+
required:
|
|
14870
|
+
- hostname
|
|
14871
|
+
- auth_subdomain
|
|
14872
|
+
title: WhitelabelUpgradeToPlus
|
|
14873
|
+
type: object
|
|
14737
14874
|
WhoisBase:
|
|
14738
14875
|
properties:
|
|
14739
14876
|
whois_server:
|
|
@@ -15176,7 +15313,7 @@ info:
|
|
|
15176
15313
|
\n\n"
|
|
15177
15314
|
summary: OpusDNS - your gateway to a seamless domain management experience.
|
|
15178
15315
|
title: OpusDNS API
|
|
15179
|
-
version: 2026-08-
|
|
15316
|
+
version: 2026-08-13-160906
|
|
15180
15317
|
x-logo:
|
|
15181
15318
|
altText: OpusDNS API Reference
|
|
15182
15319
|
url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
|
|
@@ -32182,6 +32319,37 @@ paths:
|
|
|
32182
32319
|
- whitelabel
|
|
32183
32320
|
x-required-permissions:
|
|
32184
32321
|
- whitelabel_branding:read
|
|
32322
|
+
patch:
|
|
32323
|
+
operationId: patch_whitelabel_branding_v1_whitelabel_branding_patch
|
|
32324
|
+
parameters:
|
|
32325
|
+
- $ref: '#/components/parameters/DatetimeFormatHeader'
|
|
32326
|
+
requestBody:
|
|
32327
|
+
content:
|
|
32328
|
+
application/json:
|
|
32329
|
+
schema:
|
|
32330
|
+
$ref: '#/components/schemas/WhitelabelBrandingPatch'
|
|
32331
|
+
required: true
|
|
32332
|
+
responses:
|
|
32333
|
+
'202':
|
|
32334
|
+
content:
|
|
32335
|
+
application/json:
|
|
32336
|
+
schema:
|
|
32337
|
+
$ref: '#/components/schemas/WhitelabelBrandingResponse'
|
|
32338
|
+
description: Successful Response
|
|
32339
|
+
'422':
|
|
32340
|
+
content:
|
|
32341
|
+
application/problem+json:
|
|
32342
|
+
schema:
|
|
32343
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
32344
|
+
description: Validation Error
|
|
32345
|
+
security:
|
|
32346
|
+
- OAuth2PasswordBearer: []
|
|
32347
|
+
- APIKeyHeader: []
|
|
32348
|
+
summary: Change the organization's whitelabel branding config (relabel / enable)
|
|
32349
|
+
tags:
|
|
32350
|
+
- whitelabel
|
|
32351
|
+
x-required-permissions:
|
|
32352
|
+
- whitelabel_branding:manage
|
|
32185
32353
|
post:
|
|
32186
32354
|
operationId: create_whitelabel_branding_v1_whitelabel_branding_post
|
|
32187
32355
|
parameters:
|
|
@@ -32190,7 +32358,15 @@ paths:
|
|
|
32190
32358
|
content:
|
|
32191
32359
|
application/json:
|
|
32192
32360
|
schema:
|
|
32193
|
-
|
|
32361
|
+
discriminator:
|
|
32362
|
+
mapping:
|
|
32363
|
+
base: '#/components/schemas/WhitelabelBaseCreate'
|
|
32364
|
+
plus: '#/components/schemas/WhitelabelPlusCreate'
|
|
32365
|
+
propertyName: tier
|
|
32366
|
+
oneOf:
|
|
32367
|
+
- $ref: '#/components/schemas/WhitelabelBaseCreate'
|
|
32368
|
+
- $ref: '#/components/schemas/WhitelabelPlusCreate'
|
|
32369
|
+
title: Body
|
|
32194
32370
|
required: true
|
|
32195
32371
|
responses:
|
|
32196
32372
|
'202':
|
|
@@ -32208,7 +32384,7 @@ paths:
|
|
|
32208
32384
|
security:
|
|
32209
32385
|
- OAuth2PasswordBearer: []
|
|
32210
32386
|
- APIKeyHeader: []
|
|
32211
|
-
summary:
|
|
32387
|
+
summary: Buy the organization's whitelabel branding (base or plus tier)
|
|
32212
32388
|
tags:
|
|
32213
32389
|
- whitelabel
|
|
32214
32390
|
x-required-permissions:
|
|
@@ -32305,6 +32481,39 @@ paths:
|
|
|
32305
32481
|
- whitelabel
|
|
32306
32482
|
x-required-permissions:
|
|
32307
32483
|
- whitelabel_branding:manage
|
|
32484
|
+
/v1/whitelabel-branding/tier:
|
|
32485
|
+
post:
|
|
32486
|
+
operationId: upgrade_whitelabel_to_plus_v1_whitelabel_branding_tier_post
|
|
32487
|
+
parameters:
|
|
32488
|
+
- $ref: '#/components/parameters/DatetimeFormatHeader'
|
|
32489
|
+
requestBody:
|
|
32490
|
+
content:
|
|
32491
|
+
application/json:
|
|
32492
|
+
schema:
|
|
32493
|
+
$ref: '#/components/schemas/WhitelabelUpgradeToPlus'
|
|
32494
|
+
required: true
|
|
32495
|
+
responses:
|
|
32496
|
+
'202':
|
|
32497
|
+
content:
|
|
32498
|
+
application/json:
|
|
32499
|
+
schema:
|
|
32500
|
+
$ref: '#/components/schemas/ProductCreateRes'
|
|
32501
|
+
description: Successful Response
|
|
32502
|
+
'422':
|
|
32503
|
+
content:
|
|
32504
|
+
application/problem+json:
|
|
32505
|
+
schema:
|
|
32506
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
32507
|
+
description: Validation Error
|
|
32508
|
+
security:
|
|
32509
|
+
- OAuth2PasswordBearer: []
|
|
32510
|
+
- APIKeyHeader: []
|
|
32511
|
+
summary: Upgrade the whitelabel to the plus tier (served on the customer's own
|
|
32512
|
+
domain)
|
|
32513
|
+
tags:
|
|
32514
|
+
- whitelabel
|
|
32515
|
+
x-required-permissions:
|
|
32516
|
+
- whitelabel_branding:manage
|
|
32308
32517
|
servers:
|
|
32309
32518
|
- description: Production environment
|
|
32310
32519
|
url: https://api.opusdns.com
|
|
@@ -32729,10 +32938,94 @@ tags:
|
|
|
32729
32938
|
- description: 'Endpoints for managing an organization''s whitelabel branding configuration.
|
|
32730
32939
|
|
|
32731
32940
|
|
|
32732
|
-
|
|
32733
|
-
|
|
32734
|
-
`
|
|
32735
|
-
|
|
32941
|
+
An organization has one whitelabel config, on one tier at a time.
|
|
32942
|
+
|
|
32943
|
+
`GET /v1/whitelabel-branding` returns it, or `404` when nothing is set up.
|
|
32944
|
+
|
|
32945
|
+
|
|
32946
|
+
The **base** tier serves the customer on a subdomain of a zone OpusDNS owns, so
|
|
32947
|
+
it needs nothing from them but a name.
|
|
32948
|
+
|
|
32949
|
+
The **plus** tier serves them on their own domain for the fully unbranded experience.
|
|
32950
|
+
|
|
32951
|
+
|
|
32952
|
+
`POST /v1/whitelabel-branding` buys a whitelabel on the chosen tier: `{"tier":
|
|
32953
|
+
"base", "label": "acme", "period": {"value": 1, "unit": "y"}}`, or for plus `{"tier":
|
|
32954
|
+
"plus", "label": "acme", "hostname": "customer.com", "dashboard_subdomain": "dash",
|
|
32955
|
+
"auth_subdomain": "auth", "period": {...}}`.
|
|
32956
|
+
|
|
32957
|
+
A `label` is required for both tiers: every whitelabel keeps a managed subdomain,
|
|
32958
|
+
composed by branding-service as `<label>-<hash>.<base-tier suffix>` and `<label>-<hash>-auth.<base-tier
|
|
32959
|
+
suffix>`, where the hash comes from a per-organization secret it alone holds.
|
|
32960
|
+
|
|
32961
|
+
For base, that composed pair is what gets served; onboarding skips DNS verification
|
|
32962
|
+
and the edge CNAME, because that zone has wildcard DNS and a wildcard certificate.
|
|
32963
|
+
|
|
32964
|
+
For plus, the customer''s own domain is served instead (omitting `dashboard_subdomain`
|
|
32965
|
+
serves the dashboard on the apex); the domain must be an OpusDNS-hosted zone owned
|
|
32966
|
+
by the organization, which onboarding verifies before pointing both hosts at the
|
|
32967
|
+
whitelabel edge.
|
|
32968
|
+
|
|
32969
|
+
Labels are validated on the way in, and branding-service additionally rejects
|
|
32970
|
+
reserved ones (that rejection surfaces as a 400).
|
|
32971
|
+
|
|
32972
|
+
Because every whitelabel composes its label, both tiers are only purchasable in
|
|
32973
|
+
environments configured with a base-tier zone; elsewhere create answers 403.
|
|
32974
|
+
|
|
32975
|
+
|
|
32976
|
+
Both tiers are paid, and a whitelabel is a single subscription: the tiers are
|
|
32977
|
+
alternatives, not add-ons.
|
|
32978
|
+
|
|
32979
|
+
|
|
32980
|
+
`POST /v1/whitelabel-branding/tier` upgrades a base whitelabel to plus in place,
|
|
32981
|
+
with the plus create''s domain fields (`hostname`, `dashboard_subdomain`, `auth_subdomain`
|
|
32982
|
+
- no `tier`, no `period`).
|
|
32983
|
+
|
|
32984
|
+
The subscription keeps its term and renewal date and simply renews at the plus
|
|
32985
|
+
price; a yearly term additionally settles a one-time prorated fee for the remaining
|
|
32986
|
+
whole months now, a monthly term pays nothing now.
|
|
32987
|
+
|
|
32988
|
+
The managed subdomain label is kept.
|
|
32989
|
+
|
|
32990
|
+
Downgrades are not offered (cancel and rebook instead), so a whitelabel already
|
|
32991
|
+
on plus answers 409.
|
|
32992
|
+
|
|
32993
|
+
|
|
32994
|
+
`POST /v1/whitelabel-branding/recheck` re-runs onboarding - the customer''s retry
|
|
32995
|
+
after fixing their DNS setup.
|
|
32996
|
+
|
|
32997
|
+
A plus recheck may also carry a corrected `hostname` plus subdomains to re-point
|
|
32998
|
+
the config before re-running, which is accepted only before provisioning has started.
|
|
32999
|
+
|
|
33000
|
+
A base whitelabel takes no repoint: its hostnames come from its label, so it is
|
|
33001
|
+
moved with `PATCH` instead.
|
|
33002
|
+
|
|
33003
|
+
|
|
33004
|
+
A disabled whitelabel answers 409 to both `/recheck` and `/tier`: re-enable it
|
|
33005
|
+
first (`PATCH {"enabled": true}` alone re-runs the reconcile).
|
|
33006
|
+
|
|
33007
|
+
|
|
33008
|
+
`PATCH /v1/whitelabel-branding` changes the config without touching its subscription
|
|
33009
|
+
or price.
|
|
33010
|
+
|
|
33011
|
+
`{"label": "newname"}` moves a base-tier whitelabel to a different subdomain,
|
|
33012
|
+
accepted only before provisioning has started (a plus whitelabel has no served
|
|
33013
|
+
label - it is re-pointed by its hostnames through recheck).
|
|
33014
|
+
|
|
33015
|
+
`{"enabled": false}` stops serving the whitelabel: its login client is disabled
|
|
33016
|
+
and OpusDNS withdraws its routing - the managed subdomain is unpublished for base,
|
|
33017
|
+
the DNS edge records are removed for plus (a plus host whose DNS is pointed at
|
|
33018
|
+
the edge manually keeps reaching the branded dashboard, but its login stays disabled).
|
|
33019
|
+
|
|
33020
|
+
The configuration, the branding document and the provisioning history are kept,
|
|
33021
|
+
so `{"enabled": true}` brings it back without re-provisioning.
|
|
33022
|
+
|
|
33023
|
+
Like the other write routes this is asynchronous: the response is `202` once the
|
|
33024
|
+
change is recorded, and a job converges the login client and the routing to it
|
|
33025
|
+
shortly after.
|
|
33026
|
+
|
|
33027
|
+
Disabling a whitelabel does **not** cancel its subscription; billing continues
|
|
33028
|
+
until the subscription itself is cancelled.
|
|
32736
33029
|
|
|
32737
33030
|
'
|
|
32738
33031
|
name: whitelabel
|
package/src/schema.d.ts
CHANGED
|
@@ -2937,12 +2937,13 @@ export interface paths {
|
|
|
2937
2937
|
/** Get the organization's whitelabel branding config */
|
|
2938
2938
|
get: operations["get_whitelabel_branding_v1_whitelabel_branding_get"];
|
|
2939
2939
|
put?: never;
|
|
2940
|
-
/**
|
|
2940
|
+
/** Buy the organization's whitelabel branding (base or plus tier) */
|
|
2941
2941
|
post: operations["create_whitelabel_branding_v1_whitelabel_branding_post"];
|
|
2942
2942
|
delete?: never;
|
|
2943
2943
|
options?: never;
|
|
2944
2944
|
head?: never;
|
|
2945
|
-
|
|
2945
|
+
/** Change the organization's whitelabel branding config (relabel / enable) */
|
|
2946
|
+
patch: operations["patch_whitelabel_branding_v1_whitelabel_branding_patch"];
|
|
2946
2947
|
trace?: never;
|
|
2947
2948
|
};
|
|
2948
2949
|
"/v1/whitelabel-branding/email/preview": {
|
|
@@ -2996,6 +2997,23 @@ export interface paths {
|
|
|
2996
2997
|
patch?: never;
|
|
2997
2998
|
trace?: never;
|
|
2998
2999
|
};
|
|
3000
|
+
"/v1/whitelabel-branding/tier": {
|
|
3001
|
+
parameters: {
|
|
3002
|
+
query?: never;
|
|
3003
|
+
header?: never;
|
|
3004
|
+
path?: never;
|
|
3005
|
+
cookie?: never;
|
|
3006
|
+
};
|
|
3007
|
+
get?: never;
|
|
3008
|
+
put?: never;
|
|
3009
|
+
/** Upgrade the whitelabel to the plus tier (served on the customer's own domain) */
|
|
3010
|
+
post: operations["upgrade_whitelabel_to_plus_v1_whitelabel_branding_tier_post"];
|
|
3011
|
+
delete?: never;
|
|
3012
|
+
options?: never;
|
|
3013
|
+
head?: never;
|
|
3014
|
+
patch?: never;
|
|
3015
|
+
trace?: never;
|
|
3016
|
+
};
|
|
2999
3017
|
}
|
|
3000
3018
|
export type webhooks = Record<string, never>;
|
|
3001
3019
|
export interface components {
|
|
@@ -3164,12 +3182,12 @@ export interface components {
|
|
|
3164
3182
|
* BillingTransactionAction
|
|
3165
3183
|
* @enum {string}
|
|
3166
3184
|
*/
|
|
3167
|
-
BillingTransactionAction: "create" | "transfer" | "renew" | "restore" | "trade" | "application" | "service_fee" | "wallet_top_up";
|
|
3185
|
+
BillingTransactionAction: "create" | "transfer" | "renew" | "restore" | "trade" | "application" | "service_fee" | "upgrade_fee" | "wallet_top_up";
|
|
3168
3186
|
/**
|
|
3169
3187
|
* BillingTransactionProductType
|
|
3170
3188
|
* @enum {string}
|
|
3171
3189
|
*/
|
|
3172
|
-
BillingTransactionProductType: "domain" | "zones" | "email_forward" | "domain_forward" | "account_wallet" | "vanity_nameserver" | "whitelabel_branding";
|
|
3190
|
+
BillingTransactionProductType: "domain" | "zones" | "email_forward" | "domain_forward" | "account_wallet" | "vanity_nameserver" | "whitelabel_branding" | "whitelabel_branding_plus";
|
|
3173
3191
|
/** BillingTransactionResponse */
|
|
3174
3192
|
BillingTransactionResponse: {
|
|
3175
3193
|
/** @description The action performed in the transaction */
|
|
@@ -12580,39 +12598,48 @@ export interface components {
|
|
|
12580
12598
|
unique: number;
|
|
12581
12599
|
};
|
|
12582
12600
|
/**
|
|
12583
|
-
*
|
|
12584
|
-
* @description
|
|
12585
|
-
* two whitelabel hosts live on; the full hostnames are composed here. `dashboard_subdomain`
|
|
12586
|
-
* is optional - omitted, the dashboard is served on `hostname` itself (the zone apex when
|
|
12587
|
-
* `hostname` is the bare domain). The owning org comes from auth context, and
|
|
12588
|
-
* `verification_domain` is derived server-side (the registrable domain of the composed
|
|
12589
|
-
* dashboard host), so neither is accepted here.
|
|
12601
|
+
* WhitelabelBaseCreate
|
|
12602
|
+
* @description Create the base tier: served on a managed subdomain composed from `label`.
|
|
12590
12603
|
*/
|
|
12591
|
-
|
|
12604
|
+
WhitelabelBaseCreate: {
|
|
12592
12605
|
/**
|
|
12593
|
-
*
|
|
12594
|
-
* @description
|
|
12606
|
+
* Label
|
|
12607
|
+
* @description Managed-subdomain label; composed into app.<label>.<base-tier suffix> / auth.<label>.<suffix>
|
|
12595
12608
|
*/
|
|
12596
|
-
|
|
12609
|
+
label: string;
|
|
12610
|
+
/** @description Billing period; offered: 1 month or 1 year */
|
|
12611
|
+
period: components["schemas"]["Period"];
|
|
12597
12612
|
/**
|
|
12598
|
-
*
|
|
12599
|
-
* @
|
|
12613
|
+
* @description discriminator enum property added by openapi-typescript
|
|
12614
|
+
* @enum {string}
|
|
12600
12615
|
*/
|
|
12601
|
-
|
|
12616
|
+
tier: "base";
|
|
12617
|
+
};
|
|
12618
|
+
/**
|
|
12619
|
+
* WhitelabelBrandingPatch
|
|
12620
|
+
* @description Public patch body. Neither field is a purchase, so nothing here touches the subscription or
|
|
12621
|
+
* its price: `label` moves the base subdomain to a different label (base tier only - a plus
|
|
12622
|
+
* whitelabel is re-pointed by its hostnames through recheck), and `enabled` starts or stops
|
|
12623
|
+
* serving it. At least one must be given.
|
|
12624
|
+
*/
|
|
12625
|
+
WhitelabelBrandingPatch: {
|
|
12602
12626
|
/**
|
|
12603
|
-
*
|
|
12604
|
-
* @description
|
|
12627
|
+
* Enabled
|
|
12628
|
+
* @description Whether this whitelabel should be served
|
|
12605
12629
|
*/
|
|
12606
|
-
|
|
12607
|
-
/**
|
|
12608
|
-
|
|
12630
|
+
enabled?: boolean | null;
|
|
12631
|
+
/**
|
|
12632
|
+
* Label
|
|
12633
|
+
* @description New base-tier label; the hostnames become app.<label>.<suffix> / auth.<label>.<suffix>. Base tier only.
|
|
12634
|
+
*/
|
|
12635
|
+
label?: string | null;
|
|
12609
12636
|
};
|
|
12610
12637
|
/**
|
|
12611
12638
|
* WhitelabelBrandingRecheck
|
|
12612
12639
|
* @description Public recheck body. Empty = re-run onboarding against the stored hosts (retry after
|
|
12613
12640
|
* fixing DNS). hostname + auth_subdomain present = re-point a wrong domain before re-running
|
|
12614
|
-
* (pre-provisioning only; server rejects once a Keycloak client exists).
|
|
12615
|
-
*
|
|
12641
|
+
* (pre-provisioning only; server rejects once a Keycloak client exists). Plus tier only - a
|
|
12642
|
+
* base whitelabel is re-labelled through PATCH instead.
|
|
12616
12643
|
*/
|
|
12617
12644
|
WhitelabelBrandingRecheck: {
|
|
12618
12645
|
/** Auth Subdomain */
|
|
@@ -12629,11 +12656,18 @@ export interface components {
|
|
|
12629
12656
|
WhitelabelBrandingResponse: {
|
|
12630
12657
|
/** Auth Hostname */
|
|
12631
12658
|
auth_hostname: string;
|
|
12659
|
+
/** Base Label */
|
|
12660
|
+
base_label: string;
|
|
12632
12661
|
/**
|
|
12633
12662
|
* Created On
|
|
12634
12663
|
* Format: date-time
|
|
12635
12664
|
*/
|
|
12636
12665
|
created_on: Date;
|
|
12666
|
+
/**
|
|
12667
|
+
* Enabled
|
|
12668
|
+
* @default true
|
|
12669
|
+
*/
|
|
12670
|
+
enabled: boolean;
|
|
12637
12671
|
failure_code?: components["schemas"]["WhitelabelOnboardingFailureCode"] | null;
|
|
12638
12672
|
/** Failure Detail */
|
|
12639
12673
|
failure_detail?: string | null;
|
|
@@ -12649,6 +12683,7 @@ export interface components {
|
|
|
12649
12683
|
* @example organization_01h45ytscbebyvny4gc8cr8ma2
|
|
12650
12684
|
*/
|
|
12651
12685
|
organization_id: TypeId<"organization">;
|
|
12686
|
+
tier: components["schemas"]["WhitelabelBrandingTier"];
|
|
12652
12687
|
/**
|
|
12653
12688
|
* Updated On
|
|
12654
12689
|
* Format: date-time
|
|
@@ -12663,6 +12698,18 @@ export interface components {
|
|
|
12663
12698
|
*/
|
|
12664
12699
|
whitelabel_branding_id: TypeId<"wlb">;
|
|
12665
12700
|
};
|
|
12701
|
+
/**
|
|
12702
|
+
* WhitelabelBrandingTier
|
|
12703
|
+
* @description Which tier a whitelabel config is on. One config per organization, one tier at a time.
|
|
12704
|
+
*
|
|
12705
|
+
* BASE serves the customer on a subdomain of an OpusDNS-owned zone; PLUS serves them on their
|
|
12706
|
+
* own domain. A whitelabel switches between the two in place (a plan change), so `tier` is a
|
|
12707
|
+
* mutable attribute of the single config row, never a discriminator between two rows. Deliberately
|
|
12708
|
+
* stored rather than inferred from the hostname, so a base-zone rename can never re-route the row
|
|
12709
|
+
* down the wrong onboarding path.
|
|
12710
|
+
* @enum {string}
|
|
12711
|
+
*/
|
|
12712
|
+
WhitelabelBrandingTier: "base" | "plus";
|
|
12666
12713
|
/**
|
|
12667
12714
|
* WhitelabelOnboardingFailureCode
|
|
12668
12715
|
* @description Stable, frontend-facing reason a terminal onboarding failure happened. The free-text
|
|
@@ -12680,6 +12727,65 @@ export interface components {
|
|
|
12680
12727
|
* @enum {string}
|
|
12681
12728
|
*/
|
|
12682
12729
|
WhitelabelOnboardingStatus: "pending_domain_verification" | "verifying" | "provisioning" | "active" | "failed";
|
|
12730
|
+
/**
|
|
12731
|
+
* WhitelabelPlusCreate
|
|
12732
|
+
* @description Create the plus tier: served on the customer's own domain; `label` still reserves a base
|
|
12733
|
+
* subdomain (kept for the redirect/downgrade).
|
|
12734
|
+
*/
|
|
12735
|
+
WhitelabelPlusCreate: {
|
|
12736
|
+
/**
|
|
12737
|
+
* Auth Subdomain
|
|
12738
|
+
* @description Subdomain the Keycloak login is served on (e.g. auth -> auth.customer.com)
|
|
12739
|
+
*/
|
|
12740
|
+
auth_subdomain: string;
|
|
12741
|
+
/**
|
|
12742
|
+
* Dashboard Subdomain
|
|
12743
|
+
* @description Subdomain the dashboard is served on (e.g. dash -> dash.customer.com); omit for apex
|
|
12744
|
+
*/
|
|
12745
|
+
dashboard_subdomain?: string | null;
|
|
12746
|
+
/**
|
|
12747
|
+
* Hostname
|
|
12748
|
+
* @description Domain the whitelabel runs under (e.g. customer.com); an OpusDNS-hosted zone owned by the org
|
|
12749
|
+
*/
|
|
12750
|
+
hostname: string;
|
|
12751
|
+
/**
|
|
12752
|
+
* Label
|
|
12753
|
+
* @description Managed-subdomain label reserved for the redirect/downgrade
|
|
12754
|
+
*/
|
|
12755
|
+
label: string;
|
|
12756
|
+
/** @description Billing period; offered: 1 month or 1 year */
|
|
12757
|
+
period: components["schemas"]["Period"];
|
|
12758
|
+
/**
|
|
12759
|
+
* @description discriminator enum property added by openapi-typescript
|
|
12760
|
+
* @enum {string}
|
|
12761
|
+
*/
|
|
12762
|
+
tier: "plus";
|
|
12763
|
+
};
|
|
12764
|
+
/**
|
|
12765
|
+
* WhitelabelUpgradeToPlus
|
|
12766
|
+
* @description Upgrade the whitelabel to the plus tier, served on the customer's own domain. This is NOT a
|
|
12767
|
+
* term change: the subscription keeps its period and renewal date and simply renews at the plus
|
|
12768
|
+
* price. A yearly upgrade bills a one-time prorated difference for the remaining whole months; a
|
|
12769
|
+
* monthly upgrade bills nothing now. Downgrades (plus -> base) are not supported - cancel + rebook
|
|
12770
|
+
* instead - so this body only ever moves to plus (no tier field, no period).
|
|
12771
|
+
*/
|
|
12772
|
+
WhitelabelUpgradeToPlus: {
|
|
12773
|
+
/**
|
|
12774
|
+
* Auth Subdomain
|
|
12775
|
+
* @description Subdomain the Keycloak login is served on (e.g. auth -> auth.customer.com)
|
|
12776
|
+
*/
|
|
12777
|
+
auth_subdomain: string;
|
|
12778
|
+
/**
|
|
12779
|
+
* Dashboard Subdomain
|
|
12780
|
+
* @description Subdomain the dashboard is served on (e.g. dash -> dash.customer.com); omit for apex
|
|
12781
|
+
*/
|
|
12782
|
+
dashboard_subdomain?: string | null;
|
|
12783
|
+
/**
|
|
12784
|
+
* Hostname
|
|
12785
|
+
* @description Domain the whitelabel runs under (e.g. customer.com); an OpusDNS-hosted zone owned by the org
|
|
12786
|
+
*/
|
|
12787
|
+
hostname: string;
|
|
12788
|
+
};
|
|
12683
12789
|
/** WhoisBase */
|
|
12684
12790
|
WhoisBase: {
|
|
12685
12791
|
/**
|
|
@@ -27050,7 +27156,7 @@ export interface operations {
|
|
|
27050
27156
|
};
|
|
27051
27157
|
requestBody: {
|
|
27052
27158
|
content: {
|
|
27053
|
-
"application/json": components["schemas"]["
|
|
27159
|
+
"application/json": components["schemas"]["WhitelabelBaseCreate"] | components["schemas"]["WhitelabelPlusCreate"];
|
|
27054
27160
|
};
|
|
27055
27161
|
};
|
|
27056
27162
|
responses: {
|
|
@@ -27074,6 +27180,45 @@ export interface operations {
|
|
|
27074
27180
|
};
|
|
27075
27181
|
};
|
|
27076
27182
|
};
|
|
27183
|
+
patch_whitelabel_branding_v1_whitelabel_branding_patch: {
|
|
27184
|
+
parameters: {
|
|
27185
|
+
query?: never;
|
|
27186
|
+
header?: {
|
|
27187
|
+
/**
|
|
27188
|
+
* @description Opt in to RFC 3339 datetime serialization. When set to `rfc3339`, response datetimes are normalized to UTC and serialized with a `Z` suffix. This is opt-in until the announced default cutover date, after which RFC 3339 becomes the default and this header is accepted as a no-op. Any other value or omission uses the current default serialization.
|
|
27189
|
+
* @example rfc3339
|
|
27190
|
+
*/
|
|
27191
|
+
"X-Datetime-Format"?: components["parameters"]["DatetimeFormatHeader"];
|
|
27192
|
+
};
|
|
27193
|
+
path?: never;
|
|
27194
|
+
cookie?: never;
|
|
27195
|
+
};
|
|
27196
|
+
requestBody: {
|
|
27197
|
+
content: {
|
|
27198
|
+
"application/json": components["schemas"]["WhitelabelBrandingPatch"];
|
|
27199
|
+
};
|
|
27200
|
+
};
|
|
27201
|
+
responses: {
|
|
27202
|
+
/** @description Successful Response */
|
|
27203
|
+
202: {
|
|
27204
|
+
headers: {
|
|
27205
|
+
[name: string]: unknown;
|
|
27206
|
+
};
|
|
27207
|
+
content: {
|
|
27208
|
+
"application/json": components["schemas"]["WhitelabelBrandingResponse"];
|
|
27209
|
+
};
|
|
27210
|
+
};
|
|
27211
|
+
/** @description Validation Error */
|
|
27212
|
+
422: {
|
|
27213
|
+
headers: {
|
|
27214
|
+
[name: string]: unknown;
|
|
27215
|
+
};
|
|
27216
|
+
content: {
|
|
27217
|
+
"application/problem+json": components["schemas"]["HTTPValidationError"];
|
|
27218
|
+
};
|
|
27219
|
+
};
|
|
27220
|
+
};
|
|
27221
|
+
};
|
|
27077
27222
|
preview_whitelabel_email_v1_whitelabel_branding_email_preview_post: {
|
|
27078
27223
|
parameters: {
|
|
27079
27224
|
query?: never;
|
|
@@ -27187,4 +27332,43 @@ export interface operations {
|
|
|
27187
27332
|
};
|
|
27188
27333
|
};
|
|
27189
27334
|
};
|
|
27335
|
+
upgrade_whitelabel_to_plus_v1_whitelabel_branding_tier_post: {
|
|
27336
|
+
parameters: {
|
|
27337
|
+
query?: never;
|
|
27338
|
+
header?: {
|
|
27339
|
+
/**
|
|
27340
|
+
* @description Opt in to RFC 3339 datetime serialization. When set to `rfc3339`, response datetimes are normalized to UTC and serialized with a `Z` suffix. This is opt-in until the announced default cutover date, after which RFC 3339 becomes the default and this header is accepted as a no-op. Any other value or omission uses the current default serialization.
|
|
27341
|
+
* @example rfc3339
|
|
27342
|
+
*/
|
|
27343
|
+
"X-Datetime-Format"?: components["parameters"]["DatetimeFormatHeader"];
|
|
27344
|
+
};
|
|
27345
|
+
path?: never;
|
|
27346
|
+
cookie?: never;
|
|
27347
|
+
};
|
|
27348
|
+
requestBody: {
|
|
27349
|
+
content: {
|
|
27350
|
+
"application/json": components["schemas"]["WhitelabelUpgradeToPlus"];
|
|
27351
|
+
};
|
|
27352
|
+
};
|
|
27353
|
+
responses: {
|
|
27354
|
+
/** @description Successful Response */
|
|
27355
|
+
202: {
|
|
27356
|
+
headers: {
|
|
27357
|
+
[name: string]: unknown;
|
|
27358
|
+
};
|
|
27359
|
+
content: {
|
|
27360
|
+
"application/json": components["schemas"]["ProductCreateRes"];
|
|
27361
|
+
};
|
|
27362
|
+
};
|
|
27363
|
+
/** @description Validation Error */
|
|
27364
|
+
422: {
|
|
27365
|
+
headers: {
|
|
27366
|
+
[name: string]: unknown;
|
|
27367
|
+
};
|
|
27368
|
+
content: {
|
|
27369
|
+
"application/problem+json": components["schemas"]["HTTPValidationError"];
|
|
27370
|
+
};
|
|
27371
|
+
};
|
|
27372
|
+
};
|
|
27373
|
+
};
|
|
27190
27374
|
}
|