Skip to content

Commit 8fb0970

Browse files
authored
Merge branch 'main' into deprecation-getDomainPremiumPrice
2 parents 58564db + 064a48f commit 8fb0970

File tree

21 files changed

+692
-263
lines changed

21 files changed

+692
-263
lines changed

.github/scripts/validate-fixtures-json.js

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,35 @@ const path = require('path');
1010
*/
1111
function extractJsonFromHttpFile(filePath) {
1212
const content = fs.readFileSync(filePath, 'utf8');
13-
13+
1414
// Split by double newline to separate headers from body
1515
const parts = content.split(/\n\s*\n/, 2);
16-
17-
if (parts.length < 2) {
16+
17+
if (parts.length < 2)
1818
return null;
19-
}
20-
19+
20+
2121
const body = parts[1].trim();
22-
if (!body) {
22+
if (!body)
2323
return null;
24-
}
25-
24+
25+
2626
// Check if content-type indicates JSON
2727
const headers = parts[0];
28-
const isJsonContentType = headers.includes('Content-Type: application/json') ||
28+
const isJsonContentType = headers.includes('Content-Type: application/json') ||
2929
headers.includes('content-type: application/json');
30-
30+
3131
// If no explicit JSON content-type, try to parse as JSON anyway
3232
// (some files might have JSON without proper content-type header)
33-
if (!isJsonContentType) {
33+
if (!isJsonContentType)
3434
try {
3535
JSON.parse(body);
3636
return body;
37-
} catch (e) {
37+
} catch {
3838
return null;
3939
}
40-
}
41-
40+
41+
4242
return body;
4343
}
4444

