@opusdns/api 1.190.0 → 1.192.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.6.0"
4
4
  },
5
5
  "name": "@opusdns/api",
6
- "version": "1.190.0",
6
+ "version": "1.192.0",
7
7
  "description": "TypeScript types for the OpusDNS OpenAPI specification",
8
8
  "main": "./src/index.ts",
9
9
  "module": "./src/index.ts",
@@ -127,6 +127,8 @@ import type {
127
127
  VerificationDeadlineType,
128
128
  VerificationPolicyType,
129
129
  VerificationType,
130
+ WaitlistEntryStatus,
131
+ WaitlistProduct,
130
132
  WhitelabelBrandingTier,
131
133
  WhitelabelOnboardingFailureCode,
132
134
  WhitelabelOnboardingFailureType,
@@ -785,23 +787,23 @@ export const DOMAIN_FORWARD_ZONE_SORT_FIELD_VALUES = [
785
787
  export const DOMAIN_INCLUDE_FIELD = {
786
788
  TAGS: "tags",
787
789
  RENEWAL_PRICE: "renewal_price",
788
- REGISTRAR_CREDENTIAL: "registrar_credential",
790
+ CONNECTED_ACCOUNT: "connected_account",
789
791
  } as const satisfies Record<string, DomainIncludeField>;
790
792
 
791
793
  export const DOMAIN_INCLUDE_FIELD_VALUES = [
792
794
  'tags',
793
795
  'renewal_price',
794
- 'registrar_credential',
796
+ 'connected_account',
795
797
  ] as const satisfies ReadonlyArray<DomainIncludeField>;
796
798
 
797
799
  export const DOMAIN_LIST_INCLUDE_FIELD = {
798
800
  TAGS: "tags",
799
- REGISTRAR_CREDENTIAL: "registrar_credential",
801
+ CONNECTED_ACCOUNT: "connected_account",
800
802
  } as const satisfies Record<string, DomainListIncludeField>;
801
803
 
802
804
  export const DOMAIN_LIST_INCLUDE_FIELD_VALUES = [
803
805
  'tags',
804
- 'registrar_credential',
806
+ 'connected_account',
805
807
  ] as const satisfies ReadonlyArray<DomainListIncludeField>;
806
808
 
807
809
  export const DOMAIN_SORT_FIELD = {
@@ -2425,6 +2427,26 @@ export const VERIFICATION_TYPE_VALUES = [
2425
2427
  'email',
2426
2428
  ] as const satisfies ReadonlyArray<VerificationType>;
2427
2429
 
2430
+ export const WAITLIST_ENTRY_STATUS = {
2431
+ PENDING: "pending",
2432
+ GRANTED: "granted",
2433
+ REJECTED: "rejected",
2434
+ } as const satisfies Record<string, WaitlistEntryStatus>;
2435
+
2436
+ export const WAITLIST_ENTRY_STATUS_VALUES = [
2437
+ 'pending',
2438
+ 'granted',
2439
+ 'rejected',
2440
+ ] as const satisfies ReadonlyArray<WaitlistEntryStatus>;
2441
+
2442
+ export const WAITLIST_PRODUCT = {
2443
+ AI_CONCIERGE: "ai_concierge",
2444
+ } as const satisfies Record<string, WaitlistProduct>;
2445
+
2446
+ export const WAITLIST_PRODUCT_VALUES = [
2447
+ 'ai_concierge',
2448
+ ] as const satisfies ReadonlyArray<WaitlistProduct>;
2449
+
2428
2450
  export const WHITELABEL_BRANDING_TIER = {
2429
2451
  BASE: "base",
2430
2452
  PLUS: "plus",
@@ -106,6 +106,8 @@ export const ORGANIZATIONS_ENDPOINT = '/v1/organizations';
106
106
  export const ORGANIZATIONS_ATTRIBUTES_ENDPOINT = '/v1/organizations/attributes';
107
107
  export const ORGANIZATIONS_IP_RESTRICTIONS_ENDPOINT = '/v1/organizations/ip-restrictions';
108
108
  export const ORGANIZATIONS_IP_RESTRICTIONS_BY_IP_RESTRICTION_ID_ENDPOINT = '/v1/organizations/ip-restrictions/{ip_restriction_id}';
109
+ export const ORGANIZATIONS_PRODUCT_WAITLIST_ENDPOINT = '/v1/organizations/product-waitlist';
110
+ export const ORGANIZATIONS_PRODUCT_WAITLIST_BY_PRODUCT_APPLY_ENDPOINT = '/v1/organizations/product-waitlist/{product}/apply';
109
111
  export const ORGANIZATIONS_ROLE_PERMISSIONS_ENDPOINT = '/v1/organizations/role-permissions';
110
112
  export const ORGANIZATIONS_ROLES_ENDPOINT = '/v1/organizations/roles';
111
113
  export const ORGANIZATIONS_ROLES_BY_LABEL_ENDPOINT = '/v1/organizations/roles/{label}';
@@ -266,6 +268,8 @@ export type Endpoint =
266
268
  | typeof ORGANIZATIONS_ATTRIBUTES_ENDPOINT
267
269
  | typeof ORGANIZATIONS_IP_RESTRICTIONS_ENDPOINT
268
270
  | typeof ORGANIZATIONS_IP_RESTRICTIONS_BY_IP_RESTRICTION_ID_ENDPOINT
271
+ | typeof ORGANIZATIONS_PRODUCT_WAITLIST_ENDPOINT
272
+ | typeof ORGANIZATIONS_PRODUCT_WAITLIST_BY_PRODUCT_APPLY_ENDPOINT
269
273
  | typeof ORGANIZATIONS_ROLE_PERMISSIONS_ENDPOINT
270
274
  | typeof ORGANIZATIONS_ROLES_ENDPOINT
271
275
  | typeof ORGANIZATIONS_ROLES_BY_LABEL_ENDPOINT
@@ -451,6 +451,10 @@ import type {
451
451
  VerificationRegistrantDetails,
452
452
  Verification,
453
453
  VisitsByKeyBucket,
454
+ WaitlistApplyRequest,
455
+ WaitlistEntry,
456
+ WaitlistProductList,
457
+ WaitlistProductState,
454
458
  WhitelabelBaseCreate,
455
459
  WhitelabelBrandingPatch,
456
460
  WhitelabelBrandingRecheck,
@@ -2612,11 +2616,13 @@ export const KEYS_DOMAIN_RECOMMENDATIONS_CONTEXT_CREATE = [
2612
2616
  export const KEY_DOMAIN_REGISTRAR_CREDENTIAL_NAME = 'name' satisfies keyof DomainRegistrarCredential;
2613
2617
  export const KEY_DOMAIN_REGISTRAR_CREDENTIAL_REGISTRAR = 'registrar' satisfies keyof DomainRegistrarCredential;
2614
2618
  export const KEY_DOMAIN_REGISTRAR_CREDENTIAL_REGISTRAR_CREDENTIAL_ID = 'registrar_credential_id' satisfies keyof DomainRegistrarCredential;
2619
+ export const KEY_DOMAIN_REGISTRAR_CREDENTIAL_TYPE = 'type' satisfies keyof DomainRegistrarCredential;
2615
2620
 
2616
2621
  export const KEYS_DOMAIN_REGISTRAR_CREDENTIAL = [
2617
2622
  KEY_DOMAIN_REGISTRAR_CREDENTIAL_NAME,
2618
2623
  KEY_DOMAIN_REGISTRAR_CREDENTIAL_REGISTRAR,
2619
2624
  KEY_DOMAIN_REGISTRAR_CREDENTIAL_REGISTRAR_CREDENTIAL_ID,
2625
+ KEY_DOMAIN_REGISTRAR_CREDENTIAL_TYPE,
2620
2626
  ] as const satisfies (keyof DomainRegistrarCredential)[];
2621
2627
 
2622
2628
  export const KEY_DOMAIN_RENEW_REQUEST_CURRENT_EXPIRY_DATE = 'current_expiry_date' satisfies keyof DomainRenewRequest;
@@ -2662,6 +2668,7 @@ export const KEYS_DOMAIN_RENEWAL_PRICE = [
2662
2668
  export const KEY_DOMAIN_AUTH_CODE = 'auth_code' satisfies keyof Domain;
2663
2669
  export const KEY_DOMAIN_AUTH_CODE_EXPIRES_ON = 'auth_code_expires_on' satisfies keyof Domain;
2664
2670
  export const KEY_DOMAIN_CANCELED_ON = 'canceled_on' satisfies keyof Domain;
2671
+ export const KEY_DOMAIN_CONNECTED_ACCOUNT = 'connected_account' satisfies keyof Domain;
2665
2672
  export const KEY_DOMAIN_CONTACTS = 'contacts' satisfies keyof Domain;
2666
2673
  export const KEY_DOMAIN_CREATED_ON = 'created_on' satisfies keyof Domain;
2667
2674
  export const KEY_DOMAIN_DELETED_ON = 'deleted_on' satisfies keyof Domain;
@@ -2674,7 +2681,6 @@ export const KEY_DOMAIN_NAMESERVERS = 'nameservers' satisfies keyof Domain;
2674
2681
  export const KEY_DOMAIN_OWNER_ID = 'owner_id' satisfies keyof Domain;
2675
2682
  export const KEY_DOMAIN_READ_ONLY = 'read_only' satisfies keyof Domain;
2676
2683
  export const KEY_DOMAIN_REGISTERED_ON = 'registered_on' satisfies keyof Domain;
2677
- export const KEY_DOMAIN_REGISTRAR_CREDENTIAL = 'registrar_credential' satisfies keyof Domain;
2678
2684
  export const KEY_DOMAIN_REGISTRY_ACCOUNT_ID = 'registry_account_id' satisfies keyof Domain;
2679
2685
  export const KEY_DOMAIN_REGISTRY_STATUSES = 'registry_statuses' satisfies keyof Domain;
2680
2686
  export const KEY_DOMAIN_RENEWAL_MODE = 'renewal_mode' satisfies keyof Domain;
@@ -2694,6 +2700,7 @@ export const KEYS_DOMAIN = [
2694
2700
  KEY_DOMAIN_AUTH_CODE,
2695
2701
  KEY_DOMAIN_AUTH_CODE_EXPIRES_ON,
2696
2702
  KEY_DOMAIN_CANCELED_ON,
2703
+ KEY_DOMAIN_CONNECTED_ACCOUNT,
2697
2704
  KEY_DOMAIN_CONTACTS,
2698
2705
  KEY_DOMAIN_CREATED_ON,
2699
2706
  KEY_DOMAIN_DELETED_ON,
@@ -2706,7 +2713,6 @@ export const KEYS_DOMAIN = [
2706
2713
  KEY_DOMAIN_OWNER_ID,
2707
2714
  KEY_DOMAIN_READ_ONLY,
2708
2715
  KEY_DOMAIN_REGISTERED_ON,
2709
- KEY_DOMAIN_REGISTRAR_CREDENTIAL,
2710
2716
  KEY_DOMAIN_REGISTRY_ACCOUNT_ID,
2711
2717
  KEY_DOMAIN_REGISTRY_STATUSES,
2712
2718
  KEY_DOMAIN_RENEWAL_MODE,
@@ -6183,6 +6189,48 @@ export const KEYS_VISITS_BY_KEY_BUCKET = [
6183
6189
  KEY_VISITS_BY_KEY_BUCKET_UNIQUE,
6184
6190
  ] as const satisfies (keyof VisitsByKeyBucket)[];
6185
6191
 
6192
+ export const KEY_WAITLIST_APPLY_REQUEST_NOTE = 'note' satisfies keyof WaitlistApplyRequest;
6193
+
6194
+ export const KEYS_WAITLIST_APPLY_REQUEST = [
6195
+ KEY_WAITLIST_APPLY_REQUEST_NOTE,
6196
+ ] as const satisfies (keyof WaitlistApplyRequest)[];
6197
+
6198
+ export const KEY_WAITLIST_ENTRY_APPLIED_ON = 'applied_on' satisfies keyof WaitlistEntry;
6199
+ export const KEY_WAITLIST_ENTRY_DECIDED_ON = 'decided_on' satisfies keyof WaitlistEntry;
6200
+ export const KEY_WAITLIST_ENTRY_PRODUCT = 'product' satisfies keyof WaitlistEntry;
6201
+ export const KEY_WAITLIST_ENTRY_STATUS = 'status' satisfies keyof WaitlistEntry;
6202
+
6203
+ export const KEYS_WAITLIST_ENTRY = [
6204
+ KEY_WAITLIST_ENTRY_APPLIED_ON,
6205
+ KEY_WAITLIST_ENTRY_DECIDED_ON,
6206
+ KEY_WAITLIST_ENTRY_PRODUCT,
6207
+ KEY_WAITLIST_ENTRY_STATUS,
6208
+ ] as const satisfies (keyof WaitlistEntry)[];
6209
+
6210
+ export const KEY_WAITLIST_PRODUCT_LIST_PRODUCTS = 'products' satisfies keyof WaitlistProductList;
6211
+
6212
+ export const KEYS_WAITLIST_PRODUCT_LIST = [
6213
+ KEY_WAITLIST_PRODUCT_LIST_PRODUCTS,
6214
+ ] as const satisfies (keyof WaitlistProductList)[];
6215
+
6216
+ export const KEY_WAITLIST_PRODUCT_STATE_APPLIED_ON = 'applied_on' satisfies keyof WaitlistProductState;
6217
+ export const KEY_WAITLIST_PRODUCT_STATE_CAN_APPLY = 'can_apply' satisfies keyof WaitlistProductState;
6218
+ export const KEY_WAITLIST_PRODUCT_STATE_DECIDED_ON = 'decided_on' satisfies keyof WaitlistProductState;
6219
+ export const KEY_WAITLIST_PRODUCT_STATE_DESCRIPTION = 'description' satisfies keyof WaitlistProductState;
6220
+ export const KEY_WAITLIST_PRODUCT_STATE_DISPLAY_NAME = 'display_name' satisfies keyof WaitlistProductState;
6221
+ export const KEY_WAITLIST_PRODUCT_STATE_PRODUCT = 'product' satisfies keyof WaitlistProductState;
6222
+ export const KEY_WAITLIST_PRODUCT_STATE_STATUS = 'status' satisfies keyof WaitlistProductState;
6223
+
6224
+ export const KEYS_WAITLIST_PRODUCT_STATE = [
6225
+ KEY_WAITLIST_PRODUCT_STATE_APPLIED_ON,
6226
+ KEY_WAITLIST_PRODUCT_STATE_CAN_APPLY,
6227
+ KEY_WAITLIST_PRODUCT_STATE_DECIDED_ON,
6228
+ KEY_WAITLIST_PRODUCT_STATE_DESCRIPTION,
6229
+ KEY_WAITLIST_PRODUCT_STATE_DISPLAY_NAME,
6230
+ KEY_WAITLIST_PRODUCT_STATE_PRODUCT,
6231
+ KEY_WAITLIST_PRODUCT_STATE_STATUS,
6232
+ ] as const satisfies (keyof WaitlistProductState)[];
6233
+
6186
6234
  export const KEY_WHITELABEL_BASE_CREATE_LABEL = 'label' satisfies keyof WhitelabelBaseCreate;
6187
6235
  export const KEY_WHITELABEL_BASE_CREATE_PERIOD = 'period' satisfies keyof WhitelabelBaseCreate;
6188
6236
  export const KEY_WHITELABEL_BASE_CREATE_TIER = 'tier' satisfies keyof WhitelabelBaseCreate;
@@ -119,6 +119,8 @@ import {
119
119
  ORGANIZATIONS_ENDPOINT,
120
120
  ORGANIZATIONS_IP_RESTRICTIONS_BY_IP_RESTRICTION_ID_ENDPOINT,
121
121
  ORGANIZATIONS_IP_RESTRICTIONS_ENDPOINT,
122
+ ORGANIZATIONS_PRODUCT_WAITLIST_BY_PRODUCT_APPLY_ENDPOINT,
123
+ ORGANIZATIONS_PRODUCT_WAITLIST_ENDPOINT,
122
124
  ORGANIZATIONS_ROLE_PERMISSIONS_ENDPOINT,
123
125
  ORGANIZATIONS_ROLES_BY_LABEL_ENDPOINT,
124
126
  ORGANIZATIONS_ROLES_ENDPOINT,
@@ -1050,6 +1052,20 @@ export const REQUIRED_PERMISSIONS = {
1050
1052
  patch: [],
1051
1053
  delete: [],
1052
1054
  },
1055
+ [ORGANIZATIONS_PRODUCT_WAITLIST_BY_PRODUCT_APPLY_ENDPOINT]: {
1056
+ get: [],
1057
+ post: [],
1058
+ put: [],
1059
+ patch: [],
1060
+ delete: [],
1061
+ },
1062
+ [ORGANIZATIONS_PRODUCT_WAITLIST_ENDPOINT]: {
1063
+ get: [PUBLIC_PERMISSION.ORGANIZATION_READ],
1064
+ post: [],
1065
+ put: [],
1066
+ patch: [],
1067
+ delete: [],
1068
+ },
1053
1069
  [ORGANIZATIONS_ROLE_PERMISSIONS_ENDPOINT]: {
1054
1070
  get: [PUBLIC_PERMISSION.ORGANIZATION_READ],
1055
1071
  post: [],
@@ -957,6 +957,14 @@ export type PATCH_OrganizationsIpRestrictionsByIpRestrictionId_Request = {
957
957
  export type PATCH_OrganizationsIpRestrictionsByIpRestrictionId_Request_Path = PATCH_OrganizationsIpRestrictionsByIpRestrictionId_Request['parameters']['path'];
958
958
  export type PATCH_OrganizationsIpRestrictionsByIpRestrictionId_Request_Body = PATCH_OrganizationsIpRestrictionsByIpRestrictionId_Request['requestBody'];
959
959
 
960
+ export type GET_OrganizationsProductWaitlist_Request = {
961
+ };
962
+
963
+ export type POST_OrganizationsProductWaitlistByProductApply_Request = {
964
+ parameters: operations['apply_for_product_waitlist_v1_organizations_product_waitlist__product__apply_post']['parameters'];
965
+ };
966
+ export type POST_OrganizationsProductWaitlistByProductApply_Request_Path = POST_OrganizationsProductWaitlistByProductApply_Request['parameters']['path'];
967
+
960
968
  export type GET_OrganizationsRolePermissions_Request = {
961
969
  };
962
970
 
@@ -120,6 +120,8 @@ import type {
120
120
  UserPublicWithAttributes,
121
121
  VanityNameserverSetSummaryDTO,
122
122
  VanityNsCheckRes,
123
+ WaitlistEntry,
124
+ WaitlistProductList,
123
125
  WhitelabelBranding,
124
126
  } from './schemas';
125
127
 
@@ -748,6 +750,13 @@ export type GET_OrganizationsIpRestrictionsByIpRestrictionId_Response_401 = Prob
748
750
  export type GET_OrganizationsIpRestrictionsByIpRestrictionId_Response_403 = Problem;
749
751
  export type GET_OrganizationsIpRestrictionsByIpRestrictionId_Response_422 = HTTPValidationError;
750
752
 
753
+ export type GET_OrganizationsProductWaitlist_Response = GET_OrganizationsProductWaitlist_Response_200 | GET_OrganizationsProductWaitlist_Response_401 | GET_OrganizationsProductWaitlist_Response_403 | GET_OrganizationsProductWaitlist_Response_422;
754
+
755
+ export type GET_OrganizationsProductWaitlist_Response_200 = WaitlistProductList;
756
+ export type GET_OrganizationsProductWaitlist_Response_401 = Problem;
757
+ export type GET_OrganizationsProductWaitlist_Response_403 = Problem;
758
+ export type GET_OrganizationsProductWaitlist_Response_422 = HTTPValidationError;
759
+
751
760
  export type GET_OrganizationsRolePermissions_Response = GET_OrganizationsRolePermissions_Response_200 | GET_OrganizationsRolePermissions_Response_401 | GET_OrganizationsRolePermissions_Response_403 | GET_OrganizationsRolePermissions_Response_422;
752
761
 
753
762
  export type GET_OrganizationsRolePermissions_Response_200 = PublicPermissionSet;
@@ -1398,6 +1407,15 @@ export type POST_OrganizationsIpRestrictions_Response_401 = Problem;
1398
1407
  export type POST_OrganizationsIpRestrictions_Response_403 = Problem;
1399
1408
  export type POST_OrganizationsIpRestrictions_Response_422 = HTTPValidationError;
1400
1409
 
1410
+ export type POST_OrganizationsProductWaitlistByProductApply_Response = POST_OrganizationsProductWaitlistByProductApply_Response_200 | POST_OrganizationsProductWaitlistByProductApply_Response_401 | POST_OrganizationsProductWaitlistByProductApply_Response_403 | POST_OrganizationsProductWaitlistByProductApply_Response_404 | POST_OrganizationsProductWaitlistByProductApply_Response_409 | POST_OrganizationsProductWaitlistByProductApply_Response_422;
1411
+
1412
+ export type POST_OrganizationsProductWaitlistByProductApply_Response_200 = WaitlistEntry;
1413
+ export type POST_OrganizationsProductWaitlistByProductApply_Response_401 = Problem;
1414
+ export type POST_OrganizationsProductWaitlistByProductApply_Response_403 = Problem;
1415
+ export type POST_OrganizationsProductWaitlistByProductApply_Response_404 = Problem;
1416
+ export type POST_OrganizationsProductWaitlistByProductApply_Response_409 = Problem;
1417
+ export type POST_OrganizationsProductWaitlistByProductApply_Response_422 = HTTPValidationError;
1418
+
1401
1419
  export type POST_OrganizationsRoles_Response = POST_OrganizationsRoles_Response_201 | POST_OrganizationsRoles_Response_401 | POST_OrganizationsRoles_Response_403 | POST_OrganizationsRoles_Response_409 | POST_OrganizationsRoles_Response_422;
1402
1420
 
1403
1421
  export type POST_OrganizationsRoles_Response_201 = PublicRoleDefinition;
@@ -604,6 +604,12 @@ export type VerificationRegistrantDetails = components['schemas']['VerificationR
604
604
  export type Verification = components['schemas']['VerificationResponse'];
605
605
  export type VerificationType = components['schemas']['VerificationType'];
606
606
  export type VisitsByKeyBucket = components['schemas']['VisitsByKeyBucket'];
607
+ export type WaitlistApplyRequest = components['schemas']['WaitlistApplyRequest'];
608
+ export type WaitlistEntry = components['schemas']['WaitlistEntryResponse'];
609
+ export type WaitlistEntryStatus = components['schemas']['WaitlistEntryStatus'];
610
+ export type WaitlistProduct = components['schemas']['WaitlistProduct'];
611
+ export type WaitlistProductList = components['schemas']['WaitlistProductListResponse'];
612
+ export type WaitlistProductState = components['schemas']['WaitlistProductState'];
607
613
  export type WhitelabelBaseCreate = components['schemas']['WhitelabelBaseCreate'];
608
614
  export type WhitelabelBrandingPatch = components['schemas']['WhitelabelBrandingPatch'];
609
615
  export type WhitelabelBrandingRecheck = components['schemas']['WhitelabelBrandingRecheck'];
package/src/openapi.yaml CHANGED
@@ -5442,7 +5442,7 @@ components:
5442
5442
  enum:
5443
5443
  - tags
5444
5444
  - renewal_price
5445
- - registrar_credential
5445
+ - connected_account
5446
5446
  title: DomainIncludeField
5447
5447
  type: string
5448
5448
  DomainLifecycleBase:
@@ -5604,7 +5604,7 @@ components:
5604
5604
  implement every member.'
5605
5605
  enum:
5606
5606
  - tags
5607
- - registrar_credential
5607
+ - connected_account
5608
5608
  title: DomainListIncludeField
5609
5609
  type: string
5610
5610
  DomainNameParts:
@@ -5727,7 +5727,14 @@ components:
5727
5727
  title: Registrar Credential Id
5728
5728
  type: string
5729
5729
  x-typeid-prefix: registrar_credential
5730
+ type:
5731
+ const: ras
5732
+ description: 'Kind of connected account. `ras`: a registrar credential managed
5733
+ under `/v1/connect/registrars`.'
5734
+ title: Type
5735
+ type: string
5730
5736
  required:
5737
+ - type
5731
5738
  - registrar_credential_id
5732
5739
  - name
5733
5740
  - registrar
@@ -5844,6 +5851,20 @@ components:
5844
5851
  - type: 'null'
5845
5852
  description: When the domain was deleted
5846
5853
  title: Canceled On
5854
+ connected_account:
5855
+ anyOf:
5856
+ - discriminator:
5857
+ mapping:
5858
+ ras: '#/components/schemas/DomainRegistrarCredentialResponse'
5859
+ propertyName: type
5860
+ oneOf:
5861
+ - $ref: '#/components/schemas/DomainRegistrarCredentialResponse'
5862
+ - type: 'null'
5863
+ description: The connected account this domain is synced from. Null unless
5864
+ `include=connected_account` is requested, and null even then for natively
5865
+ registered domains, for domains on operator-managed registry accounts,
5866
+ and when the connected account was deleted.
5867
+ title: Connected Account
5847
5868
  contacts:
5848
5869
  description: The contacts of the domain
5849
5870
  items:
@@ -5931,14 +5952,6 @@ components:
5931
5952
  - type: 'null'
5932
5953
  description: When the domain was registered
5933
5954
  title: Registered On
5934
- registrar_credential:
5935
- anyOf:
5936
- - $ref: '#/components/schemas/DomainRegistrarCredentialResponse'
5937
- - type: 'null'
5938
- description: The connected registrar credential this domain is synced from.
5939
- Null unless `include=registrar_credential` is requested, and null even
5940
- then for natively registered domains, for domains on operator-managed
5941
- registry accounts, and when the credential was deleted.
5942
5955
  registry_account_id:
5943
5956
  default: None
5944
5957
  examples:
@@ -16078,6 +16091,125 @@ components:
16078
16091
  - unique
16079
16092
  title: VisitsByKeyBucket
16080
16093
  type: object
16094
+ WaitlistApplyRequest:
16095
+ description: What an organization says when applying for a product.
16096
+ properties:
16097
+ note:
16098
+ anyOf:
16099
+ - maxLength: 1000
16100
+ minLength: 1
16101
+ type: string
16102
+ - type: 'null'
16103
+ description: What your organization would use the product for
16104
+ examples:
16105
+ - We manage 12k domains for agency clients and triage renewals by hand.
16106
+ title: Note
16107
+ title: WaitlistApplyRequest
16108
+ type: object
16109
+ WaitlistEntryResponse:
16110
+ description: An organization's own waitlist application.
16111
+ properties:
16112
+ applied_on:
16113
+ description: When the organization applied
16114
+ format: date-time
16115
+ title: Applied On
16116
+ type: string
16117
+ decided_on:
16118
+ anyOf:
16119
+ - format: date-time
16120
+ type: string
16121
+ - type: 'null'
16122
+ description: When the application was decided; null while it is pending
16123
+ title: Decided On
16124
+ product:
16125
+ $ref: '#/components/schemas/WaitlistProduct'
16126
+ description: Product the application is for
16127
+ status:
16128
+ $ref: '#/components/schemas/WaitlistEntryStatus'
16129
+ description: Where the application stands
16130
+ required:
16131
+ - product
16132
+ - status
16133
+ - applied_on
16134
+ title: WaitlistEntryResponse
16135
+ type: object
16136
+ WaitlistEntryStatus:
16137
+ enum:
16138
+ - pending
16139
+ - granted
16140
+ - rejected
16141
+ title: WaitlistEntryStatus
16142
+ type: string
16143
+ WaitlistProduct:
16144
+ description: 'A product that is not generally available and is reached through
16145
+ the waitlist.
16146
+
16147
+
16148
+ The member value is the wire form used in URLs and API bodies; the column
16149
+ persists the
16150
+
16151
+ member NAME (StringEnum binds `value.name`), so renaming a member is a data
16152
+ migration.'
16153
+ enum:
16154
+ - ai_concierge
16155
+ title: WaitlistProduct
16156
+ type: string
16157
+ WaitlistProductListResponse:
16158
+ description: The waitlisted products an organization may see.
16159
+ properties:
16160
+ products:
16161
+ description: Waitlisted products this organization may see
16162
+ items:
16163
+ $ref: '#/components/schemas/WaitlistProductState'
16164
+ title: Products
16165
+ type: array
16166
+ title: WaitlistProductListResponse
16167
+ type: object
16168
+ WaitlistProductState:
16169
+ description: A waitlisted product, and where the organization stands with it.
16170
+ properties:
16171
+ applied_on:
16172
+ anyOf:
16173
+ - format: date-time
16174
+ type: string
16175
+ - type: 'null'
16176
+ description: When the organization applied, if it has
16177
+ title: Applied On
16178
+ can_apply:
16179
+ description: Whether an apply would be accepted right now
16180
+ title: Can Apply
16181
+ type: boolean
16182
+ decided_on:
16183
+ anyOf:
16184
+ - format: date-time
16185
+ type: string
16186
+ - type: 'null'
16187
+ description: When the application was decided, if it was
16188
+ title: Decided On
16189
+ description:
16190
+ description: What the product does
16191
+ title: Description
16192
+ type: string
16193
+ display_name:
16194
+ description: Human-readable product name
16195
+ title: Display Name
16196
+ type: string
16197
+ product:
16198
+ $ref: '#/components/schemas/WaitlistProduct'
16199
+ description: Product key, used in the apply path
16200
+ status:
16201
+ anyOf:
16202
+ - $ref: '#/components/schemas/WaitlistEntryStatus'
16203
+ - type: 'null'
16204
+ description: Where the organization's application stands; null until it
16205
+ applies
16206
+ required:
16207
+ - product
16208
+ - display_name
16209
+ - description
16210
+ - can_apply
16211
+ title: WaitlistProductState
16212
+ type: object
16081
16213
  WhitelabelBaseCreate:
16082
16214
  additionalProperties: false
16083
16215
  description: 'Create the base tier: served on a managed subdomain composed from
@@ -17059,7 +17191,7 @@ info:
17059
17191
  \n\n"
17060
17192
  summary: OpusDNS - your gateway to a seamless domain management experience.
17061
17193
  title: OpusDNS API
17062
- version: 2026-09-22-090818
17194
+ version: 2026-09-22-153526
17063
17195
  x-logo:
17064
17196
  altText: OpusDNS API Reference
17065
17197
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -25297,7 +25429,7 @@ paths:
25297
25429
  - description: Filter domains held at an external registrar by the connected
25298
25430
  registrar credential they were synced from. Can be specified multiple times
25299
25431
  (union of all provided values); combined with `registrar`, both must match.
25300
- Matches exactly the domains whose `registrar_credential` field carries the
25432
+ Matches exactly the domains whose `connected_account` field carries the
25301
25433
  id, so domains OpusDNS sponsors never match.
25302
25434
  in: query
25303
25435
  name: registrar_credential_id
@@ -25316,13 +25448,13 @@ paths:
25316
25448
  description: Filter domains held at an external registrar by the connected
25317
25449
  registrar credential they were synced from. Can be specified multiple
25318
25450
  times (union of all provided values); combined with `registrar`, both
25319
- must match. Matches exactly the domains whose `registrar_credential` field
25451
+ must match. Matches exactly the domains whose `connected_account` field
25320
25452
  carries the id, so domains OpusDNS sponsors never match.
25321
25453
  title: Registrar Credential Id
25322
25454
  - description: Filter domains held at an external registrar by that registrar.
25323
25455
  Can be specified multiple times (union of all provided values); combined
25324
25456
  with `registrar_credential_id`, both must match. Matches exactly the domains
25325
- whose `registrar_credential` field carries the registrar, so domains OpusDNS
25457
+ whose `connected_account` field carries the registrar, so domains OpusDNS
25326
25458
  sponsors never match.
25327
25459
  in: query
25328
25460
  name: registrar
@@ -25336,13 +25468,13 @@ paths:
25336
25468
  description: Filter domains held at an external registrar by that registrar.
25337
25469
  Can be specified multiple times (union of all provided values); combined
25338
25470
  with `registrar_credential_id`, both must match. Matches exactly the domains
25339
- whose `registrar_credential` field carries the registrar, so domains OpusDNS
25471
+ whose `connected_account` field carries the registrar, so domains OpusDNS
25340
25472
  sponsors never match.
25341
25473
  title: Registrar
25342
25474
  - description: Extra data to include in each result. `tags` populates the `tags`
25343
25475
  (user tags) and `status_tags` fields, which are otherwise null; filtering
25344
- by `tag_ids` or `status_tags` alone does not populate them. `registrar_credential`
25345
- populates the `registrar_credential` field for domains held at an external
25476
+ by `tag_ids` or `status_tags` alone does not populate them. `connected_account`
25477
+ populates the `connected_account` field for domains held at an external
25346
25478
  registrar.
25347
25479
  in: query
25348
25480
  name: include
@@ -25356,8 +25488,8 @@ paths:
25356
25488
  description: Extra data to include in each result. `tags` populates the
25357
25489
  `tags` (user tags) and `status_tags` fields, which are otherwise null;
25358
25490
  filtering by `tag_ids` or `status_tags` alone does not populate them.
25359
- `registrar_credential` populates the `registrar_credential` field for
25360
- domains held at an external registrar.
25491
+ `connected_account` populates the `connected_account` field for domains
25492
+ held at an external registrar.
25361
25493
  title: Include
25362
25494
  - $ref: '#/components/parameters/DatetimeFormatHeader'
25363
25495
  responses:
@@ -27012,7 +27144,7 @@ paths:
27012
27144
  title: Domain Reference
27013
27145
  - description: Extra data to include in the response. `tags` populates the `tags`
27014
27146
  and `status_tags` fields, which are otherwise null. `renewal_price` resolves
27015
- the domain's renewal price. `registrar_credential` populates the `registrar_credential`
27147
+ the domain's renewal price. `connected_account` populates the `connected_account`
27016
27148
  field for domains held at an external registrar.
27017
27149
  in: query
27018
27150
  name: include
@@ -27025,8 +27157,8 @@ paths:
27025
27157
  - type: 'null'
27026
27158
  description: Extra data to include in the response. `tags` populates the
27027
27159
  `tags` and `status_tags` fields, which are otherwise null. `renewal_price`
27028
- resolves the domain's renewal price. `registrar_credential` populates
27029
- the `registrar_credential` field for domains held at an external registrar.
27160
+ resolves the domain's renewal price. `connected_account` populates the
27161
+ `connected_account` field for domains held at an external registrar.
27030
27162
  title: Include
27031
27163
  - $ref: '#/components/parameters/DatetimeFormatHeader'
27032
27164
  responses:
@@ -31370,6 +31502,154 @@ paths:
31370
31502
  summary: Update an IP restriction
31371
31503
  tags:
31372
31504
  - organization
31505
+ /v1/organizations/product-waitlist:
31506
+ get:
31507
+ description: Lists the waitlisted products your organization has been invited
31508
+ to, or has already applied for, with where your organization stands on each.
31509
+ Any other product is omitted entirely.
31510
+ operationId: list_product_waitlists_v1_organizations_product_waitlist_get
31511
+ parameters:
31512
+ - $ref: '#/components/parameters/DatetimeFormatHeader'
31513
+ responses:
31514
+ '200':
31515
+ content:
31516
+ application/json:
31517
+ schema:
31518
+ $ref: '#/components/schemas/WaitlistProductListResponse'
31519
+ description: Successful Response
31520
+ '401':
31521
+ content:
31522
+ application/problem+json:
31523
+ example:
31524
+ code: ERROR_AUTHENTICATION
31525
+ detail: Additional error context.
31526
+ status: 401
31527
+ title: Authentication Error
31528
+ type: authentication
31529
+ schema:
31530
+ $ref: '#/components/schemas/Problem'
31531
+ description: Unauthorized
31532
+ '403':
31533
+ content:
31534
+ application/problem+json:
31535
+ example:
31536
+ code: ERROR_PERMISSION_DENIED
31537
+ detail: Insufficient permissions to perform this action
31538
+ status: 403
31539
+ title: Permission Denied
31540
+ type: permission-denied
31541
+ schema:
31542
+ $ref: '#/components/schemas/Problem'
31543
+ description: Forbidden
31544
+ '422':
31545
+ content:
31546
+ application/problem+json:
31547
+ schema:
31548
+ $ref: '#/components/schemas/HTTPValidationError'
31549
+ description: Validation Error
31550
+ security:
31551
+ - OAuth2PasswordBearer: []
31552
+ - APIKeyHeader: []
31553
+ summary: List product waitlists
31554
+ tags:
31555
+ - organization
31556
+ - product_waitlist
31557
+ x-required-permissions:
31558
+ - organization:read
31559
+ /v1/organizations/product-waitlist/{product}/apply:
31560
+ post:
31561
+ description: 'Applies your organization to a product''s waitlist, optionally
31562
+ saying what you would use the product for. The application is recorded as
31563
+ `pending` until OpusDNS decides on it. One application per organization per
31564
+ product: a second apply is refused, and a rejection is reconsidered by OpusDNS
31565
+ rather than by applying again.'
31566
+ operationId: apply_for_product_waitlist_v1_organizations_product_waitlist__product__apply_post
31567
+ parameters:
31568
+ - in: path
31569
+ name: product
31570
+ required: true
31571
+ schema:
31572
+ $ref: '#/components/schemas/WaitlistProduct'
31573
+ - $ref: '#/components/parameters/DatetimeFormatHeader'
31574
+ requestBody:
31575
+ content:
31576
+ application/json:
31577
+ schema:
31578
+ anyOf:
31579
+ - $ref: '#/components/schemas/WaitlistApplyRequest'
31580
+ - type: 'null'
31581
+ title: Body
31582
+ responses:
31583
+ '200':
31584
+ content:
31585
+ application/json:
31586
+ schema:
31587
+ $ref: '#/components/schemas/WaitlistEntryResponse'
31588
+ description: Successful Response
31589
+ '401':
31590
+ content:
31591
+ application/problem+json:
31592
+ example:
31593
+ code: ERROR_AUTHENTICATION
31594
+ detail: Additional error context.
31595
+ status: 401
31596
+ title: Authentication Error
31597
+ type: authentication
31598
+ schema:
31599
+ $ref: '#/components/schemas/Problem'
31600
+ description: Unauthorized
31601
+ '403':
31602
+ content:
31603
+ application/problem+json:
31604
+ example:
31605
+ code: ERROR_PERMISSION_DENIED
31606
+ detail: Insufficient permissions to perform this action
31607
+ status: 403
31608
+ title: Permission Denied
31609
+ type: permission-denied
31610
+ schema:
31611
+ $ref: '#/components/schemas/Problem'
31612
+ description: Forbidden
31613
+ '404':
31614
+ content:
31615
+ application/problem+json:
31616
+ example:
31617
+ code: ERROR_WAITLIST_NOT_INVITED
31618
+ detail: No waitlist is available for ai_concierge
31619
+ product: ai_concierge
31620
+ status: 404
31621
+ title: Waitlist Error
31622
+ type: waitlist-not-invited
31623
+ schema:
31624
+ $ref: '#/components/schemas/Problem'
31625
+ description: Not Found
31626
+ '409':
31627
+ content:
31628
+ application/problem+json:
31629
+ examples:
31630
+ Waitlist Error:
31631
+ value:
31632
+ code: ERROR_WAITLIST_ENTRY_REJECTED
31633
+ detail: This organization's application for ai_concierge was rejected
31634
+ product: ai_concierge
31635
+ status: 409
31636
+ title: Waitlist Error
31637
+ type: waitlist-entry-rejected
31638
+ schema:
31639
+ $ref: '#/components/schemas/Problem'
31640
+ description: Conflict
31641
+ '422':
31642
+ content:
31643
+ application/problem+json:
31644
+ schema:
31645
+ $ref: '#/components/schemas/HTTPValidationError'
31646
+ description: Validation Error
31647
+ security:
31648
+ - OAuth2PasswordBearer: []
31649
+ summary: Apply for a product waitlist
31650
+ tags:
31651
+ - organization
31652
+ - product_waitlist
31373
31653
  /v1/organizations/role-permissions:
31374
31654
  get:
31375
31655
  description: Retrieves the catalog of `resource:scope` permissions a custom
@@ -35886,6 +36166,90 @@ tags:
35886
36166
  '
35887
36167
  name: organization
35888
36168
  x-displayName: Organizations
36169
+ - description: 'Endpoints for products that are not generally available yet and are
36170
+ reached through a waitlist.
36171
+
36172
+
36173
+ A waitlisted product is invitation-only: OpusDNS invites an organization, the
36174
+ organization applies, and OpusDNS decides. Until your organization is invited,
36175
+ the product does not exist as far as this API is concerned - it is left out of
36176
+ the listing, and applying for it answers `404`. Once your organization has applied,
36177
+ the product stays in its listing whatever happens to the invite afterwards.
36178
+
36179
+
36180
+ ### Endpoints
36181
+
36182
+
36183
+ | Method | Path | Description |
36184
+
36185
+ |--------|------|-------------|
36186
+
36187
+ | `GET` | `/v1/organizations/product-waitlist` | The waitlisted products your
36188
+ organization may see, and where it stands on each |
36189
+
36190
+ | `POST` | `/v1/organizations/product-waitlist/{product}/apply` | Apply your organization
36191
+ to one product''s waitlist |
36192
+
36193
+
36194
+ Both routes act on the organization the request is authenticated for; neither
36195
+ takes an organization in the path.
36196
+
36197
+
36198
+ ### Product state
36199
+
36200
+
36201
+ Each entry in the listing describes one product and your organization''s standing
36202
+ with it:
36203
+
36204
+
36205
+ | Field | Description |
36206
+
36207
+ |-------|-------------|
36208
+
36209
+ | `product` | The product key, used as `{product}` in the apply path |
36210
+
36211
+ | `display_name` | Human-readable product name |
36212
+
36213
+ | `description` | What the product does |
36214
+
36215
+ | `status` | `pending`, `granted` or `rejected`, or `null` while your organization
36216
+ has not applied |
36217
+
36218
+ | `applied_on` | When your organization applied, or `null` |
36219
+
36220
+ | `decided_on` | When OpusDNS decided, or `null` |
36221
+
36222
+ | `can_apply` | Whether an apply would be accepted right now, from this caller:
36223
+ it also takes the `organization:write` the apply route requires |
36224
+
36225
+
36226
+ ### Applying
36227
+
36228
+
36229
+ `POST /v1/organizations/product-waitlist/{product}/apply` records the application
36230
+ as `pending`, together with the applying user. It requires a user token: an API-key
36231
+ token has no user to record.
36232
+
36233
+
36234
+ The body is optional. Send `{"note": "..."}` to say what your organization would
36235
+ use the product for - it is the one thing OpusDNS has to go on when deciding,
36236
+ so it is worth filling in. A note is trimmed and may be up to 1000 characters;
36237
+ a blank or whitespace-only one is rejected rather than stored. Posting no body
36238
+ at all applies without a note.
36239
+
36240
+
36241
+ One application per organization per product. A second apply answers `409`, whatever
36242
+ state the first one reached - a rejection is reconsidered by OpusDNS approving
36243
+ it after all, not by applying again. `can_apply` in the listing tells you in advance
36244
+ which applies would be accepted.
36245
+
36246
+
36247
+ Being granted a product means every user of your organization gains access to
36248
+ it, including users created afterwards.
36249
+
36250
+ '
36251
+ name: product_waitlist
36252
+ x-displayName: Product waitlist
35889
36253
  - description: 'Endpoints for retrieving TLD specifications.
35890
36254
 
35891
36255
  '
@@ -36063,6 +36427,7 @@ x-tagGroups:
36063
36427
  - authentication
36064
36428
  - user
36065
36429
  - organization
36430
+ - product_waitlist
36066
36431
  - usage
36067
36432
  - name: Domains
36068
36433
  tags:
package/src/schema.d.ts CHANGED
@@ -2204,6 +2204,46 @@ export interface paths {
2204
2204
  patch: operations["update_ip_restriction_v1_organizations_ip_restrictions__ip_restriction_id__patch"];
2205
2205
  trace?: never;
2206
2206
  };
2207
+ "/v1/organizations/product-waitlist": {
2208
+ parameters: {
2209
+ query?: never;
2210
+ header?: never;
2211
+ path?: never;
2212
+ cookie?: never;
2213
+ };
2214
+ /**
2215
+ * List product waitlists
2216
+ * @description Lists the waitlisted products your organization has been invited to, or has already applied for, with where your organization stands on each. Any other product is omitted entirely.
2217
+ */
2218
+ get: operations["list_product_waitlists_v1_organizations_product_waitlist_get"];
2219
+ put?: never;
2220
+ post?: never;
2221
+ delete?: never;
2222
+ options?: never;
2223
+ head?: never;
2224
+ patch?: never;
2225
+ trace?: never;
2226
+ };
2227
+ "/v1/organizations/product-waitlist/{product}/apply": {
2228
+ parameters: {
2229
+ query?: never;
2230
+ header?: never;
2231
+ path?: never;
2232
+ cookie?: never;
2233
+ };
2234
+ get?: never;
2235
+ put?: never;
2236
+ /**
2237
+ * Apply for a product waitlist
2238
+ * @description Applies your organization to a product's waitlist, optionally saying what you would use the product for. The application is recorded as `pending` until OpusDNS decides on it. One application per organization per product: a second apply is refused, and a rejection is reconsidered by OpusDNS rather than by applying again.
2239
+ */
2240
+ post: operations["apply_for_product_waitlist_v1_organizations_product_waitlist__product__apply_post"];
2241
+ delete?: never;
2242
+ options?: never;
2243
+ head?: never;
2244
+ patch?: never;
2245
+ trace?: never;
2246
+ };
2207
2247
  "/v1/organizations/role-permissions": {
2208
2248
  parameters: {
2209
2249
  query?: never;
@@ -6732,7 +6772,7 @@ export interface components {
6732
6772
  * DomainIncludeField
6733
6773
  * @enum {string}
6734
6774
  */
6735
- DomainIncludeField: "tags" | "renewal_price" | "registrar_credential";
6775
+ DomainIncludeField: "tags" | "renewal_price" | "connected_account";
6736
6776
  /** DomainLifecycleBase */
6737
6777
  DomainLifecycleBase: {
6738
6778
  /**
@@ -6821,7 +6861,7 @@ export interface components {
6821
6861
  * implement every member.
6822
6862
  * @enum {string}
6823
6863
  */
6824
- DomainListIncludeField: "tags" | "registrar_credential";
6864
+ DomainListIncludeField: "tags" | "connected_account";
6825
6865
  /** DomainNameParts */
6826
6866
  DomainNameParts: {
6827
6867
  /**
@@ -6909,6 +6949,11 @@ export interface components {
6909
6949
  * @example registrar_credential_01h45ytscbebyvny4gc8cr8ma2
6910
6950
  */
6911
6951
  registrar_credential_id: TypeId<"registrar_credential">;
6952
+ /**
6953
+ * @description Kind of connected account. `ras`: a registrar credential managed under `/v1/connect/registrars`. (enum property replaced by openapi-typescript)
6954
+ * @enum {string}
6955
+ */
6956
+ type: "ras";
6912
6957
  };
6913
6958
  /** DomainRenewRequest */
6914
6959
  DomainRenewRequest: {
@@ -6994,6 +7039,11 @@ export interface components {
6994
7039
  * @description When the domain was deleted
6995
7040
  */
6996
7041
  canceled_on?: Date | null;
7042
+ /**
7043
+ * Connected Account
7044
+ * @description The connected account this domain is synced from. Null unless `include=connected_account` is requested, and null even then for natively registered domains, for domains on operator-managed registry accounts, and when the connected account was deleted.
7045
+ */
7046
+ connected_account?: components["schemas"]["DomainRegistrarCredentialResponse"] | null;
6997
7047
  /**
6998
7048
  * Contacts
6999
7049
  * @description The contacts of the domain
@@ -7062,8 +7112,6 @@ export interface components {
7062
7112
  * @description When the domain was registered
7063
7113
  */
7064
7114
  registered_on?: Date | null;
7065
- /** @description The connected registrar credential this domain is synced from. Null unless `include=registrar_credential` is requested, and null even then for natively registered domains, for domains on operator-managed registry accounts, and when the credential was deleted. */
7066
- registrar_credential?: components["schemas"]["DomainRegistrarCredentialResponse"] | null;
7067
7115
  /**
7068
7116
  * Registry Account Id
7069
7117
  * Format: typeid
@@ -13880,6 +13928,99 @@ export interface components {
13880
13928
  /** Unique */
13881
13929
  unique: number;
13882
13930
  };
13931
+ /**
13932
+ * WaitlistApplyRequest
13933
+ * @description What an organization says when applying for a product.
13934
+ */
13935
+ WaitlistApplyRequest: {
13936
+ /**
13937
+ * Note
13938
+ * @description What your organization would use the product for
13939
+ * @example We manage 12k domains for agency clients and triage renewals by hand.
13940
+ */
13941
+ note?: string | null;
13942
+ };
13943
+ /**
13944
+ * WaitlistEntryResponse
13945
+ * @description An organization's own waitlist application.
13946
+ */
13947
+ WaitlistEntryResponse: {
13948
+ /**
13949
+ * Applied On
13950
+ * Format: date-time
13951
+ * @description When the organization applied
13952
+ */
13953
+ applied_on: Date;
13954
+ /**
13955
+ * Decided On
13956
+ * @description When the application was decided; null while it is pending
13957
+ */
13958
+ decided_on?: Date | null;
13959
+ /** @description Product the application is for */
13960
+ product: components["schemas"]["WaitlistProduct"];
13961
+ /** @description Where the application stands */
13962
+ status: components["schemas"]["WaitlistEntryStatus"];
13963
+ };
13964
+ /**
13965
+ * WaitlistEntryStatus
13966
+ * @enum {string}
13967
+ */
13968
+ WaitlistEntryStatus: "pending" | "granted" | "rejected";
13969
+ /**
13970
+ * WaitlistProduct
13971
+ * @description A product that is not generally available and is reached through the waitlist.
13972
+ *
13973
+ * The member value is the wire form used in URLs and API bodies; the column persists the
13974
+ * member NAME (StringEnum binds `value.name`), so renaming a member is a data migration.
13975
+ * @enum {string}
13976
+ */
13977
+ WaitlistProduct: "ai_concierge";
13978
+ /**
13979
+ * WaitlistProductListResponse
13980
+ * @description The waitlisted products an organization may see.
13981
+ */
13982
+ WaitlistProductListResponse: {
13983
+ /**
13984
+ * Products
13985
+ * @description Waitlisted products this organization may see
13986
+ */
13987
+ products?: components["schemas"]["WaitlistProductState"][];
13988
+ };
13989
+ /**
13990
+ * WaitlistProductState
13991
+ * @description A waitlisted product, and where the organization stands with it.
13992
+ */
13993
+ WaitlistProductState: {
13994
+ /**
13995
+ * Applied On
13996
+ * @description When the organization applied, if it has
13997
+ */
13998
+ applied_on?: Date | null;
13999
+ /**
14000
+ * Can Apply
14001
+ * @description Whether an apply would be accepted right now
14002
+ */
14003
+ can_apply: boolean;
14004
+ /**
14005
+ * Decided On
14006
+ * @description When the application was decided, if it was
14007
+ */
14008
+ decided_on?: Date | null;
14009
+ /**
14010
+ * Description
14011
+ * @description What the product does
14012
+ */
14013
+ description: string;
14014
+ /**
14015
+ * Display Name
14016
+ * @description Human-readable product name
14017
+ */
14018
+ display_name: string;
14019
+ /** @description Product key, used in the apply path */
14020
+ product: components["schemas"]["WaitlistProduct"];
14021
+ /** @description Where the organization's application stands; null until it applies */
14022
+ status?: components["schemas"]["WaitlistEntryStatus"] | null;
14023
+ };
13883
14024
  /**
13884
14025
  * WhitelabelBaseCreate
13885
14026
  * @description Create the base tier: served on a managed subdomain composed from `label`.
@@ -20640,11 +20781,11 @@ export interface operations {
20640
20781
  transferred_before?: Date | null;
20641
20782
  /** @description Filter domains by registry status. Can be specified multiple times (union of all provided values). */
20642
20783
  registry_statuses?: string[] | null;
20643
- /** @description Filter domains held at an external registrar by the connected registrar credential they were synced from. Can be specified multiple times (union of all provided values); combined with `registrar`, both must match. Matches exactly the domains whose `registrar_credential` field carries the id, so domains OpusDNS sponsors never match. */
20784
+ /** @description Filter domains held at an external registrar by the connected registrar credential they were synced from. Can be specified multiple times (union of all provided values); combined with `registrar`, both must match. Matches exactly the domains whose `connected_account` field carries the id, so domains OpusDNS sponsors never match. */
20644
20785
  registrar_credential_id?: TypeId<"registrar_credential">[] | null;
20645
- /** @description Filter domains held at an external registrar by that registrar. Can be specified multiple times (union of all provided values); combined with `registrar_credential_id`, both must match. Matches exactly the domains whose `registrar_credential` field carries the registrar, so domains OpusDNS sponsors never match. */
20786
+ /** @description Filter domains held at an external registrar by that registrar. Can be specified multiple times (union of all provided values); combined with `registrar_credential_id`, both must match. Matches exactly the domains whose `connected_account` field carries the registrar, so domains OpusDNS sponsors never match. */
20646
20787
  registrar?: components["schemas"]["Registrar"][] | null;
20647
- /** @description Extra data to include in each result. `tags` populates the `tags` (user tags) and `status_tags` fields, which are otherwise null; filtering by `tag_ids` or `status_tags` alone does not populate them. `registrar_credential` populates the `registrar_credential` field for domains held at an external registrar. */
20788
+ /** @description Extra data to include in each result. `tags` populates the `tags` (user tags) and `status_tags` fields, which are otherwise null; filtering by `tag_ids` or `status_tags` alone does not populate them. `connected_account` populates the `connected_account` field for domains held at an external registrar. */
20648
20789
  include?: components["schemas"]["DomainListIncludeField"][] | null;
20649
20790
  };
20650
20791
  header?: {
@@ -22114,7 +22255,7 @@ export interface operations {
22114
22255
  get_domain_v1_domains__domain_reference__get: {
22115
22256
  parameters: {
22116
22257
  query?: {
22117
- /** @description Extra data to include in the response. `tags` populates the `tags` and `status_tags` fields, which are otherwise null. `renewal_price` resolves the domain's renewal price. `registrar_credential` populates the `registrar_credential` field for domains held at an external registrar. */
22258
+ /** @description Extra data to include in the response. `tags` populates the `tags` and `status_tags` fields, which are otherwise null. `renewal_price` resolves the domain's renewal price. `connected_account` populates the `connected_account` field for domains held at an external registrar. */
22118
22259
  include?: components["schemas"]["DomainIncludeField"][] | null;
22119
22260
  };
22120
22261
  header?: {
@@ -25672,6 +25813,172 @@ export interface operations {
25672
25813
  };
25673
25814
  };
25674
25815
  };
25816
+ list_product_waitlists_v1_organizations_product_waitlist_get: {
25817
+ parameters: {
25818
+ query?: never;
25819
+ header?: {
25820
+ /**
25821
+ * @description Accepted for backwards compatibility; has no effect. Response datetimes are always normalized to UTC and serialized as RFC 3339 with a `Z` suffix, whether or not this header is sent.
25822
+ * @example rfc3339
25823
+ */
25824
+ "X-Datetime-Format"?: components["parameters"]["DatetimeFormatHeader"];
25825
+ };
25826
+ path?: never;
25827
+ cookie?: never;
25828
+ };
25829
+ requestBody?: never;
25830
+ responses: {
25831
+ /** @description Successful Response */
25832
+ 200: {
25833
+ headers: {
25834
+ [name: string]: unknown;
25835
+ };
25836
+ content: {
25837
+ "application/json": components["schemas"]["WaitlistProductListResponse"];
25838
+ };
25839
+ };
25840
+ /** @description Unauthorized */
25841
+ 401: {
25842
+ headers: {
25843
+ [name: string]: unknown;
25844
+ };
25845
+ content: {
25846
+ /** @example {
25847
+ * "code": "ERROR_AUTHENTICATION",
25848
+ * "detail": "Additional error context.",
25849
+ * "status": 401,
25850
+ * "title": "Authentication Error",
25851
+ * "type": "authentication"
25852
+ * } */
25853
+ "application/problem+json": components["schemas"]["Problem"];
25854
+ };
25855
+ };
25856
+ /** @description Forbidden */
25857
+ 403: {
25858
+ headers: {
25859
+ [name: string]: unknown;
25860
+ };
25861
+ content: {
25862
+ /** @example {
25863
+ * "code": "ERROR_PERMISSION_DENIED",
25864
+ * "detail": "Insufficient permissions to perform this action",
25865
+ * "status": 403,
25866
+ * "title": "Permission Denied",
25867
+ * "type": "permission-denied"
25868
+ * } */
25869
+ "application/problem+json": components["schemas"]["Problem"];
25870
+ };
25871
+ };
25872
+ /** @description Validation Error */
25873
+ 422: {
25874
+ headers: {
25875
+ [name: string]: unknown;
25876
+ };
25877
+ content: {
25878
+ "application/problem+json": components["schemas"]["HTTPValidationError"];
25879
+ };
25880
+ };
25881
+ };
25882
+ };
25883
+ apply_for_product_waitlist_v1_organizations_product_waitlist__product__apply_post: {
25884
+ parameters: {
25885
+ query?: never;
25886
+ header?: {
25887
+ /**
25888
+ * @description Accepted for backwards compatibility; has no effect. Response datetimes are always normalized to UTC and serialized as RFC 3339 with a `Z` suffix, whether or not this header is sent.
25889
+ * @example rfc3339
25890
+ */
25891
+ "X-Datetime-Format"?: components["parameters"]["DatetimeFormatHeader"];
25892
+ };
25893
+ path: {
25894
+ product: components["schemas"]["WaitlistProduct"];
25895
+ };
25896
+ cookie?: never;
25897
+ };
25898
+ requestBody?: {
25899
+ content: {
25900
+ "application/json": components["schemas"]["WaitlistApplyRequest"] | null;
25901
+ };
25902
+ };
25903
+ responses: {
25904
+ /** @description Successful Response */
25905
+ 200: {
25906
+ headers: {
25907
+ [name: string]: unknown;
25908
+ };
25909
+ content: {
25910
+ "application/json": components["schemas"]["WaitlistEntryResponse"];
25911
+ };
25912
+ };
25913
+ /** @description Unauthorized */
25914
+ 401: {
25915
+ headers: {
25916
+ [name: string]: unknown;
25917
+ };
25918
+ content: {
25919
+ /** @example {
25920
+ * "code": "ERROR_AUTHENTICATION",
25921
+ * "detail": "Additional error context.",
25922
+ * "status": 401,
25923
+ * "title": "Authentication Error",
25924
+ * "type": "authentication"
25925
+ * } */
25926
+ "application/problem+json": components["schemas"]["Problem"];
25927
+ };
25928
+ };
25929
+ /** @description Forbidden */
25930
+ 403: {
25931
+ headers: {
25932
+ [name: string]: unknown;
25933
+ };
25934
+ content: {
25935
+ /** @example {
25936
+ * "code": "ERROR_PERMISSION_DENIED",
25937
+ * "detail": "Insufficient permissions to perform this action",
25938
+ * "status": 403,
25939
+ * "title": "Permission Denied",
25940
+ * "type": "permission-denied"
25941
+ * } */
25942
+ "application/problem+json": components["schemas"]["Problem"];
25943
+ };
25944
+ };
25945
+ /** @description Not Found */
25946
+ 404: {
25947
+ headers: {
25948
+ [name: string]: unknown;
25949
+ };
25950
+ content: {
25951
+ /** @example {
25952
+ * "code": "ERROR_WAITLIST_NOT_INVITED",
25953
+ * "detail": "No waitlist is available for ai_concierge",
25954
+ * "product": "ai_concierge",
25955
+ * "status": 404,
25956
+ * "title": "Waitlist Error",
25957
+ * "type": "waitlist-not-invited"
25958
+ * } */
25959
+ "application/problem+json": components["schemas"]["Problem"];
25960
+ };
25961
+ };
25962
+ /** @description Conflict */
25963
+ 409: {
25964
+ headers: {
25965
+ [name: string]: unknown;
25966
+ };
25967
+ content: {
25968
+ "application/problem+json": components["schemas"]["Problem"];
25969
+ };
25970
+ };
25971
+ /** @description Validation Error */
25972
+ 422: {
25973
+ headers: {
25974
+ [name: string]: unknown;
25975
+ };
25976
+ content: {
25977
+ "application/problem+json": components["schemas"]["HTTPValidationError"];
25978
+ };
25979
+ };
25980
+ };
25981
+ };
25675
25982
  list_role_permissions_v1_organizations_role_permissions_get: {
25676
25983
  parameters: {
25677
25984
  query?: never;