dnsimple 10.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +5 -7
- data/.github/workflows/ci.yml +3 -3
- data/.github/workflows/release.yml +2 -2
- data/.github/workflows/sync-test-fixtures.yml +55 -0
- data/.markdownlint.yaml +15 -1
- data/.rubocop.yml +1 -1
- data/.rubocop_dnsimple.yml +15 -31
- data/CHANGELOG.md +9 -0
- data/Gemfile +7 -7
- data/lib/dnsimple/client/clients.rb +29 -31
- data/lib/dnsimple/client/domains_email_forwards.rb +1 -1
- data/lib/dnsimple/client/zones_records.rb +33 -0
- data/lib/dnsimple/client.rb +5 -5
- data/lib/dnsimple/default.rb +7 -7
- data/lib/dnsimple/response.rb +3 -3
- data/lib/dnsimple/struct/charge.rb +1 -1
- data/lib/dnsimple/struct/email_forward.rb +0 -8
- data/lib/dnsimple/struct/zone_record_id.rb +12 -0
- data/lib/dnsimple/struct/zone_records_batch_change.rb +18 -0
- data/lib/dnsimple/struct.rb +42 -40
- data/lib/dnsimple/version.rb +1 -1
- data/lib/dnsimple.rb +5 -5
- data/spec/dnsimple/client/accounts_spec.rb +2 -2
- data/spec/dnsimple/client/billing_spec.rb +3 -3
- data/spec/dnsimple/client/certificates_spec.rb +11 -11
- data/spec/dnsimple/client/client_service_spec.rb +1 -1
- data/spec/dnsimple/client/contacts_spec.rb +6 -6
- data/spec/dnsimple/client/dns_analytics_spec.rb +9 -9
- data/spec/dnsimple/client/domains_delegation_signer_records_spec.rb +7 -7
- data/spec/dnsimple/client/domains_dnssec_spec.rb +4 -4
- data/spec/dnsimple/client/domains_email_forwards_spec.rb +8 -15
- data/spec/dnsimple/client/domains_pushes_spec.rb +5 -5
- data/spec/dnsimple/client/domains_spec.rb +6 -6
- data/spec/dnsimple/client/identity_spec.rb +2 -2
- data/spec/dnsimple/client/oauth_spec.rb +3 -3
- data/spec/dnsimple/client/registrar_auto_renewal_spec.rb +3 -3
- data/spec/dnsimple/client/registrar_delegation_spec.rb +1 -1
- data/spec/dnsimple/client/registrar_spec.rb +1 -1
- data/spec/dnsimple/client/registrar_transfer_lock_spec.rb +4 -4
- data/spec/dnsimple/client/registrar_whois_privacy_spec.rb +1 -1
- data/spec/dnsimple/client/services_domains_spec.rb +4 -4
- data/spec/dnsimple/client/services_spec.rb +1 -1
- data/spec/dnsimple/client/templates_domains_spec.rb +2 -2
- data/spec/dnsimple/client/templates_records_spec.rb +4 -4
- data/spec/dnsimple/client/templates_spec.rb +2 -2
- data/spec/dnsimple/client/tlds_spec.rb +5 -5
- data/spec/dnsimple/client/vanity_name_servers_spec.rb +1 -1
- data/spec/dnsimple/client/webhooks_spec.rb +5 -5
- data/spec/dnsimple/client/zones_distributions_spec.rb +3 -3
- data/spec/dnsimple/client/zones_records_spec.rb +102 -7
- data/spec/dnsimple/client/zones_spec.rb +6 -6
- data/spec/dnsimple/client_spec.rb +10 -10
- data/spec/dnsimple/extra_spec.rb +1 -1
- data/spec/dnsimple/options/base_spec.rb +5 -5
- data/spec/dnsimple/options/list_options_spec.rb +21 -21
- data/spec/fixtures.http/accounts/success-user.http +2 -1
- data/spec/fixtures.http/batchChangeZoneRecords/error_400_create_validation_failed.http +16 -0
- data/spec/fixtures.http/batchChangeZoneRecords/error_400_delete_validation_failed.http +15 -0
- data/spec/fixtures.http/batchChangeZoneRecords/error_400_update_validation_failed.http +15 -0
- data/spec/fixtures.http/batchChangeZoneRecords/success.http +16 -0
- data/spec/fixtures.http/checkRegistrantChange/error-contactnotfound.http +4 -4
- data/spec/fixtures.http/checkRegistrantChange/error-domainnotfound.http +4 -4
- data/spec/fixtures.http/checkRegistrantChange/success.http +5 -5
- data/spec/fixtures.http/createContact/error-validation-errors.http +18 -0
- data/spec/fixtures.http/createEmailForward/created.http +1 -2
- data/spec/fixtures.http/createRegistrantChange/success.http +5 -5
- data/spec/fixtures.http/createWebhook/created.http +16 -16
- data/spec/fixtures.http/deleteRegistrantChange/success.http +4 -4
- data/spec/fixtures.http/deleteRegistrantChange/success_async.http +14 -0
- data/spec/fixtures.http/dnsAnalytics/success.http +1 -1
- data/spec/fixtures.http/getDomainPrices/failure.http +18 -18
- data/spec/fixtures.http/getDomainPrices/success.http +21 -21
- data/spec/fixtures.http/getDomainRestore/success.http +15 -13
- data/spec/fixtures.http/getEmailForward/success.http +1 -2
- data/spec/fixtures.http/getRegistrantChange/success.http +5 -5
- data/spec/fixtures.http/getTld/success.http +1 -1
- data/spec/fixtures.http/getWebhook/success.http +16 -16
- data/spec/fixtures.http/listAccounts/success-user.http +1 -1
- data/spec/fixtures.http/listCharges/fail-400-bad-filter.http +0 -2
- data/spec/fixtures.http/listCharges/fail-403.http +0 -2
- data/spec/fixtures.http/listCharges/success.http +0 -2
- data/spec/fixtures.http/listEmailForwards/success.http +1 -1
- data/spec/fixtures.http/listRegistrantChanges/success.http +5 -5
- data/spec/fixtures.http/listTlds/success.http +1 -1
- data/spec/fixtures.http/listWebhooks/success.http +16 -16
- data/spec/fixtures.http/registerDomain/error-extended-attributes.http +18 -0
- data/spec/fixtures.http/restoreDomain/success.http +14 -12
- data/spec/fixtures.http/updateZoneNsRecords/success.http +16 -0
- data/spec/fixtures.http/whoami/success-account.http +1 -1
- data/spec/fixtures.http/whoami/success.http +1 -1
- data/spec/spec_helper.rb +4 -4
- data/spec/support/webmock.rb +1 -1
- metadata +14 -12
- data/.github/CODEOWNERS +0 -1
- data/.github/workflows/auto-merge.yml +0 -32
- data/lib/dnsimple/client/domains_collaborators.rb +0 -87
- data/spec/dnsimple/client/domains_collaborators_spec.rb +0 -164
- data/spec/fixtures.http/addCollaborator/invite-success.http +0 -20
- data/spec/fixtures.http/addCollaborator/success.http +0 -20
- data/spec/fixtures.http/listCollaborators/success.http +0 -20
- data/spec/fixtures.http/notfound-collaborator.http +0 -15
- data/spec/fixtures.http/removeCollaborator/success.http +0 -17
- /data/spec/fixtures.http/{notfound-delegationsignerrecord.http → notfound-delegationSignerRecord.http} +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "spec_helper"
|
4
4
|
|
5
5
|
describe Dnsimple::Client do
|
6
6
|
|
@@ -135,11 +135,11 @@ describe Dnsimple::Client do
|
|
135
135
|
it "performs a request" do
|
136
136
|
stub_request(:get, %r{/foo})
|
137
137
|
|
138
|
-
subject.request(:get,
|
138
|
+
subject.request(:get, "foo", {})
|
139
139
|
|
140
140
|
expect(WebMock).to have_requested(:get, "https://api.dnsimple.com/foo")
|
141
141
|
.with(basic_auth: %w[user pass],
|
142
|
-
headers: {
|
142
|
+
headers: { "Accept" => "application/json", "User-Agent" => Dnsimple::Default::USER_AGENT })
|
143
143
|
end
|
144
144
|
|
145
145
|
it "delegates to HTTParty" do
|
@@ -150,11 +150,11 @@ describe Dnsimple::Client do
|
|
150
150
|
"#{subject.base_url}foo", {
|
151
151
|
format: :json,
|
152
152
|
basic_auth: { username: "user", password: "pass" },
|
153
|
-
headers: {
|
153
|
+
headers: { "Accept" => "application/json", "User-Agent" => Dnsimple::Default::USER_AGENT },
|
154
154
|
}
|
155
155
|
)
|
156
156
|
|
157
|
-
subject.request(:get,
|
157
|
+
subject.request(:get, "foo")
|
158
158
|
end
|
159
159
|
|
160
160
|
it "properly extracts processes options and encodes data" do
|
@@ -165,12 +165,12 @@ describe Dnsimple::Client do
|
|
165
165
|
body: JSON.dump(something: "else"),
|
166
166
|
query: { foo: "bar" },
|
167
167
|
basic_auth: { username: "user", password: "pass" },
|
168
|
-
headers: {
|
168
|
+
headers: { "Accept" => "application/json", "Content-Type" => "application/json", "User-Agent" => Dnsimple::Default::USER_AGENT, "Custom" => "Header" },
|
169
169
|
}
|
170
170
|
)
|
171
171
|
|
172
172
|
expect {
|
173
|
-
subject.request(:put,
|
173
|
+
subject.request(:put, "foo", { something: "else" }, { query: { foo: "bar" }, headers: { "Custom" => "Header" } })
|
174
174
|
}.not_to raise_error
|
175
175
|
end
|
176
176
|
|
@@ -181,12 +181,12 @@ describe Dnsimple::Client do
|
|
181
181
|
format: :json,
|
182
182
|
body: { something: "else" },
|
183
183
|
basic_auth: { username: "user", password: "pass" },
|
184
|
-
headers: {
|
184
|
+
headers: { "Accept" => "application/json", "Content-Type" => "application/x-www-form-urlencoded", "User-Agent" => Dnsimple::Default::USER_AGENT },
|
185
185
|
}
|
186
186
|
)
|
187
187
|
|
188
188
|
expect {
|
189
|
-
subject.request(:post,
|
189
|
+
subject.request(:post, "foo", { something: "else" }, { headers: { "Content-Type" => "application/x-www-form-urlencoded" } })
|
190
190
|
}.not_to raise_error
|
191
191
|
end
|
192
192
|
|
@@ -197,7 +197,7 @@ describe Dnsimple::Client do
|
|
197
197
|
format: :json,
|
198
198
|
http_proxyaddr: "example-proxy.com",
|
199
199
|
http_proxyport: "4321",
|
200
|
-
headers: {
|
200
|
+
headers: { "Accept" => "application/json", "User-Agent" => Dnsimple::Default::USER_AGENT },
|
201
201
|
}
|
202
202
|
)
|
203
203
|
|
data/spec/dnsimple/extra_spec.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "spec_helper"
|
4
4
|
|
5
5
|
RSpec.describe Dnsimple::Options::Base do
|
6
|
-
describe
|
7
|
-
it
|
6
|
+
describe "#initialize" do
|
7
|
+
it "accepts a hash" do
|
8
8
|
hash = { a: 1 }
|
9
9
|
expect(described_class.new(hash).to_h).to eq(hash)
|
10
10
|
end
|
11
11
|
|
12
|
-
it
|
12
|
+
it "accepts nil" do
|
13
13
|
expect(described_class.new(nil).to_h).to eq({})
|
14
14
|
end
|
15
15
|
|
16
|
-
it
|
16
|
+
it "duplicates given hash" do
|
17
17
|
hash = { a: [1] }
|
18
18
|
base = described_class.new(hash)
|
19
19
|
base.to_h[:a] << 2
|
@@ -1,29 +1,29 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "spec_helper"
|
4
4
|
|
5
5
|
RSpec.describe Dnsimple::Options::ListOptions do
|
6
|
-
describe
|
7
|
-
it
|
6
|
+
describe "#to_h" do
|
7
|
+
it "returns empty hash if given options equal to nil" do
|
8
8
|
options = described_class.new(nil)
|
9
9
|
expect(options.to_h).to eq({})
|
10
10
|
end
|
11
11
|
|
12
|
-
it
|
12
|
+
it "returns empty hash if given options are empty" do
|
13
13
|
options = described_class.new({})
|
14
14
|
expect(options.to_h).to eq({})
|
15
15
|
end
|
16
16
|
|
17
|
-
describe
|
17
|
+
describe "query" do
|
18
18
|
it 'adds "query" key if given options are filled' do
|
19
19
|
options = described_class.new(a: 1)
|
20
20
|
expect(options.to_h).to have_key(:query)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
describe
|
24
|
+
describe "pagination" do
|
25
25
|
it 'adds "page" to "query"' do
|
26
|
-
raw = { page:
|
26
|
+
raw = { page: "23" }
|
27
27
|
expected = { query: raw }
|
28
28
|
options = described_class.new(raw)
|
29
29
|
|
@@ -31,7 +31,7 @@ RSpec.describe Dnsimple::Options::ListOptions do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'adds "per_page" to "query"' do
|
34
|
-
raw = { per_page:
|
34
|
+
raw = { per_page: "500" }
|
35
35
|
expected = { query: raw }
|
36
36
|
options = described_class.new(raw)
|
37
37
|
|
@@ -39,7 +39,7 @@ RSpec.describe Dnsimple::Options::ListOptions do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'combines "page" and "per_page"' do
|
42
|
-
raw = { page:
|
42
|
+
raw = { page: "1", per_page: "100" }
|
43
43
|
expected = { query: raw }
|
44
44
|
options = described_class.new(raw)
|
45
45
|
|
@@ -47,25 +47,25 @@ RSpec.describe Dnsimple::Options::ListOptions do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
describe
|
50
|
+
describe "sorting" do
|
51
51
|
it 'adds sorting policy to "query"' do
|
52
|
-
raw = { sort:
|
52
|
+
raw = { sort: "name:desc" }
|
53
53
|
expected = { query: raw }
|
54
54
|
options = described_class.new(raw)
|
55
55
|
|
56
56
|
expect(options.to_h).to eq(expected)
|
57
57
|
end
|
58
58
|
|
59
|
-
it
|
60
|
-
raw = { sort:
|
59
|
+
it "combines with filtering" do
|
60
|
+
raw = { sort: "name:desc", filter: { name: "foo" } }
|
61
61
|
expected = { query: { sort: raw.fetch(:sort) }.merge(raw.fetch(:filter)) }
|
62
62
|
options = described_class.new(raw)
|
63
63
|
|
64
64
|
expect(options.to_h).to eq(expected)
|
65
65
|
end
|
66
66
|
|
67
|
-
it
|
68
|
-
raw = { sort:
|
67
|
+
it "combines with pagination" do
|
68
|
+
raw = { sort: "name:desc", page: "2", per_page: "100" }
|
69
69
|
expected = { query: raw }
|
70
70
|
options = described_class.new(raw)
|
71
71
|
|
@@ -73,25 +73,25 @@ RSpec.describe Dnsimple::Options::ListOptions do
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
describe
|
76
|
+
describe "filtering" do
|
77
77
|
it 'adds filtering policy to "query"' do
|
78
|
-
raw = { filter: { name_like:
|
78
|
+
raw = { filter: { name_like: "example" } }
|
79
79
|
expected = { query: raw.fetch(:filter) }
|
80
80
|
options = described_class.new(raw)
|
81
81
|
|
82
82
|
expect(options.to_h).to eq(expected)
|
83
83
|
end
|
84
84
|
|
85
|
-
it
|
86
|
-
raw = { filter: { name_like:
|
85
|
+
it "combines with sorting" do
|
86
|
+
raw = { filter: { name_like: "bar" }, sort: "tld:desc" }
|
87
87
|
expected = { query: raw.fetch(:filter).merge(sort: raw.fetch(:sort)) }
|
88
88
|
options = described_class.new(raw)
|
89
89
|
|
90
90
|
expect(options.to_h).to eq(expected)
|
91
91
|
end
|
92
92
|
|
93
|
-
it
|
94
|
-
raw = { filter: { name_like:
|
93
|
+
it "combines with pagination" do
|
94
|
+
raw = { filter: { name_like: "example" }, page: "1", per_page: "20" }
|
95
95
|
expected = { query: { page: raw.fetch(:page), per_page: raw.fetch(:per_page) }.merge(raw.fetch(:filter)) }
|
96
96
|
options = described_class.new(raw)
|
97
97
|
|
@@ -17,4 +17,5 @@ X-Permitted-Cross-Domain-Policies: none
|
|
17
17
|
X-XSS-Protection: 1; mode=block
|
18
18
|
Strict-Transport-Security: max-age=31536000
|
19
19
|
|
20
|
-
{"data":[{"id":123,"email":"john@example.com","plan_identifier":"dnsimple-personal","created_at":"2011-09-11T17:15:58Z","updated_at":"2016-06-03T15:02:26Z"},{"id":456,"email":"ops@company.com","plan_identifier":"
|
20
|
+
{"data":[{"id":123,"email":"john@example.com","plan_identifier":"dnsimple-personal","created_at":"2011-09-11T17:15:58Z","updated_at":"2016-06-03T15:02:26Z"},{"id":456,"email":"ops@company.com","plan_identifier":"teams-v1-monthly","created_at":"2012-03-16T16:02:54Z","updated_at":"2016-06-14T11:23:16Z"}]}
|
21
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 400 Bad Request
|
2
|
+
Server: nginx
|
3
|
+
Date: Tue, 23 Sep 2025 10:21:06 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Content-Length: 137
|
6
|
+
Connection: keep-alive
|
7
|
+
X-RateLimit-Limit: 2400
|
8
|
+
X-RateLimit-Remaining: 2397
|
9
|
+
X-RateLimit-Reset: 1758626142
|
10
|
+
X-WORK-WITH-US: Love automation? So do we! https://dnsimple.com/jobs
|
11
|
+
Cache-Control: no-cache
|
12
|
+
X-Request-Id: 22761da9-ad02-4970-add5-e26602b09bb5
|
13
|
+
X-Runtime: 0.115194
|
14
|
+
Strict-Transport-Security: max-age=63072000
|
15
|
+
|
16
|
+
{"message":"Validation failed","errors":{"creates":[{"index":0,"message":"Validation failed","errors":{"record_type":["unsupported"]}}]}}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
HTTP/1.1 400 Bad Request
|
2
|
+
server: nginx
|
3
|
+
date: Fri, 05 Sep 2025 06:50:48 GMT
|
4
|
+
content-type: application/json; charset=utf-8
|
5
|
+
content-length: 107
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2390
|
8
|
+
X-RateLimit-Reset: 1757058040
|
9
|
+
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
10
|
+
cache-control: no-cache
|
11
|
+
x-request-id: 254988cd-401b-4a32-b5d8-c25502573c9a
|
12
|
+
x-runtime: 0.105704
|
13
|
+
strict-transport-security: max-age=63072000
|
14
|
+
|
15
|
+
{"message":"Validation failed","errors":{"deletes":[{"index":0,"message":"Record not found ID=67622509"}]}}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
HTTP/1.1 400 Bad Request
|
2
|
+
server: nginx
|
3
|
+
date: Fri, 05 Sep 2025 06:52:30 GMT
|
4
|
+
content-type: application/json; charset=utf-8
|
5
|
+
content-length: 107
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2388
|
8
|
+
X-RateLimit-Reset: 1757058040
|
9
|
+
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
10
|
+
cache-control: no-cache
|
11
|
+
x-request-id: e042a192-69de-46b5-9ea0-add647a9b20a
|
12
|
+
x-runtime: 0.170298
|
13
|
+
strict-transport-security: max-age=63072000
|
14
|
+
|
15
|
+
{"message":"Validation failed","errors":{"updates":[{"index":0,"message":"Record not found ID=99999999"}]}}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
server: nginx
|
3
|
+
date: Fri, 05 Sep 2025 05:25:01 GMT
|
4
|
+
content-type: application/json; charset=utf-8
|
5
|
+
content-length: 1080
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2399
|
8
|
+
X-RateLimit-Reset: 1757053501
|
9
|
+
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
10
|
+
etag: W/"0d9f98e87eccabb6c8045c7fd0b61e5e"
|
11
|
+
cache-control: max-age=0, private, must-revalidate
|
12
|
+
x-request-id: f331c43b-7f06-4b1f-90a1-e88efee10c1c
|
13
|
+
x-runtime: 0.334890
|
14
|
+
strict-transport-security: max-age=63072000
|
15
|
+
|
16
|
+
{"data":{"creates":[{"id":67623409,"zone_id":"example.com","parent_id":null,"name":"ab","content":"3.2.3.4","ttl":3600,"priority":null,"type":"A","regions":["global"],"system_record":false,"created_at":"2025-09-05T05:25:00Z","updated_at":"2025-09-05T05:25:00Z"},{"id":67623410,"zone_id":"example.com","parent_id":null,"name":"ab","content":"4.2.3.4","ttl":3600,"priority":null,"type":"A","regions":["global"],"system_record":false,"created_at":"2025-09-05T05:25:00Z","updated_at":"2025-09-05T05:25:00Z"}],"updates":[{"id":67622534,"zone_id":"example.com","parent_id":null,"name":"update1-1757049890","content":"3.2.3.40","ttl":3600,"priority":null,"type":"A","regions":["global"],"system_record":false,"created_at":"2025-09-05T04:40:15Z","updated_at":"2025-09-05T05:25:00Z"},{"id":67622537,"zone_id":"example.com","parent_id":null,"name":"update2-1757049890","content":"5.2.3.40","ttl":3600,"priority":null,"type":"A","regions":["global"],"system_record":false,"created_at":"2025-09-05T04:40:22Z","updated_at":"2025-09-05T05:25:00Z"}],"deletes":[{"id":67622509},{"id":67622527}]}}
|
@@ -2,13 +2,13 @@ HTTP/1.1 404
|
|
2
2
|
server: nginx
|
3
3
|
date: Tue, 22 Aug 2023 13:59:02 GMT
|
4
4
|
content-type: application/json; charset=utf-8
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
X-RateLimit-Limit: 2400
|
6
|
+
X-RateLimit-Remaining: 2398
|
7
|
+
X-RateLimit-Reset: 1692716201
|
8
8
|
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
9
9
|
cache-control: no-cache
|
10
10
|
x-request-id: b1dd3f42-ebb9-42fd-a121-d595de96f667
|
11
11
|
x-runtime: 0.019122
|
12
12
|
strict-transport-security: max-age=63072000
|
13
13
|
|
14
|
-
{"message":"Contact `21` not found"}
|
14
|
+
{"message":"Contact `21` not found"}
|
@@ -2,9 +2,9 @@ HTTP/1.1 404
|
|
2
2
|
server: nginx
|
3
3
|
date: Tue, 22 Aug 2023 11:09:40 GMT
|
4
4
|
content-type: application/json; charset=utf-8
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
X-RateLimit-Limit: 2400
|
6
|
+
X-RateLimit-Remaining: 2395
|
7
|
+
X-RateLimit-Reset: 1692705338
|
8
8
|
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
9
9
|
etag: W/"cef1e7d85d0b9bfd25e81b812891d34f"
|
10
10
|
cache-control: max-age=0, private, must-revalidate
|
@@ -12,4 +12,4 @@ x-request-id: 5b0d8bfb-7b6a-40b5-a079-b640fd817e34
|
|
12
12
|
x-runtime: 3.066249
|
13
13
|
strict-transport-security: max-age=63072000
|
14
14
|
|
15
|
-
{"message":"Domain `
|
15
|
+
{"message":"Domain `dnsimple-rraform.bio` not found"}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
HTTP/1.1 200
|
1
|
+
HTTP/1.1 200
|
2
2
|
server: nginx
|
3
3
|
date: Tue, 22 Aug 2023 11:09:40 GMT
|
4
4
|
content-type: application/json; charset=utf-8
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
X-RateLimit-Limit: 2400
|
6
|
+
X-RateLimit-Remaining: 2395
|
7
|
+
X-RateLimit-Reset: 1692705338
|
8
8
|
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
9
9
|
etag: W/"cef1e7d85d0b9bfd25e81b812891d34f"
|
10
10
|
cache-control: max-age=0, private, must-revalidate
|
@@ -12,4 +12,4 @@ x-request-id: 5b0d8bfb-7b6a-40b5-a079-b640fd817e34
|
|
12
12
|
x-runtime: 3.066249
|
13
13
|
strict-transport-security: max-age=63072000
|
14
14
|
|
15
|
-
{"data":{"domain_id":101,"contact_id":101,"extended_attributes":[],"registry_owner_change":true}}
|
15
|
+
{"data":{"domain_id":101,"contact_id":101,"extended_attributes":[],"registry_owner_change":true}}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
HTTP/1.1 400 Bad Request
|
2
|
+
Server: nginx
|
3
|
+
Date: Wed, 23 Nov 2016 08:12:57 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2396
|
8
|
+
X-RateLimit-Reset: 1479892333
|
9
|
+
Cache-Control: no-cache
|
10
|
+
X-Request-Id: 91dcf81b-5df4-4d45-b37e-446f0c422a27
|
11
|
+
X-Runtime: 0.062556
|
12
|
+
X-Content-Type-Options: nosniff
|
13
|
+
X-Download-Options: noopen
|
14
|
+
X-Frame-Options: DENY
|
15
|
+
X-Permitted-Cross-Domain-Policies: none
|
16
|
+
X-XSS-Protection: 1; mode=block
|
17
|
+
|
18
|
+
{"message":"Validation failed","errors":{"address1":["can't be blank"],"city":["can't be blank"],"country":["can't be blank"],"email":["can't be blank","is an invalid email address"],"first_name":["can't be blank"],"last_name":["can't be blank"],"phone":["can't be blank","is probably not a phone number"],"postal_code":["can't be blank"],"state_province":["can't be blank"]}}
|
@@ -2,7 +2,6 @@ HTTP/1.1 201 Created
|
|
2
2
|
Server: nginx
|
3
3
|
Date: Mon, 25 Jan 2021 13:54:40 GMT
|
4
4
|
Content-Type: application/json; charset=utf-8
|
5
|
-
Transfer-Encoding: identity
|
6
5
|
Connection: keep-alive
|
7
6
|
X-RateLimit-Limit: 4800
|
8
7
|
X-RateLimit-Remaining: 4772
|
@@ -19,4 +18,4 @@ X-Permitted-Cross-Domain-Policies: none
|
|
19
18
|
Content-Security-Policy: frame-ancestors 'none'
|
20
19
|
Strict-Transport-Security: max-age=31536000
|
21
20
|
|
22
|
-
{"data":{"id":41872,"domain_id":235146,"alias_email":"example@dnsimple.xyz","destination_email":"example@example.com","created_at":"2021-01-25T13:54:40Z","updated_at":"2021-01-25T13:54:40Z","from":"example@dnsimple.xyz","to":"example@example.com"}}
|
21
|
+
{"data":{"id":41872,"domain_id":235146,"alias_email":"example@dnsimple.xyz","destination_email":"example@example.com","created_at":"2021-01-25T13:54:40Z","updated_at":"2021-01-25T13:54:40Z","from":"example@dnsimple.xyz","to":"example@example.com","active":true}}
|
@@ -1,14 +1,14 @@
|
|
1
|
-
HTTP/1.1 202
|
1
|
+
HTTP/1.1 202
|
2
2
|
server: nginx
|
3
3
|
date: Tue, 22 Aug 2023 11:11:00 GMT
|
4
4
|
content-type: application/json; charset=utf-8
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
X-RateLimit-Limit: 2400
|
6
|
+
X-RateLimit-Remaining: 2394
|
7
|
+
X-RateLimit-Reset: 1692705339
|
8
8
|
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
9
9
|
cache-control: no-cache
|
10
10
|
x-request-id: 26bf7ff9-2075-42b0-9431-1778c825b6b0
|
11
11
|
x-runtime: 3.408950
|
12
12
|
strict-transport-security: max-age=63072000
|
13
13
|
|
14
|
-
{"data":{"id":101,"account_id":101,"domain_id":101,"contact_id":101,"state":"new","extended_attributes":{},"registry_owner_change":true,"irt_lock_lifted_by":null,"created_at":"2017-02-03T17:43:22Z","updated_at":"2017-02-03T17:43:22Z"}}
|
14
|
+
{"data":{"id":101,"account_id":101,"domain_id":101,"contact_id":101,"state":"new","extended_attributes":{},"registry_owner_change":true,"irt_lock_lifted_by":null,"created_at":"2017-02-03T17:43:22Z","updated_at":"2017-02-03T17:43:22Z"}}
|
@@ -1,16 +1,16 @@
|
|
1
|
-
HTTP/1.1 201 Created
|
2
|
-
Server: nginx
|
3
|
-
Date: Mon, 15 Feb 2016 17:04:38 GMT
|
4
|
-
Content-Type: application/json; charset=utf-8
|
5
|
-
Connection: keep-alive
|
6
|
-
Status: 201 Created
|
7
|
-
X-RateLimit-Limit: 4000
|
8
|
-
X-RateLimit-Remaining: 3996
|
9
|
-
X-RateLimit-Reset: 1455559348
|
10
|
-
ETag: W/"a4b43ee926d18d0839f1eae08e78c66b"
|
11
|
-
Cache-Control: max-age=0, private, must-revalidate
|
12
|
-
X-Request-Id: dca89281-416a-4766-9428-d0295f58586e
|
13
|
-
X-Runtime: 0.175179
|
14
|
-
Strict-Transport-Security: max-age=31536000
|
15
|
-
|
16
|
-
{"data":{"id":1,"url":"https://webhook.test"}}
|
1
|
+
HTTP/1.1 201 Created
|
2
|
+
Server: nginx
|
3
|
+
Date: Mon, 15 Feb 2016 17:04:38 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
Status: 201 Created
|
7
|
+
X-RateLimit-Limit: 4000
|
8
|
+
X-RateLimit-Remaining: 3996
|
9
|
+
X-RateLimit-Reset: 1455559348
|
10
|
+
ETag: W/"a4b43ee926d18d0839f1eae08e78c66b"
|
11
|
+
Cache-Control: max-age=0, private, must-revalidate
|
12
|
+
X-Request-Id: dca89281-416a-4766-9428-d0295f58586e
|
13
|
+
X-Runtime: 0.175179
|
14
|
+
Strict-Transport-Security: max-age=31536000
|
15
|
+
|
16
|
+
{"data":{"id":1,"url":"https://webhook.test","suppressed_at": null}}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
HTTP/1.1
|
1
|
+
HTTP/1.1 204 No Content
|
2
2
|
server: nginx
|
3
3
|
date: Tue, 22 Aug 2023 11:14:44 GMT
|
4
4
|
content-type: application/json; charset=utf-8
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
X-RateLimit-Limit: 2400
|
6
|
+
X-RateLimit-Remaining: 2391
|
7
|
+
X-RateLimit-Reset: 1692705338
|
8
8
|
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
9
9
|
cache-control: no-cache
|
10
10
|
x-request-id: b123e1f0-aa70-4abb-95cf-34f377c83ef4
|
@@ -0,0 +1,14 @@
|
|
1
|
+
HTTP/1.1 202
|
2
|
+
server: nginx
|
3
|
+
date: Tue, 22 Aug 2023 11:11:00 GMT
|
4
|
+
content-type: application/json; charset=utf-8
|
5
|
+
X-RateLimit-Limit: 2400
|
6
|
+
X-RateLimit-Remaining: 2394
|
7
|
+
X-RateLimit-Reset: 1692705339
|
8
|
+
x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
|
9
|
+
cache-control: no-cache
|
10
|
+
x-request-id: 26bf7ff9-2075-42b0-9431-1778c825b6b0
|
11
|
+
x-runtime: 3.408950
|
12
|
+
strict-transport-security: max-age=63072000
|
13
|
+
|
14
|
+
{"data":{"id":101,"account_id":101,"domain_id":101,"contact_id":101,"state":"cancelling","extended_attributes":{},"registry_owner_change":true,"irt_lock_lifted_by":null,"created_at":"2017-02-03T17:43:22Z","updated_at":"2017-02-03T17:43:22Z"}}
|
@@ -17,4 +17,4 @@ X-Permitted-Cross-Domain-Policies: none
|
|
17
17
|
X-XSS-Protection: 1; mode=block
|
18
18
|
Strict-Transport-Security: max-age=31536000
|
19
19
|
|
20
|
-
{"data": {"headers": ["zone_name", "date", "volume"], "rows": [["bar.com", "2023-12-08", 1200], ["bar.com", "2023-12-09", 1200], ["bar.com", "2024-01-07", 1200], ["bar.com", "2024-01-08", 1200], ["example.com", "2023-12-08", 1200], ["example.com", "2023-12-09", 1200], ["example.com", "2024-01-07", 1200], ["example.com", "2024-01-08", 1200], ["foo.com", "2023-12-08", 1200], ["foo.com", "2023-12-09", 1200], ["foo.com", "2024-01-07", 1200], ["foo.com", "2024-01-08", 1200]]}, "query": {"account_id":
|
20
|
+
{"data": {"headers": ["zone_name", "date", "volume"], "rows": [["bar.com", "2023-12-08", 1200], ["bar.com", "2023-12-09", 1200], ["bar.com", "2024-01-07", 1200], ["bar.com", "2024-01-08", 1200], ["example.com", "2023-12-08", 1200], ["example.com", "2023-12-09", 1200], ["example.com", "2024-01-07", 1200], ["example.com", "2024-01-08", 1200], ["foo.com", "2023-12-08", 1200], ["foo.com", "2023-12-09", 1200], ["foo.com", "2024-01-07", 1200], ["foo.com", "2024-01-08", 1200]]}, "query": {"account_id": 1, "start_date": "2023-12-08", "end_date": "2024-01-08", "sort": "zone_name:asc,date:asc", "page": 0, "per_page": 100, "groupings": "zone_name,date"}, "pagination": {"current_page": 0, "per_page": 100, "total_entries": 93, "total_pages": 1}}
|
@@ -1,19 +1,19 @@
|
|
1
|
-
HTTP/1.1 400 Bad Request
|
2
|
-
Server: nginx
|
3
|
-
Date: Mon, 08 Mar 2021 14:35:58 GMT
|
4
|
-
Content-Type: application/json; charset=utf-8
|
5
|
-
Connection: keep-alive
|
6
|
-
X-RateLimit-Limit: 2400
|
7
|
-
X-RateLimit-Remaining: 2396
|
8
|
-
X-RateLimit-Reset: 1615217645
|
9
|
-
Cache-Control: no-cache
|
10
|
-
X-Request-Id: e414a674-63bb-4e54-b714-db5b516bb190
|
11
|
-
X-Runtime: 0.009579
|
12
|
-
X-Frame-Options: DENY
|
13
|
-
X-Content-Type-Options: nosniff
|
14
|
-
X-XSS-Protection: 1; mode=block
|
15
|
-
X-Download-Options: noopen
|
16
|
-
X-Permitted-Cross-Domain-Policies: none
|
17
|
-
Content-Security-Policy: frame-ancestors 'none'
|
18
|
-
|
1
|
+
HTTP/1.1 400 Bad Request
|
2
|
+
Server: nginx
|
3
|
+
Date: Mon, 08 Mar 2021 14:35:58 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2396
|
8
|
+
X-RateLimit-Reset: 1615217645
|
9
|
+
Cache-Control: no-cache
|
10
|
+
X-Request-Id: e414a674-63bb-4e54-b714-db5b516bb190
|
11
|
+
X-Runtime: 0.009579
|
12
|
+
X-Frame-Options: DENY
|
13
|
+
X-Content-Type-Options: nosniff
|
14
|
+
X-XSS-Protection: 1; mode=block
|
15
|
+
X-Download-Options: noopen
|
16
|
+
X-Permitted-Cross-Domain-Policies: none
|
17
|
+
Content-Security-Policy: frame-ancestors 'none'
|
18
|
+
|
19
19
|
{"message":"TLD .PINEAPPLE is not supported"}
|
@@ -1,21 +1,21 @@
|
|
1
|
-
HTTP/1.1 200 OK
|
2
|
-
Server: nginx
|
3
|
-
Date: Mon, 08 Mar 2021 14:35:26 GMT
|
4
|
-
Content-Type: application/json; charset=utf-8
|
5
|
-
Connection: keep-alive
|
6
|
-
X-RateLimit-Limit: 2400
|
7
|
-
X-RateLimit-Remaining: 2397
|
8
|
-
X-RateLimit-Reset: 1615217645
|
9
|
-
ETag: W/"2104f27f2877f429295359cfc409f9f7"
|
10
|
-
Cache-Control: max-age=0, private, must-revalidate
|
11
|
-
X-Request-Id: b0d9e000-58a6-4254-af43-8735d26e12d9
|
12
|
-
X-Runtime: 9.129301
|
13
|
-
X-Frame-Options: DENY
|
14
|
-
X-Content-Type-Options: nosniff
|
15
|
-
X-XSS-Protection: 1; mode=block
|
16
|
-
X-Download-Options: noopen
|
17
|
-
X-Permitted-Cross-Domain-Policies: none
|
18
|
-
Content-Security-Policy: frame-ancestors 'none'
|
19
|
-
Strict-Transport-Security: max-age=31536000
|
20
|
-
|
21
|
-
{"data":{"domain":"bingo.pizza","premium":true,"registration_price":20.0,"renewal_price":20.0,"transfer_price":20.0}}
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Server: nginx
|
3
|
+
Date: Mon, 08 Mar 2021 14:35:26 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2397
|
8
|
+
X-RateLimit-Reset: 1615217645
|
9
|
+
ETag: W/"2104f27f2877f429295359cfc409f9f7"
|
10
|
+
Cache-Control: max-age=0, private, must-revalidate
|
11
|
+
X-Request-Id: b0d9e000-58a6-4254-af43-8735d26e12d9
|
12
|
+
X-Runtime: 9.129301
|
13
|
+
X-Frame-Options: DENY
|
14
|
+
X-Content-Type-Options: nosniff
|
15
|
+
X-XSS-Protection: 1; mode=block
|
16
|
+
X-Download-Options: noopen
|
17
|
+
X-Permitted-Cross-Domain-Policies: none
|
18
|
+
Content-Security-Policy: frame-ancestors 'none'
|
19
|
+
Strict-Transport-Security: max-age=31536000
|
20
|
+
|
21
|
+
{"data":{"domain":"bingo.pizza","premium":true,"registration_price":20.0,"renewal_price":20.0,"transfer_price":20.0,"restore_price":20.0}}
|
@@ -1,20 +1,22 @@
|
|
1
|
-
HTTP/1.1
|
1
|
+
HTTP/1.1 200 OK
|
2
2
|
Server: nginx
|
3
|
-
Date:
|
4
|
-
Content-Type: application/json
|
3
|
+
Date: Sun, 18 Feb 2024 10:48:05 GMT
|
4
|
+
Content-Type: application/json
|
5
|
+
Content-Length: 120
|
5
6
|
Connection: keep-alive
|
6
7
|
X-RateLimit-Limit: 2400
|
7
|
-
X-RateLimit-Remaining:
|
8
|
-
X-RateLimit-Reset:
|
9
|
-
|
10
|
-
Cache-Control:
|
11
|
-
X-Request-Id:
|
12
|
-
X-Runtime:
|
8
|
+
X-RateLimit-Remaining: 2398
|
9
|
+
X-RateLimit-Reset: 1547125899
|
10
|
+
X-WORK-WITH-US: Love automation? So do we! https://dnsimple.com/jobs
|
11
|
+
Cache-Control: no-cache
|
12
|
+
X-Request-Id: 2a8d691f-f47e-4d41-9916-eba67e683914
|
13
|
+
X-Runtime: 0.004845
|
14
|
+
X-Frame-Options: DENY
|
13
15
|
X-Content-Type-Options: nosniff
|
16
|
+
X-XSS-Protection: 1; mode=block
|
14
17
|
X-Download-Options: noopen
|
15
|
-
X-Frame-Options: DENY
|
16
18
|
X-Permitted-Cross-Domain-Policies: none
|
17
|
-
|
18
|
-
Strict-Transport-Security: max-age=
|
19
|
+
Content-Security-Policy: frame-ancestors 'none'
|
20
|
+
Strict-Transport-Security: max-age=63072000
|
19
21
|
|
20
|
-
{"data":{"id":
|
22
|
+
{"data":{"id":43,"domain_id":214,"state":"new","created_at":"2024-02-14T14:40:42Z","updated_at":"2024-02-14T14:40:42Z"}}
|
@@ -2,7 +2,6 @@ HTTP/1.1 200 OK
|
|
2
2
|
Server: nginx
|
3
3
|
Date: Mon, 25 Jan 2021 13:56:24 GMT
|
4
4
|
Content-Type: application/json; charset=utf-8
|
5
|
-
Transfer-Encoding: identity
|
6
5
|
Connection: keep-alive
|
7
6
|
X-RateLimit-Limit: 4800
|
8
7
|
X-RateLimit-Remaining: 4766
|
@@ -19,4 +18,4 @@ X-Permitted-Cross-Domain-Policies: none
|
|
19
18
|
Content-Security-Policy: frame-ancestors 'none'
|
20
19
|
Strict-Transport-Security: max-age=31536000
|
21
20
|
|
22
|
-
{"data":{"id":41872,"domain_id":235146,"alias_email":"example@dnsimple.xyz","destination_email":"example@example.com","created_at":"2021-01-25T13:54:40Z","updated_at":"2021-01-25T13:54:40Z","from":"example@dnsimple.xyz","to":"example@example.com"}}
|
21
|
+
{"data":{"id":41872,"domain_id":235146,"alias_email":"example@dnsimple.xyz","destination_email":"example@example.com","created_at":"2021-01-25T13:54:40Z","updated_at":"2021-01-25T13:54:40Z","from":"example@dnsimple.xyz","to":"example@example.com","active":true}}
|