@@ -49,22 +49,22 @@ function extractJsonFromHttpFile(filePath) {
4949
*/
5050
function findHttpFiles(dir) {
5151
const files = [];
52-
52+
5353
function traverse(currentDir) {
5454
const items = fs.readdirSync(currentDir);
55-
55+
5656
for (const item of items) {
5757
const fullPath = path.join(currentDir, item);
5858
const stat = fs.statSync(fullPath);
59-
60-
if (stat.isDirectory()) {
59+
60+
if (stat.isDirectory())
6161
traverse(fullPath);
62-
} else if (item.endsWith('.http')) {
62+
else if (item.endsWith('.http'))
6363
files.push(fullPath);
64-
}
64+
6565
}
6666
}
67-
67+
6868
traverse(dir);
6969
return files;
7070
}
@@ -77,21 +77,21 @@ function validateJsonInFixtures(fixturesDir) {
7777
const errors = [];
7878
let filesChecked = 0;
7979
let jsonFilesFound = 0;
80-
80+
8181
console.log(`🔍 Scanning for HTTP fixtures in: ${fixturesDir}`);
82-
82+
8383
const httpFiles = findHttpFiles(fixturesDir);
84-
84+
8585
for (const filePath of httpFiles) {
8686
filesChecked++;
8787
const jsonContent = extractJsonFromHttpFile(filePath);
88-
89-
if (!jsonContent) {
88+
89+
if (!jsonContent)
9090
continue;
91-
}
92-
91+
92+
9393
jsonFilesFound++;
94-
94+
9595
try {
9696
JSON.parse(jsonContent);
9797
console.log(`✅ ${filePath}`);
@@ -101,12 +101,12 @@ function validateJsonInFixtures(fixturesDir) {
101101
errors.push(errorMsg);
102102
}
103103
}
104-
104+
105105
console.log('\n📊 Summary:');
106106
console.log(`Files checked: ${filesChecked}`);
107107
console.log(`JSON files found: ${jsonFilesFound}`);
108108
console.log(`Validation errors: ${errors.length}`);
109-
109+
110110
if (errors.length > 0) {
111111
console.log('\n❌ Errors found:');
112112
errors.forEach(error => console.log(` ${error}`));

.github/workflows/ci.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,22 @@ concurrency:
1212
cancel-in-progress: true
1313

1414
jobs:
15+
lint:
16+
name: Lint JavaScript
17+
runs-on: ubuntu-latest
18+
timeout-minutes: 10
19+
steps:
20+
- uses: actions/checkout@v6
21+
- name: Install Node
22+
uses: actions/setup-node@v6
23+
with:
24+
node-version-file: '.tool-versions'
25+
cache: yarn
26+
- name: Install JS Deps
27+
run: yarn install --frozen-lockfile
28+
- name: Run ESLint
29+
run: yarn lint
30+
1531
lint_openapi:
1632
name: Lint OpenAPI Spec
1733
runs-on: ubuntu-latest

DEPRECATIONS.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,46 @@ The `to` field in Email Forward schema has been renamed to `destination_email` f
8080
- Python: Complete
8181
- Rust: Complete
8282

83+
### 2023-05-01 - getWhoisPrivacy endpoint
84+
85+
The endpoint `GET /:account/registrar/domains/:domain/whois_privacy` was used to retrieve the WHOIS privacy status for a domain. The WHOIS privacy state can now be retrieved through the `getDomain` endpoint.
86+
87+
**Removal Date:** N/A
88+
89+
**Replacement:** Use `getDomain` endpoint to retrieve domain WHOIS privacy state.
90+
91+
**Client Status:**
92+
93+
- Ruby: Not started
94+
- Go: Not started
95+
- Elixir: Not started
96+
- Node.js: Not started
97+
- Java: Not started
98+
- C#: Not started
99+
- PHP: Not started
100+
- Python: Not started
101+
- Rust: Not started
102+
103+
### 2023-05-01 - renewWhoisPrivacy endpoint
104+
105+
The endpoint `POST /:account/registrar/domains/:domain/whois_privacy/renewals` was used to renew the WHOIS privacy service for a domain. WHOIS privacy no longer needs to be renewed as it stays enabled unless explicitly disabled.
106+
107+
**Removal Date:** N/A
108+
109+
**Replacement:** None. WHOIS privacy no longer requires renewal.
110+
111+
**Client Status:**
112+
113+
- Ruby: Not started
114+
- Go: Not started
115+
- Elixir: Not started
116+
- Node.js: Not started
117+
- Java: Not started
118+
- C#: Not started
119+
- PHP: Not started
120+
- Python: Not started
121+
- Rust: Not started
122+
83123
### 2025-11-13 - Domain push `new_account_email` field
84124

85125
The `new_account_email` field in Domain Push request has been deprecated in favor of `new_account_identifier`, which provides more flexibility in identifying the target account.

content/use-cases/issue-certificates.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ When your customer registers a domain through your service, or delegates it for
4949

5050
[lib/app/dnsimple.rb](https://github.com/dnsimple/dnsimple-api-examples/blob/main/ruby/use_cases/issue_certificates/lib/app/dnsimple.rb#L16)
5151

52-
> [!WARNING]
52+
> [!WARNING] Deprecated since 01 June 2022
5353
> The `contact_id` field in Certificate schema has been deprecated. It is no longer a required field for certificate operations.
5454
5555
```ruby

content/v2/certificates.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ excerpt: This page documents the DNSimple certificates API v2.
1111

1212
## Certificate attributes {#certificate-attributes}
1313

14-
> [!WARNING]
14+
> [!WARNING] Deprecated since 01 June 2022
1515
> The `contact_id` field in Certificate schema has been deprecated. It is no longer a required field for certificate operations.
1616
1717
Please refer to the definition of the `Certificate` data type in [our OpenAPI documentation](/v2/openapi.yml).

content/v2/domains/email-forwards.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Name | Type | Description
3131

3232
For general information about sorting, please refer to the [main guide](/v2/#sorting).
3333

34-
> [!WARNING]
34+
> [!WARNING] Deprecated since 25 January 2021
3535
> The `from` and `to` fields in Email Forward schema have been deprecated. The `from` field has been renamed to `alias_email` and the `to` field has been renamed to `destination_email` for clarity. Use `alias_email` and `destination_email` instead.
3636
3737
Name | Description

content/v2/domains/pushes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Initiate a push from the source account `1010` for the `example.com` domain:
3333

3434
### Input
3535

36-
> [!WARNING]
36+
> [!WARNING] Deprecated since 13 November 2025
3737
> The `new_account_email` field in Domain Push request has been deprecated in favor of `new_account_identifier`, which provides more flexibility in identifying the target account. Use `new_account_identifier` instead.
3838
3939
Name | Type | Description

content/v2/openapi.yml

Lines changed: 10 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,27 +1433,18 @@ paths:
14331433
summary: Disable domain auto-renewal
14341434
'/{account}/registrar/domains/{domain}/whois_privacy':
14351435
get:
1436-
description: Gets the whois privacy status for an existing domain.
1436+
deprecated: true
1437+
description: 'This endpoint has been deprecated and removed. Use getDomain instead.'
14371438
parameters:
14381439
- $ref: '#/components/parameters/Account'
14391440
- $ref: '#/components/parameters/Domain'
14401441
operationId: getWhoisPrivacy
14411442
tags:
14421443
- registrar privacy
14431444
responses:
1444-
'200':
1445-
description: Successfully retrieved whois privacy details.
1446-
content:
1447-
application/json:
1448-
schema:
1449-
type: object
1450-
required: [data]
1451-
properties:
1452-
data:
1453-
$ref: '#/components/schemas/WhoisPrivacy'
1454-
'404':
1455-
$ref: '#/components/responses/404'
1456-
summary: WHOIS privacy status
1445+
'410':
1446+
description: This endpoint has been removed.
1447+
summary: WHOIS privacy status (deprecated)
14571448
put:
14581449
description: |-
14591450
Enables the WHOIS privacy for the domain.
@@ -1513,32 +1504,18 @@ paths:
15131504
summary: Disable WHOIS privacy
15141505
'/{account}/registrar/domains/{domain}/whois_privacy/renewals':
15151506
post:
1516-
description: |-
1517-
Renews the WHOIS privacy for the domain.
1518-
1519-
Note that if the WHOIS privacy was never purchased for the domain or if there is another renewal order in progress, renewing WHOIS privacy will return an error.
1507+
deprecated: true
1508+
description: 'This endpoint has been deprecated and removed. WHOIS privacy no longer requires renewal.'
15201509
parameters:
15211510
- $ref: '#/components/parameters/Account'
15221511
- $ref: '#/components/parameters/Domain'
15231512
operationId: renewWhoisPrivacy
15241513
tags:
15251514
- registrar privacy
15261515
responses:
1527-
'201':
1528-
description: Successfully renew whois privacy.
1529-
content:
1530-
application/json:
1531-
schema:
1532-
type: object
1533-
required: [data]
1534-
properties:
1535-
data:
1536-
$ref: '#/components/schemas/WhoisPrivacyRenewal'
1537-
'400':
1538-
$ref: '#/components/responses/400'
1539-
'404':
1540-
$ref: '#/components/responses/404'
1541-
summary: Renew WHOIS privacy
1516+
'410':
1517+
description: This endpoint has been removed.
1518+
summary: Renew WHOIS privacy (deprecated)
15421519
'/{account}/secondary_dns/primaries':
15431520
get:
15441521
summary: List primary servers
@@ -6138,43 +6115,6 @@ components:
61386115
enabled: true
61396116
created_at: '2016-02-13T14:34:50Z'
61406117
updated_at: '2016-02-13T14:34:52Z'
6141-
WhoisPrivacyRenewal:
6142-
type: object
6143-
required:
6144-
- id
6145-
- domain_id
6146-
- whois_privacy_id
6147-
- state
6148-
- enabled
6149-
- expires_on
6150-
- created_at
6151-
- updated_at
6152-
properties:
6153-
id:
6154-
type: integer
6155-
domain_id:
6156-
type: integer
6157-
whois_privacy_id:
6158-
type: integer
6159-
state:
6160-
type: string
6161-
enabled:
6162-
type: boolean
6163-
expires_on:
6164-
$ref: '#/components/schemas/Date'
6165-
created_at:
6166-
$ref: '#/components/schemas/DateTimeCreatedAt'
6167-
updated_at:
6168-
$ref: '#/components/schemas/DateTimeUpdatedAt'
6169-
example:
6170-
id: 1
6171-
domain_id: 100
6172-
whois_privacy_id: 999
6173-
state: new
6174-
enabled: true
6175-
expires_on: '2020-01-10'
6176-
created_at: '2019-01-10T12:12:48Z'
6177-
updated_at: '2019-01-10T12:12:48Z'
61786118
Zone:
61796119
type: object
61806120
description: Represents a DNS zone.

content/v2/registrar.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Responds with [HTTP 401](/v2/#unauthorized) in case of authentication issues.
5757

5858
## Check domain premium price {#getDomainPremiumPrice}
5959

60-
> [!WARNING]
60+
> [!WARNING] Deprecated since 18 May 2021
6161
> This endpoint has been deprecated and removed. Use [getDomainPrices](#getDomainPrices) instead.
6262
6363
## Retrieve domain prices {#getDomainPrices}

0 commit comments

Comments
 (0)