@opusdns/api 1.117.0 → 1.119.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 CHANGED
@@ -3,7 +3,7 @@
3
3
  "@opusdns/api-spec-ts-generator": "^1.2.0"
4
4
  },
5
5
  "name": "@opusdns/api",
6
- "version": "1.117.0",
6
+ "version": "1.119.0",
7
7
  "description": "TypeScript types for the OpusDNS OpenAPI specification",
8
8
  "main": "./src/index.ts",
9
9
  "module": "./src/index.ts",
@@ -120,6 +120,7 @@ import type {
120
120
  WhitelabelOnboardingFailureCode,
121
121
  WhitelabelOnboardingFailureType,
122
122
  WhitelabelOnboardingStatus,
123
+ WhitelabelRenewalMode,
123
124
  ZoneIncludeField,
124
125
  ZoneSortField,
125
126
  } from './schemas';
@@ -2137,6 +2138,16 @@ export const WHITELABEL_ONBOARDING_STATUS_VALUES = [
2137
2138
  'terminated',
2138
2139
  ] as const satisfies ReadonlyArray<WhitelabelOnboardingStatus>;
2139
2140
 
2141
+ export const WHITELABEL_RENEWAL_MODE = {
2142
+ RENEW: "renew",
2143
+ EXPIRE: "expire",
2144
+ } as const satisfies Record<string, WhitelabelRenewalMode>;
2145
+
2146
+ export const WHITELABEL_RENEWAL_MODE_VALUES = [
2147
+ 'renew',
2148
+ 'expire',
2149
+ ] as const satisfies ReadonlyArray<WhitelabelRenewalMode>;
2150
+
2140
2151
  export const ZONE_INCLUDE_FIELD = {
2141
2152
  TAGS: "tags",
2142
2153
  } as const satisfies Record<string, ZoneIncludeField>;
@@ -381,6 +381,7 @@ import type {
381
381
  RequestHistory,
382
382
  ReservedDomainsBase,
383
383
  RgpOperations,
384
+ SetRenewalModeReq,
384
385
  SetVanityNameserverSetDefaultRes,
385
386
  SldLength,
386
387
  StatusChanges,
@@ -438,6 +439,7 @@ import type {
438
439
  WhitelabelBrandingRecheck,
439
440
  WhitelabelBranding,
440
441
  WhitelabelPlusCreate,
442
+ WhitelabelSubscriptionInfo,
441
443
  WhitelabelUpgradeToPlus,
442
444
  WhoisBase,
443
445
  ZoneVanitySetUpdate,
@@ -5146,6 +5148,12 @@ export const KEYS_RGP_OPERATIONS = [
5146
5148
  KEY_RGP_OPERATIONS_REQUEST,
5147
5149
  ] as const satisfies (keyof RgpOperations)[];
5148
5150
 
5151
+ export const KEY_SET_RENEWAL_MODE_REQ_RENEWAL_MODE = 'renewal_mode' satisfies keyof SetRenewalModeReq;
5152
+
5153
+ export const KEYS_SET_RENEWAL_MODE_REQ = [
5154
+ KEY_SET_RENEWAL_MODE_REQ_RENEWAL_MODE,
5155
+ ] as const satisfies (keyof SetRenewalModeReq)[];
5156
+
5149
5157
  export const KEY_SET_VANITY_NAMESERVER_SET_DEFAULT_RES_VANITY_NAMESERVER_SET = 'vanity_nameserver_set' satisfies keyof SetVanityNameserverSetDefaultRes;
5150
5158
 
5151
5159
  export const KEYS_SET_VANITY_NAMESERVER_SET_DEFAULT_RES = [
@@ -5892,10 +5900,12 @@ export const KEYS_WHITELABEL_BASE_CREATE = [
5892
5900
 
5893
5901
  export const KEY_WHITELABEL_BRANDING_PATCH_ENABLED = 'enabled' satisfies keyof WhitelabelBrandingPatch;
5894
5902
  export const KEY_WHITELABEL_BRANDING_PATCH_LABEL = 'label' satisfies keyof WhitelabelBrandingPatch;
5903
+ export const KEY_WHITELABEL_BRANDING_PATCH_RENEWAL_MODE = 'renewal_mode' satisfies keyof WhitelabelBrandingPatch;
5895
5904
 
5896
5905
  export const KEYS_WHITELABEL_BRANDING_PATCH = [
5897
5906
  KEY_WHITELABEL_BRANDING_PATCH_ENABLED,
5898
5907
  KEY_WHITELABEL_BRANDING_PATCH_LABEL,
5908
+ KEY_WHITELABEL_BRANDING_PATCH_RENEWAL_MODE,
5899
5909
  ] as const satisfies (keyof WhitelabelBrandingPatch)[];
5900
5910
 
5901
5911
  export const KEY_WHITELABEL_BRANDING_RECHECK_AUTH_SUBDOMAIN = 'auth_subdomain' satisfies keyof WhitelabelBrandingRecheck;
@@ -5919,6 +5929,7 @@ export const KEY_WHITELABEL_BRANDING_HOSTNAME = 'hostname' satisfies keyof White
5919
5929
  export const KEY_WHITELABEL_BRANDING_KEYCLOAK_CLIENT_ID = 'keycloak_client_id' satisfies keyof WhitelabelBranding;
5920
5930
  export const KEY_WHITELABEL_BRANDING_ONBOARDING_STATUS = 'onboarding_status' satisfies keyof WhitelabelBranding;
5921
5931
  export const KEY_WHITELABEL_BRANDING_ORGANIZATION_ID = 'organization_id' satisfies keyof WhitelabelBranding;
5932
+ export const KEY_WHITELABEL_BRANDING_SUBSCRIPTION = 'subscription' satisfies keyof WhitelabelBranding;
5922
5933
  export const KEY_WHITELABEL_BRANDING_TIER = 'tier' satisfies keyof WhitelabelBranding;
5923
5934
  export const KEY_WHITELABEL_BRANDING_UPDATED_ON = 'updated_on' satisfies keyof WhitelabelBranding;
5924
5935
  export const KEY_WHITELABEL_BRANDING_VERIFICATION_DOMAIN = 'verification_domain' satisfies keyof WhitelabelBranding;
@@ -5936,6 +5947,7 @@ export const KEYS_WHITELABEL_BRANDING = [
5936
5947
  KEY_WHITELABEL_BRANDING_KEYCLOAK_CLIENT_ID,
5937
5948
  KEY_WHITELABEL_BRANDING_ONBOARDING_STATUS,
5938
5949
  KEY_WHITELABEL_BRANDING_ORGANIZATION_ID,
5950
+ KEY_WHITELABEL_BRANDING_SUBSCRIPTION,
5939
5951
  KEY_WHITELABEL_BRANDING_TIER,
5940
5952
  KEY_WHITELABEL_BRANDING_UPDATED_ON,
5941
5953
  KEY_WHITELABEL_BRANDING_VERIFICATION_DOMAIN,
@@ -5958,6 +5970,18 @@ export const KEYS_WHITELABEL_PLUS_CREATE = [
5958
5970
  KEY_WHITELABEL_PLUS_CREATE_TIER,
5959
5971
  ] as const satisfies (keyof WhitelabelPlusCreate)[];
5960
5972
 
5973
+ export const KEY_WHITELABEL_SUBSCRIPTION_INFO_EXPIRES_ON = 'expires_on' satisfies keyof WhitelabelSubscriptionInfo;
5974
+ export const KEY_WHITELABEL_SUBSCRIPTION_INFO_GRACE_PERIOD_ENDS_AT = 'grace_period_ends_at' satisfies keyof WhitelabelSubscriptionInfo;
5975
+ export const KEY_WHITELABEL_SUBSCRIPTION_INFO_RENEW_SCHEDULED_AT = 'renew_scheduled_at' satisfies keyof WhitelabelSubscriptionInfo;
5976
+ export const KEY_WHITELABEL_SUBSCRIPTION_INFO_RENEWAL_MODE = 'renewal_mode' satisfies keyof WhitelabelSubscriptionInfo;
5977
+
5978
+ export const KEYS_WHITELABEL_SUBSCRIPTION_INFO = [
5979
+ KEY_WHITELABEL_SUBSCRIPTION_INFO_EXPIRES_ON,
5980
+ KEY_WHITELABEL_SUBSCRIPTION_INFO_GRACE_PERIOD_ENDS_AT,
5981
+ KEY_WHITELABEL_SUBSCRIPTION_INFO_RENEW_SCHEDULED_AT,
5982
+ KEY_WHITELABEL_SUBSCRIPTION_INFO_RENEWAL_MODE,
5983
+ ] as const satisfies (keyof WhitelabelSubscriptionInfo)[];
5984
+
5961
5985
  export const KEY_WHITELABEL_UPGRADE_TO_PLUS_AUTH_SUBDOMAIN = 'auth_subdomain' satisfies keyof WhitelabelUpgradeToPlus;
5962
5986
  export const KEY_WHITELABEL_UPGRADE_TO_PLUS_DASHBOARD_SUBDOMAIN = 'dashboard_subdomain' satisfies keyof WhitelabelUpgradeToPlus;
5963
5987
  export const KEY_WHITELABEL_UPGRADE_TO_PLUS_HOSTNAME = 'hostname' satisfies keyof WhitelabelUpgradeToPlus;
@@ -49,6 +49,7 @@ import type {
49
49
  PreviewMailReq,
50
50
  PublicAuthRequestForm,
51
51
  PublicRoleAssignmentRequest,
52
+ SetRenewalModeReq,
52
53
  TagCreate,
53
54
  TagUpdate,
54
55
  UserCreate,
@@ -1120,6 +1121,13 @@ export type GET_VanityNameserverSetsBySetId_Request = {
1120
1121
  };
1121
1122
  export type GET_VanityNameserverSetsBySetId_Request_Path = GET_VanityNameserverSetsBySetId_Request['parameters']['path'];
1122
1123
 
1124
+ export type PATCH_VanityNameserverSetsBySetId_Request = {
1125
+ parameters: operations['set_vanity_nameserver_set_renewal_mode_v1_vanity_nameserver_sets__set_id__patch']['parameters'];
1126
+ requestBody: SetRenewalModeReq;
1127
+ };
1128
+ export type PATCH_VanityNameserverSetsBySetId_Request_Path = PATCH_VanityNameserverSetsBySetId_Request['parameters']['path'];
1129
+ export type PATCH_VanityNameserverSetsBySetId_Request_Body = PATCH_VanityNameserverSetsBySetId_Request['requestBody'];
1130
+
1123
1131
  export type PATCH_VanityNameserverSetsBySetIdDefault_Request = {
1124
1132
  parameters: operations['set_vanity_nameserver_set_default_v1_vanity_nameserver_sets__set_id__default_patch']['parameters'];
1125
1133
  };
@@ -1171,6 +1179,9 @@ export type GET_WhitelabelBrandingEmailTemplates_Request = {
1171
1179
  export type POST_WhitelabelBrandingRecheck_Request = {
1172
1180
  };
1173
1181
 
1182
+ export type POST_WhitelabelBrandingRestore_Request = {
1183
+ };
1184
+
1174
1185
  export type POST_WhitelabelBrandingTier_Request = {
1175
1186
  requestBody: WhitelabelUpgradeToPlus;
1176
1187
  };
@@ -1013,14 +1013,19 @@ export type PATCH_UsersByUserId_Response = PATCH_UsersByUserId_Response_200 | PA
1013
1013
  export type PATCH_UsersByUserId_Response_200 = UserPublicWithAttributes;
1014
1014
  export type PATCH_UsersByUserId_Response_422 = HTTPValidationError;
1015
1015
 
1016
+ export type PATCH_VanityNameserverSetsBySetId_Response = PATCH_VanityNameserverSetsBySetId_Response_200 | PATCH_VanityNameserverSetsBySetId_Response_422;
1017
+
1018
+ export type PATCH_VanityNameserverSetsBySetId_Response_200 = VanityNameserverSetSummaryDTO;
1019
+ export type PATCH_VanityNameserverSetsBySetId_Response_422 = HTTPValidationError;
1020
+
1016
1021
  export type PATCH_VanityNameserverSetsBySetIdDefault_Response = PATCH_VanityNameserverSetsBySetIdDefault_Response_200 | PATCH_VanityNameserverSetsBySetIdDefault_Response_422;
1017
1022
 
1018
1023
  export type PATCH_VanityNameserverSetsBySetIdDefault_Response_200 = SetVanityNameserverSetDefaultRes;
1019
1024
  export type PATCH_VanityNameserverSetsBySetIdDefault_Response_422 = HTTPValidationError;
1020
1025
 
1021
- export type PATCH_WhitelabelBranding_Response = PATCH_WhitelabelBranding_Response_202 | PATCH_WhitelabelBranding_Response_422;
1026
+ export type PATCH_WhitelabelBranding_Response = PATCH_WhitelabelBranding_Response_200 | PATCH_WhitelabelBranding_Response_422;
1022
1027
 
1023
- export type PATCH_WhitelabelBranding_Response_202 = WhitelabelBranding;
1028
+ export type PATCH_WhitelabelBranding_Response_200 = WhitelabelBranding;
1024
1029
  export type PATCH_WhitelabelBranding_Response_422 = HTTPValidationError;
1025
1030
 
1026
1031
  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;
@@ -1418,6 +1423,11 @@ export type POST_WhitelabelBrandingRecheck_Response = POST_WhitelabelBrandingRec
1418
1423
  export type POST_WhitelabelBrandingRecheck_Response_202 = WhitelabelBranding;
1419
1424
  export type POST_WhitelabelBrandingRecheck_Response_422 = HTTPValidationError;
1420
1425
 
1426
+ export type POST_WhitelabelBrandingRestore_Response = POST_WhitelabelBrandingRestore_Response_200 | POST_WhitelabelBrandingRestore_Response_422;
1427
+
1428
+ export type POST_WhitelabelBrandingRestore_Response_200 = WhitelabelBranding;
1429
+ export type POST_WhitelabelBrandingRestore_Response_422 = HTTPValidationError;
1430
+
1421
1431
  export type POST_WhitelabelBrandingTier_Response = POST_WhitelabelBrandingTier_Response_202 | POST_WhitelabelBrandingTier_Response_422;
1422
1432
 
1423
1433
  export type POST_WhitelabelBrandingTier_Response_202 = ProductCreateRes;
@@ -499,6 +499,7 @@ export type RequestHistorySortField = components['schemas']['RequestHistorySortF
499
499
  export type ReservedDomainsBase = components['schemas']['ReservedDomainsBase'];
500
500
  export type ReservedSourceType = components['schemas']['ReservedSourceType'];
501
501
  export type RgpOperations = components['schemas']['RgpOperations'];
502
+ export type SetRenewalModeReq = components['schemas']['SetRenewalModeReq'];
502
503
  export type SetVanityNameserverSetDefaultRes = components['schemas']['SetVanityNameserverSetDefaultRes'];
503
504
  export type SldLength = components['schemas']['SldLength'];
504
505
  export type SortOrder = components['schemas']['SortOrder'];
@@ -583,6 +584,8 @@ export type WhitelabelOnboardingFailureCode = components['schemas']['WhitelabelO
583
584
  export type WhitelabelOnboardingFailureType = components['schemas']['WhitelabelOnboardingFailureType'];
584
585
  export type WhitelabelOnboardingStatus = components['schemas']['WhitelabelOnboardingStatus'];
585
586
  export type WhitelabelPlusCreate = components['schemas']['WhitelabelPlusCreate'];
587
+ export type WhitelabelRenewalMode = components['schemas']['WhitelabelRenewalMode'];
588
+ export type WhitelabelSubscriptionInfo = components['schemas']['WhitelabelSubscriptionInfo'];
586
589
  export type WhitelabelUpgradeToPlus = components['schemas']['WhitelabelUpgradeToPlus'];
587
590
  export type WhoisBase = components['schemas']['WhoisBase'];
588
591
  export type ZoneIncludeField = components['schemas']['ZoneIncludeField'];
package/src/openapi.yaml CHANGED
@@ -12642,6 +12642,16 @@ components:
12642
12642
  type: boolean
12643
12643
  title: RgpOperations
12644
12644
  type: object
12645
+ SetRenewalModeReq:
12646
+ properties:
12647
+ renewal_mode:
12648
+ $ref: '#/components/schemas/RenewalModeDTO'
12649
+ description: expire cancels the set at period end (serves out the term),
12650
+ renew un-cancels (resumes auto-renew)
12651
+ required:
12652
+ - renewal_mode
12653
+ title: SetRenewalModeReq
12654
+ type: object
12645
12655
  SetVanityNameserverSetDefaultRes:
12646
12656
  properties:
12647
12657
  vanity_nameserver_set:
@@ -14710,16 +14720,20 @@ components:
14710
14720
  title: WhitelabelBaseCreate
14711
14721
  type: object
14712
14722
  WhitelabelBrandingPatch:
14713
- description: 'Public patch body. Neither field is a purchase, so nothing here
14714
- touches the subscription or
14715
-
14716
- its price: `label` moves the base subdomain to a different label (base tier
14717
- only - a plus
14723
+ description: 'Public patch body. `label` moves the base subdomain to a different
14724
+ label (base tier only - a
14718
14725
 
14719
- whitelabel is re-pointed by its hostnames through recheck), and `enabled`
14726
+ plus whitelabel is re-pointed by its hostnames through recheck) and `enabled`
14720
14727
  starts or stops
14721
14728
 
14722
- serving it. At least one must be given.'
14729
+ serving it - both applied asynchronously via the reconcile job, neither a
14730
+ purchase. `renewal_mode`
14731
+
14732
+ sets the subscription''s auto-renew intent synchronously (EXPIRE = cancel
14733
+ at period end, RENEW =
14734
+
14735
+ un-cancel); it is not a purchase either - no price change. At least one must
14736
+ be given.'
14723
14737
  properties:
14724
14738
  enabled:
14725
14739
  anyOf:
@@ -14736,6 +14750,12 @@ components:
14736
14750
  description: New base-tier label; the hostnames become app.<label>.<suffix>
14737
14751
  / auth.<label>.<suffix>. Base tier only.
14738
14752
  title: Label
14753
+ renewal_mode:
14754
+ anyOf:
14755
+ - $ref: '#/components/schemas/WhitelabelRenewalMode'
14756
+ - type: 'null'
14757
+ description: 'Set auto-renew intent: expire cancels at period end (serves
14758
+ out the term), renew un-cancels'
14739
14759
  title: WhitelabelBrandingPatch
14740
14760
  type: object
14741
14761
  WhitelabelBrandingRecheck:
@@ -14830,6 +14850,10 @@ components:
14830
14850
  title: Organization Id
14831
14851
  type: string
14832
14852
  x-typeid-prefix: organization
14853
+ subscription:
14854
+ anyOf:
14855
+ - $ref: '#/components/schemas/WhitelabelSubscriptionInfo'
14856
+ - type: 'null'
14833
14857
  tier:
14834
14858
  $ref: '#/components/schemas/WhitelabelBrandingTier'
14835
14859
  updated_on:
@@ -14970,6 +14994,61 @@ components:
14970
14994
  - period
14971
14995
  title: WhitelabelPlusCreate
14972
14996
  type: object
14997
+ WhitelabelRenewalMode:
14998
+ description: 'Whether the whitelabel''s subscription auto-renews (RENEW) or
14999
+ lapses at period end (EXPIRE,
15000
+
15001
+ i.e. cancelled). The customer''s renewal intent, stored on the row and mirrored
15002
+ to the subscription
15003
+
15004
+ on change (like the domain object). Its own enum so the whitelabel model does
15005
+ not depend on the
15006
+
15007
+ domain model; the wire values (renew/expire) match domains + vanity nameservers.'
15008
+ enum:
15009
+ - renew
15010
+ - expire
15011
+ title: WhitelabelRenewalMode
15012
+ type: string
15013
+ WhitelabelSubscriptionInfo:
15014
+ description: 'The whitelabel''s billing-lifecycle state, a pass-through read
15015
+ from the subscription at the api
15016
+
15017
+ layer (product-service owns it; the branding row does not). Grouped into its
15018
+ own object so it
15019
+
15020
+ reads as one all-or-nothing block: the parent''s `subscription` is null when
15021
+ the config has no live
15022
+
15023
+ subscription (still provisioning, or terminated). renewal_mode EXPIRE + expires_on
15024
+ is how a
15025
+
15026
+ cancelled whitelabel reads: "cancelled, served until expires_on".'
15027
+ properties:
15028
+ expires_on:
15029
+ anyOf:
15030
+ - format: date-time
15031
+ type: string
15032
+ - type: 'null'
15033
+ title: Expires On
15034
+ grace_period_ends_at:
15035
+ anyOf:
15036
+ - format: date-time
15037
+ type: string
15038
+ - type: 'null'
15039
+ title: Grace Period Ends At
15040
+ renew_scheduled_at:
15041
+ anyOf:
15042
+ - format: date-time
15043
+ type: string
15044
+ - type: 'null'
15045
+ title: Renew Scheduled At
15046
+ renewal_mode:
15047
+ $ref: '#/components/schemas/WhitelabelRenewalMode'
15048
+ required:
15049
+ - renewal_mode
15050
+ title: WhitelabelSubscriptionInfo
15051
+ type: object
14973
15052
  WhitelabelUpgradeToPlus:
14974
15053
  additionalProperties: false
14975
15054
  description: 'Upgrade the whitelabel to the plus tier, served on the customer''s
@@ -15455,7 +15534,7 @@ info:
15455
15534
  \n\n"
15456
15535
  summary: OpusDNS - your gateway to a seamless domain management experience.
15457
15536
  title: OpusDNS API
15458
- version: 2026-08-18-083544
15537
+ version: 2026-08-18-090726
15459
15538
  x-logo:
15460
15539
  altText: OpusDNS API Reference
15461
15540
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -32298,6 +32377,49 @@ paths:
32298
32377
  - nameserver
32299
32378
  x-required-permissions:
32300
32379
  - vanity_ns:read
32380
+ patch:
32381
+ operationId: set_vanity_nameserver_set_renewal_mode_v1_vanity_nameserver_sets__set_id__patch
32382
+ parameters:
32383
+ - in: path
32384
+ name: set_id
32385
+ required: true
32386
+ schema:
32387
+ examples:
32388
+ - vns_01h45ytscbebyvny4gc8cr8ma2
32389
+ format: typeid
32390
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
32391
+ title: Set Id
32392
+ type: string
32393
+ x-typeid-prefix: vns
32394
+ - $ref: '#/components/parameters/DatetimeFormatHeader'
32395
+ requestBody:
32396
+ content:
32397
+ application/json:
32398
+ schema:
32399
+ $ref: '#/components/schemas/SetRenewalModeReq'
32400
+ required: true
32401
+ responses:
32402
+ '200':
32403
+ content:
32404
+ application/json:
32405
+ schema:
32406
+ $ref: '#/components/schemas/VanityNameserverSetSummaryDTO'
32407
+ description: Successful Response
32408
+ '422':
32409
+ content:
32410
+ application/problem+json:
32411
+ schema:
32412
+ $ref: '#/components/schemas/HTTPValidationError'
32413
+ description: Validation Error
32414
+ security:
32415
+ - OAuth2PasswordBearer: []
32416
+ - APIKeyHeader: []
32417
+ summary: Set the vanity nameserver set's renewal mode (expire = cancel at period
32418
+ end, renew = un-cancel)
32419
+ tags:
32420
+ - nameserver
32421
+ x-required-permissions:
32422
+ - vanity_ns:manage
32301
32423
  /v1/vanity-nameserver-sets/{set_id}/default:
32302
32424
  patch:
32303
32425
  operationId: set_vanity_nameserver_set_default_v1_vanity_nameserver_sets__set_id__default_patch
@@ -32500,7 +32622,7 @@ paths:
32500
32622
  $ref: '#/components/schemas/WhitelabelBrandingPatch'
32501
32623
  required: true
32502
32624
  responses:
32503
- '202':
32625
+ '200':
32504
32626
  content:
32505
32627
  application/json:
32506
32628
  schema:
@@ -32515,7 +32637,8 @@ paths:
32515
32637
  security:
32516
32638
  - OAuth2PasswordBearer: []
32517
32639
  - APIKeyHeader: []
32518
- summary: Change the organization's whitelabel branding config (relabel / enable)
32640
+ summary: Change the organization's whitelabel branding config (relabel / enable
32641
+ / renewal mode)
32519
32642
  tags:
32520
32643
  - whitelabel
32521
32644
  x-required-permissions:
@@ -32651,6 +32774,33 @@ paths:
32651
32774
  - whitelabel
32652
32775
  x-required-permissions:
32653
32776
  - whitelabel_branding:manage
32777
+ /v1/whitelabel-branding/restore:
32778
+ post:
32779
+ operationId: restore_whitelabel_branding_v1_whitelabel_branding_restore_post
32780
+ parameters:
32781
+ - $ref: '#/components/parameters/DatetimeFormatHeader'
32782
+ responses:
32783
+ '200':
32784
+ content:
32785
+ application/json:
32786
+ schema:
32787
+ $ref: '#/components/schemas/WhitelabelBrandingResponse'
32788
+ description: Successful Response
32789
+ '422':
32790
+ content:
32791
+ application/problem+json:
32792
+ schema:
32793
+ $ref: '#/components/schemas/HTTPValidationError'
32794
+ description: Validation Error
32795
+ security:
32796
+ - OAuth2PasswordBearer: []
32797
+ - APIKeyHeader: []
32798
+ summary: Restore a terminated whitelabel (re-enable and reprovision from the
32799
+ preserved state)
32800
+ tags:
32801
+ - whitelabel
32802
+ x-required-permissions:
32803
+ - whitelabel_branding:manage
32654
32804
  /v1/whitelabel-branding/tier:
32655
32805
  post:
32656
32806
  operationId: upgrade_whitelabel_to_plus_v1_whitelabel_branding_tier_post
package/src/schema.d.ts CHANGED
@@ -2856,7 +2856,8 @@ export interface paths {
2856
2856
  delete: operations["delete_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__delete"];
2857
2857
  options?: never;
2858
2858
  head?: never;
2859
- patch?: never;
2859
+ /** Set the vanity nameserver set's renewal mode (expire = cancel at period end, renew = un-cancel) */
2860
+ patch: operations["set_vanity_nameserver_set_renewal_mode_v1_vanity_nameserver_sets__set_id__patch"];
2860
2861
  trace?: never;
2861
2862
  };
2862
2863
  "/v1/vanity-nameserver-sets/{set_id}/default": {
@@ -2942,7 +2943,7 @@ export interface paths {
2942
2943
  delete?: never;
2943
2944
  options?: never;
2944
2945
  head?: never;
2945
- /** Change the organization's whitelabel branding config (relabel / enable) */
2946
+ /** Change the organization's whitelabel branding config (relabel / enable / renewal mode) */
2946
2947
  patch: operations["patch_whitelabel_branding_v1_whitelabel_branding_patch"];
2947
2948
  trace?: never;
2948
2949
  };
@@ -2997,6 +2998,23 @@ export interface paths {
2997
2998
  patch?: never;
2998
2999
  trace?: never;
2999
3000
  };
3001
+ "/v1/whitelabel-branding/restore": {
3002
+ parameters: {
3003
+ query?: never;
3004
+ header?: never;
3005
+ path?: never;
3006
+ cookie?: never;
3007
+ };
3008
+ get?: never;
3009
+ put?: never;
3010
+ /** Restore a terminated whitelabel (re-enable and reprovision from the preserved state) */
3011
+ post: operations["restore_whitelabel_branding_v1_whitelabel_branding_restore_post"];
3012
+ delete?: never;
3013
+ options?: never;
3014
+ head?: never;
3015
+ patch?: never;
3016
+ trace?: never;
3017
+ };
3000
3018
  "/v1/whitelabel-branding/tier": {
3001
3019
  parameters: {
3002
3020
  query?: never;
@@ -11232,6 +11250,11 @@ export interface components {
11232
11250
  */
11233
11251
  request: boolean;
11234
11252
  };
11253
+ /** SetRenewalModeReq */
11254
+ SetRenewalModeReq: {
11255
+ /** @description expire cancels the set at period end (serves out the term), renew un-cancels (resumes auto-renew) */
11256
+ renewal_mode: components["schemas"]["RenewalModeDTO"];
11257
+ };
11235
11258
  /** SetVanityNameserverSetDefaultRes */
11236
11259
  SetVanityNameserverSetDefaultRes: {
11237
11260
  /** @description The set that is now the org's default (or unchanged set on a no-op 200). */
@@ -12695,10 +12718,11 @@ export interface components {
12695
12718
  };
12696
12719
  /**
12697
12720
  * WhitelabelBrandingPatch
12698
- * @description Public patch body. Neither field is a purchase, so nothing here touches the subscription or
12699
- * its price: `label` moves the base subdomain to a different label (base tier only - a plus
12700
- * whitelabel is re-pointed by its hostnames through recheck), and `enabled` starts or stops
12701
- * serving it. At least one must be given.
12721
+ * @description Public patch body. `label` moves the base subdomain to a different label (base tier only - a
12722
+ * plus whitelabel is re-pointed by its hostnames through recheck) and `enabled` starts or stops
12723
+ * serving it - both applied asynchronously via the reconcile job, neither a purchase. `renewal_mode`
12724
+ * sets the subscription's auto-renew intent synchronously (EXPIRE = cancel at period end, RENEW =
12725
+ * un-cancel); it is not a purchase either - no price change. At least one must be given.
12702
12726
  */
12703
12727
  WhitelabelBrandingPatch: {
12704
12728
  /**
@@ -12711,6 +12735,8 @@ export interface components {
12711
12735
  * @description New base-tier label; the hostnames become app.<label>.<suffix> / auth.<label>.<suffix>. Base tier only.
12712
12736
  */
12713
12737
  label?: string | null;
12738
+ /** @description Set auto-renew intent: expire cancels at period end (serves out the term), renew un-cancels */
12739
+ renewal_mode?: components["schemas"]["WhitelabelRenewalMode"] | null;
12714
12740
  };
12715
12741
  /**
12716
12742
  * WhitelabelBrandingRecheck
@@ -12761,6 +12787,7 @@ export interface components {
12761
12787
  * @example organization_01h45ytscbebyvny4gc8cr8ma2
12762
12788
  */
12763
12789
  organization_id: TypeId<"organization">;
12790
+ subscription?: components["schemas"]["WhitelabelSubscriptionInfo"] | null;
12764
12791
  tier: components["schemas"]["WhitelabelBrandingTier"];
12765
12792
  /**
12766
12793
  * Updated On
@@ -12839,6 +12866,32 @@ export interface components {
12839
12866
  */
12840
12867
  tier: "plus";
12841
12868
  };
12869
+ /**
12870
+ * WhitelabelRenewalMode
12871
+ * @description Whether the whitelabel's subscription auto-renews (RENEW) or lapses at period end (EXPIRE,
12872
+ * i.e. cancelled). The customer's renewal intent, stored on the row and mirrored to the subscription
12873
+ * on change (like the domain object). Its own enum so the whitelabel model does not depend on the
12874
+ * domain model; the wire values (renew/expire) match domains + vanity nameservers.
12875
+ * @enum {string}
12876
+ */
12877
+ WhitelabelRenewalMode: "renew" | "expire";
12878
+ /**
12879
+ * WhitelabelSubscriptionInfo
12880
+ * @description The whitelabel's billing-lifecycle state, a pass-through read from the subscription at the api
12881
+ * layer (product-service owns it; the branding row does not). Grouped into its own object so it
12882
+ * reads as one all-or-nothing block: the parent's `subscription` is null when the config has no live
12883
+ * subscription (still provisioning, or terminated). renewal_mode EXPIRE + expires_on is how a
12884
+ * cancelled whitelabel reads: "cancelled, served until expires_on".
12885
+ */
12886
+ WhitelabelSubscriptionInfo: {
12887
+ /** Expires On */
12888
+ expires_on?: Date | null;
12889
+ /** Grace Period Ends At */
12890
+ grace_period_ends_at?: Date | null;
12891
+ /** Renew Scheduled At */
12892
+ renew_scheduled_at?: Date | null;
12893
+ renewal_mode: components["schemas"]["WhitelabelRenewalMode"];
12894
+ };
12842
12895
  /**
12843
12896
  * WhitelabelUpgradeToPlus
12844
12897
  * @description Upgrade the whitelabel to the plus tier, served on the customer's own domain. This is NOT a
@@ -27033,6 +27086,47 @@ export interface operations {
27033
27086
  };
27034
27087
  };
27035
27088
  };
27089
+ set_vanity_nameserver_set_renewal_mode_v1_vanity_nameserver_sets__set_id__patch: {
27090
+ parameters: {
27091
+ query?: never;
27092
+ header?: {
27093
+ /**
27094
+ * @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.
27095
+ * @example rfc3339
27096
+ */
27097
+ "X-Datetime-Format"?: components["parameters"]["DatetimeFormatHeader"];
27098
+ };
27099
+ path: {
27100
+ set_id: TypeId<"vns">;
27101
+ };
27102
+ cookie?: never;
27103
+ };
27104
+ requestBody: {
27105
+ content: {
27106
+ "application/json": components["schemas"]["SetRenewalModeReq"];
27107
+ };
27108
+ };
27109
+ responses: {
27110
+ /** @description Successful Response */
27111
+ 200: {
27112
+ headers: {
27113
+ [name: string]: unknown;
27114
+ };
27115
+ content: {
27116
+ "application/json": components["schemas"]["VanityNameserverSetSummaryDTO"];
27117
+ };
27118
+ };
27119
+ /** @description Validation Error */
27120
+ 422: {
27121
+ headers: {
27122
+ [name: string]: unknown;
27123
+ };
27124
+ content: {
27125
+ "application/problem+json": components["schemas"]["HTTPValidationError"];
27126
+ };
27127
+ };
27128
+ };
27129
+ };
27036
27130
  set_vanity_nameserver_set_default_v1_vanity_nameserver_sets__set_id__default_patch: {
27037
27131
  parameters: {
27038
27132
  query?: never;
@@ -27278,7 +27372,7 @@ export interface operations {
27278
27372
  };
27279
27373
  responses: {
27280
27374
  /** @description Successful Response */
27281
- 202: {
27375
+ 200: {
27282
27376
  headers: {
27283
27377
  [name: string]: unknown;
27284
27378
  };
@@ -27410,6 +27504,41 @@ export interface operations {
27410
27504
  };
27411
27505
  };
27412
27506
  };
27507
+ restore_whitelabel_branding_v1_whitelabel_branding_restore_post: {
27508
+ parameters: {
27509
+ query?: never;
27510
+ header?: {
27511
+ /**
27512
+ * @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.
27513
+ * @example rfc3339
27514
+ */
27515
+ "X-Datetime-Format"?: components["parameters"]["DatetimeFormatHeader"];
27516
+ };
27517
+ path?: never;
27518
+ cookie?: never;
27519
+ };
27520
+ requestBody?: never;
27521
+ responses: {
27522
+ /** @description Successful Response */
27523
+ 200: {
27524
+ headers: {
27525
+ [name: string]: unknown;
27526
+ };
27527
+ content: {
27528
+ "application/json": components["schemas"]["WhitelabelBrandingResponse"];
27529
+ };
27530
+ };
27531
+ /** @description Validation Error */
27532
+ 422: {
27533
+ headers: {
27534
+ [name: string]: unknown;
27535
+ };
27536
+ content: {
27537
+ "application/problem+json": components["schemas"]["HTTPValidationError"];
27538
+ };
27539
+ };
27540
+ };
27541
+ };
27413
27542
  upgrade_whitelabel_to_plus_v1_whitelabel_branding_tier_post: {
27414
27543
  parameters: {
27415
27544
  query?: never;