dnsimple 10.0.0 → 11.0.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.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +5 -7
  3. data/.github/workflows/ci.yml +3 -3
  4. data/.github/workflows/release.yml +2 -2
  5. data/.github/workflows/sync-test-fixtures.yml +55 -0
  6. data/.markdownlint.yaml +15 -1
  7. data/.rubocop.yml +1 -1
  8. data/.rubocop_dnsimple.yml +14 -30
  9. data/CHANGELOG.md +5 -0
  10. data/Gemfile +7 -7
  11. data/lib/dnsimple/client/clients.rb +29 -31
  12. data/lib/dnsimple/client/domains_email_forwards.rb +1 -1
  13. data/lib/dnsimple/client.rb +5 -5
  14. data/lib/dnsimple/default.rb +7 -7
  15. data/lib/dnsimple/response.rb +3 -3
  16. data/lib/dnsimple/struct/charge.rb +1 -1
  17. data/lib/dnsimple/struct/email_forward.rb +0 -8
  18. data/lib/dnsimple/struct.rb +40 -40
  19. data/lib/dnsimple/version.rb +1 -1
  20. data/lib/dnsimple.rb +5 -5
  21. data/spec/dnsimple/client/accounts_spec.rb +2 -2
  22. data/spec/dnsimple/client/billing_spec.rb +3 -3
  23. data/spec/dnsimple/client/certificates_spec.rb +11 -11
  24. data/spec/dnsimple/client/client_service_spec.rb +1 -1
  25. data/spec/dnsimple/client/contacts_spec.rb +6 -6
  26. data/spec/dnsimple/client/dns_analytics_spec.rb +9 -9
  27. data/spec/dnsimple/client/domains_delegation_signer_records_spec.rb +5 -5
  28. data/spec/dnsimple/client/domains_dnssec_spec.rb +4 -4
  29. data/spec/dnsimple/client/domains_email_forwards_spec.rb +8 -15
  30. data/spec/dnsimple/client/domains_pushes_spec.rb +5 -5
  31. data/spec/dnsimple/client/domains_spec.rb +6 -6
  32. data/spec/dnsimple/client/identity_spec.rb +2 -2
  33. data/spec/dnsimple/client/oauth_spec.rb +3 -3
  34. data/spec/dnsimple/client/registrar_auto_renewal_spec.rb +3 -3
  35. data/spec/dnsimple/client/registrar_delegation_spec.rb +1 -1
  36. data/spec/dnsimple/client/registrar_spec.rb +1 -1
  37. data/spec/dnsimple/client/registrar_transfer_lock_spec.rb +4 -4
  38. data/spec/dnsimple/client/registrar_whois_privacy_spec.rb +1 -1
  39. data/spec/dnsimple/client/services_domains_spec.rb +4 -4
  40. data/spec/dnsimple/client/services_spec.rb +1 -1
  41. data/spec/dnsimple/client/templates_domains_spec.rb +2 -2
  42. data/spec/dnsimple/client/templates_records_spec.rb +4 -4
  43. data/spec/dnsimple/client/templates_spec.rb +2 -2
  44. data/spec/dnsimple/client/tlds_spec.rb +5 -5
  45. data/spec/dnsimple/client/vanity_name_servers_spec.rb +1 -1
  46. data/spec/dnsimple/client/webhooks_spec.rb +5 -5
  47. data/spec/dnsimple/client/zones_distributions_spec.rb +3 -3
  48. data/spec/dnsimple/client/zones_records_spec.rb +7 -7
  49. data/spec/dnsimple/client/zones_spec.rb +6 -6
  50. data/spec/dnsimple/client_spec.rb +10 -10
  51. data/spec/dnsimple/extra_spec.rb +1 -1
  52. data/spec/dnsimple/options/base_spec.rb +5 -5
  53. data/spec/dnsimple/options/list_options_spec.rb +21 -21
  54. data/spec/fixtures.http/accounts/success-user.http +2 -1
  55. data/spec/fixtures.http/checkRegistrantChange/error-contactnotfound.http +4 -4
  56. data/spec/fixtures.http/checkRegistrantChange/error-domainnotfound.http +4 -4
  57. data/spec/fixtures.http/checkRegistrantChange/success.http +5 -5
  58. data/spec/fixtures.http/createContact/error-validation-errors.http +18 -0
  59. data/spec/fixtures.http/createEmailForward/created.http +1 -2
  60. data/spec/fixtures.http/createRegistrantChange/success.http +5 -5
  61. data/spec/fixtures.http/createWebhook/created.http +16 -16
  62. data/spec/fixtures.http/deleteRegistrantChange/success.http +4 -4
  63. data/spec/fixtures.http/deleteRegistrantChange/success_async.http +14 -0
  64. data/spec/fixtures.http/dnsAnalytics/success.http +1 -1
  65. data/spec/fixtures.http/getDomainPrices/failure.http +18 -18
  66. data/spec/fixtures.http/getDomainPrices/success.http +21 -21
  67. data/spec/fixtures.http/getDomainRestore/success.http +13 -14
  68. data/spec/fixtures.http/getEmailForward/success.http +1 -2
  69. data/spec/fixtures.http/getRegistrantChange/success.http +5 -5
  70. data/spec/fixtures.http/getTld/success.http +1 -1
  71. data/spec/fixtures.http/getWebhook/success.http +16 -16
  72. data/spec/fixtures.http/listAccounts/success-user.http +1 -1
  73. data/spec/fixtures.http/listCharges/fail-400-bad-filter.http +0 -2
  74. data/spec/fixtures.http/listCharges/fail-403.http +0 -2
  75. data/spec/fixtures.http/listCharges/success.http +0 -2
  76. data/spec/fixtures.http/listEmailForwards/success.http +1 -1
  77. data/spec/fixtures.http/listRegistrantChanges/success.http +5 -5
  78. data/spec/fixtures.http/listTlds/success.http +1 -1
  79. data/spec/fixtures.http/listWebhooks/success.http +16 -16
  80. data/spec/fixtures.http/registerDomain/error-extended-attributes.http +18 -0
  81. data/spec/fixtures.http/restoreDomain/success.http +12 -13
  82. data/spec/fixtures.http/updateZoneNsRecords/success.http +16 -0
  83. data/spec/fixtures.http/whoami/success-account.http +1 -1
  84. data/spec/fixtures.http/whoami/success.http +1 -1
  85. data/spec/spec_helper.rb +4 -4
  86. data/spec/support/webmock.rb +1 -1
  87. metadata +7 -11
  88. data/.github/CODEOWNERS +0 -1
  89. data/.github/workflows/auto-merge.yml +0 -32
  90. data/lib/dnsimple/client/domains_collaborators.rb +0 -87
  91. data/spec/dnsimple/client/domains_collaborators_spec.rb +0 -164
  92. data/spec/fixtures.http/addCollaborator/invite-success.http +0 -20
  93. data/spec/fixtures.http/addCollaborator/success.http +0 -20
  94. data/spec/fixtures.http/listCollaborators/success.http +0 -20
  95. data/spec/fixtures.http/notfound-collaborator.http +0 -15
  96. data/spec/fixtures.http/removeCollaborator/success.http +0 -17
@@ -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
- x-ratelimit-limit: 2400
6
- x-ratelimit-remaining: 2395
7
- x-ratelimit-reset: 1692705338
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
- x-ratelimit-limit: 2400
6
- x-ratelimit-remaining: 2394
7
- x-ratelimit-reset: 1692705339
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 201
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
- x-ratelimit-limit: 2400
6
- x-ratelimit-remaining: 2391
7
- x-ratelimit-reset: 1692705338
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": "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}}
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,19 @@
1
- HTTP/1.1 201 Created
1
+ HTTP/1.1 200 OK
2
2
  Server: nginx
3
- Date: Fri, 09 Dec 2016 19:46:57 GMT
4
- Content-Type: application/json; charset=utf-8
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
- X-RateLimit-Limit: 2400
7
- X-RateLimit-Remaining: 2394
8
- X-RateLimit-Reset: 1481315245
9
- ETag: W/"179d85ea8a26a3d5dc76e42de2d7918e"
10
- Cache-Control: max-age=0, private, must-revalidate
11
- X-Request-Id: ba6f2707-5df0-4ffa-b91b-51d4460bab8e
12
- X-Runtime: 13.571302
7
+ X-WORK-WITH-US: Love automation? So do we! https://dnsimple.com/jobs
8
+ Cache-Control: no-cache
9
+ X-Request-Id: 2a8d691f-f47e-4d41-9916-eba67e683914
10
+ X-Runtime: 0.004845
11
+ X-Frame-Options: DENY
13
12
  X-Content-Type-Options: nosniff
13
+ X-XSS-Protection: 1; mode=block
14
14
  X-Download-Options: noopen
15
- X-Frame-Options: DENY
16
15
  X-Permitted-Cross-Domain-Policies: none
17
- X-XSS-Protection: 1; mode=block
18
- Strict-Transport-Security: max-age=31536000
16
+ Content-Security-Policy: frame-ancestors 'none'
17
+ Strict-Transport-Security: max-age=63072000
19
18
 
20
- {"data":{"id":1,"domain_id":999,"state":"restored","created_at":"2016-12-09T19:46:45Z","updated_at":"2016-12-12T19:46:45Z"}}
19
+ {"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}}
@@ -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:13:58 GMT
4
4
  content-type: application/json; charset=utf-8
5
- x-ratelimit-limit: 2400
6
- x-ratelimit-remaining: 2392
7
- x-ratelimit-reset: 1692705338
5
+ X-RateLimit-Limit: 2400
6
+ X-RateLimit-Remaining: 2392
7
+ X-RateLimit-Reset: 1692705338
8
8
  x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
9
9
  etag: W/"76c5d4c7579b754b94a42ac7fa37a901"
10
10
  cache-control: max-age=0, private, must-revalidate
@@ -12,4 +12,4 @@ x-request-id: e910cd08-3f9c-4da4-9986-50dbe9c3bc55
12
12
  x-runtime: 0.022006
13
13
  strict-transport-security: max-age=63072000
14
14
 
15
- {"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"}}
15
+ {"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"}}
@@ -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":{"tld":"com","tld_type":1,"whois_privacy":true,"auto_renew_only":false,"idn":true,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":true,"dnssec_interface_type":"ds"}}
20
+ {"data":{"tld":"com","tld_type":1,"whois_privacy":true,"auto_renew_only":false,"idn":true,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":true,"dnssec_interface_type":"ds","name_server_min":"2","name_server_max":"13"}}
@@ -1,16 +1,16 @@
1
- HTTP/1.1 200 OK
2
- Server: nginx
3
- Date: Mon, 15 Feb 2016 17:06:09 GMT
4
- Content-Type: application/json; charset=utf-8
5
- Connection: keep-alive
6
- Status: 200 OK
7
- X-RateLimit-Limit: 4000
8
- X-RateLimit-Remaining: 3992
9
- X-RateLimit-Reset: 1455559348
10
- ETag: W/"cbb707ff6fc185d71f5a8df3110f1379"
11
- Cache-Control: max-age=0, private, must-revalidate
12
- X-Request-Id: 0109ea48-b7f0-4f78-a970-6866653b83eb
13
- X-Runtime: 0.087618
14
- Strict-Transport-Security: max-age=31536000
15
-
16
- {"data":{"id":1,"url":"https://webhook.test"}}
1
+ HTTP/1.1 200 OK
2
+ Server: nginx
3
+ Date: Mon, 15 Feb 2016 17:06:09 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Connection: keep-alive
6
+ Status: 200 OK
7
+ X-RateLimit-Limit: 4000
8
+ X-RateLimit-Remaining: 3992
9
+ X-RateLimit-Reset: 1455559348
10
+ ETag: W/"cbb707ff6fc185d71f5a8df3110f1379"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: 0109ea48-b7f0-4f78-a970-6866653b83eb
13
+ X-Runtime: 0.087618
14
+ Strict-Transport-Security: max-age=31536000
15
+
16
+ {"data":{"id":1,"url":"https://webhook.test","suppressed_at":null}}
@@ -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":[{"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":"dnsimple-professional","created_at":"2012-03-16T16:02:54Z","updated_at":"2016-06-14T11:23:16Z"}]}
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"}]}
@@ -1,6 +1,5 @@
1
1
  HTTP/1.1 400 Bad Request
2
2
  Date: Tue, 24 Oct 2023 08:13:01 GMT
3
- Connection: close
4
3
  X-RateLimit-Limit: 2400
5
4
  X-RateLimit-Remaining: 2392
6
5
  X-RateLimit-Reset: 1698136677
@@ -9,6 +8,5 @@ X-WORK-WITH-US: Love automation? So do we! https://dnsimple.com/jobs
9
8
  Cache-Control: no-cache
10
9
  X-Request-Id: bdfbf3a7-d9dc-4018-9732-61502be989a3
11
10
  X-Runtime: 0.455303
12
- Transfer-Encoding: chunked
13
11
 
14
12
  {"message":"Invalid date format must be ISO8601 (YYYY-MM-DD)"}
@@ -1,6 +1,5 @@
1
1
  HTTP/1.1 403 Forbidden
2
2
  Date: Tue, 24 Oct 2023 09:49:29 GMT
3
- Connection: close
4
3
  X-RateLimit-Limit: 2400
5
4
  X-RateLimit-Remaining: 2398
6
5
  X-RateLimit-Reset: 1698143967
@@ -9,6 +8,5 @@ X-WORK-WITH-US: Love automation? So do we! https://dnsimple.com/jobs
9
8
  Cache-Control: no-cache
10
9
  X-Request-Id: 5554e2d3-2652-4ca7-8c5e-92b4c35f28d6
11
10
  X-Runtime: 0.035309
12
- Transfer-Encoding: chunked
13
11
 
14
12
  {"message":"Permission Denied. Required Scope: billing:*:read"}
@@ -1,6 +1,5 @@
1
1
  HTTP/1.1 200 OK
2
2
  Date: Tue, 24 Oct 2023 09:52:55 GMT
3
- Connection: close
4
3
  X-RateLimit-Limit: 2400
5
4
  X-RateLimit-Remaining: 2397
6
5
  X-RateLimit-Reset: 1698143967
@@ -9,6 +8,5 @@ X-WORK-WITH-US: Love automation? So do we! https://dnsimple.com/jobs
9
8
  Cache-Control: no-store, must-revalidate, private, max-age=0
10
9
  X-Request-Id: a57a87c8-626a-4361-9fb8-b55ca9be8e5d
11
10
  X-Runtime: 0.060526
12
- Transfer-Encoding: chunked
13
11
 
14
12
  {"data":[{"invoiced_at":"2023-08-17T05:53:36Z","total_amount":"14.50","balance_amount":"0.00","reference":"1-2","state":"collected","items":[{"description":"Register bubble-registered.com","amount":"14.50","product_id":1,"product_type":"domain-registration","product_reference":"bubble-registered.com"}]},{"invoiced_at":"2023-08-17T05:57:53Z","total_amount":"14.50","balance_amount":"0.00","reference":"2-2","state":"refunded","items":[{"description":"Register example.com","amount":"14.50","product_id":2,"product_type":"domain-registration","product_reference":"example.com"}]},{"invoiced_at":"2023-10-24T07:49:05Z","total_amount":"1099999.99","balance_amount":"0.00","reference":"4-2","state":"collected","items":[{"description":"Test Line Item 1","amount":"99999.99","product_id":null,"product_type":"manual","product_reference":null},{"description":"Test Line Item 2","amount":"1000000.00","product_id":null,"product_type":"manual","product_reference":null}]}],"pagination":{"current_page":1,"per_page":30,"total_entries":3,"total_pages":1}}
@@ -13,4 +13,4 @@ X-Request-Id: e42df983-a8a5-4123-8c74-fb89ab934aba
13
13
  X-Runtime: 0.025456
14
14
  Strict-Transport-Security: max-age=63072000
15
15
 
16
- {"data":[{"id":24809,"domain_id":235146,"alias_email":"foo@a-domain.com","destination_email":"jane.smith@example.com","active":true,"created_at":"2017-05-25T19:23:16Z","updated_at":"2017-05-25T19:23:16Z","from":"foo@a-domain.com","to":"jane.smith@example.com"},{"id":24810,"domain_id":235146,"alias_email":"bar@a-domain.com","destination_email":"john.doe@example.com","active":false,"created_at":"2017-05-25T19:23:16Z","updated_at":"2017-05-25T19:23:16Z","from":"bar@a-domain.com","to":"john.doe@example.com"}],"pagination":{"current_page":1,"per_page":30,"total_entries":1,"total_pages":1}}
16
+ {"data":[{"id":24809,"domain_id":235146,"alias_email":".*@a-domain.com","destination_email":"jane.smith@example.com","created_at":"2017-05-25T19:23:16Z","updated_at":"2017-05-25T19:23:16Z","from":".*@a-domain.com","to":"jane.smith@example.com","active":true}],"pagination":{"current_page":1,"per_page":30,"total_entries":1,"total_pages":1}}
@@ -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:12:49 GMT
4
4
  content-type: application/json; charset=utf-8
5
- x-ratelimit-limit: 2400
6
- x-ratelimit-remaining: 2393
7
- x-ratelimit-reset: 1692705338
5
+ X-RateLimit-Limit: 2400
6
+ X-RateLimit-Remaining: 2393
7
+ X-RateLimit-Reset: 1692705338
8
8
  x-work-with-us: Love automation? So do we! https://dnsimple.com/jobs
9
9
  etag: W/"0049703ea058b06346df4c0e169eac29"
10
10
  cache-control: max-age=0, private, must-revalidate
@@ -12,4 +12,4 @@ x-request-id: fd0334ce-414a-4872-8889-e548e0b1410c
12
12
  x-runtime: 0.030759
13
13
  strict-transport-security: max-age=63072000
14
14
 
15
- {"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"}],"pagination":{"current_page":1,"per_page":30,"total_entries":1,"total_pages":1}}
15
+ {"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"}],"pagination":{"current_page":1,"per_page":30,"total_entries":1,"total_pages":1}}
@@ -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":[{"tld":"ac","tld_type":2,"whois_privacy":false,"auto_renew_only":true,"idn":false,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":false,"dnssec_interface_type":"ds"},{"tld":"academy","tld_type":3,"whois_privacy":true,"auto_renew_only":false,"idn":true,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":true,"dnssec_interface_type":"key"}],"pagination":{"current_page":1,"per_page":2,"total_entries":195,"total_pages":98}}
20
+ {"data":[{"tld":"ac","tld_type":2,"whois_privacy":false,"auto_renew_only":true,"idn":false,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":false,"dnssec_interface_type":"ds","name_server_min":"2","name_server_max":"13"},{"tld":"academy","tld_type":3,"whois_privacy":true,"auto_renew_only":false,"idn":true,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":true,"dnssec_interface_type":"key","name_server_min":"2","name_server_max":"13"}],"pagination":{"current_page":1,"per_page":2,"total_entries":195,"total_pages":98}}
@@ -1,16 +1,16 @@
1
- HTTP/1.1 200 OK
2
- Server: nginx
3
- Date: Mon, 15 Feb 2016 17:06:21 GMT
4
- Content-Type: application/json; charset=utf-8
5
- Connection: keep-alive
6
- Status: 200 OK
7
- X-RateLimit-Limit: 4000
8
- X-RateLimit-Remaining: 3991
9
- X-RateLimit-Reset: 1455559348
10
- ETag: W/"01f1ea26e8e06d8d969bf06678bf7d12"
11
- Cache-Control: max-age=0, private, must-revalidate
12
- X-Request-Id: bc611cd0-d1a9-48d0-b450-c9c86f0d0dcf
13
- X-Runtime: 0.104174
14
- Strict-Transport-Security: max-age=31536000
15
-
16
- {"data":[{"id":1,"url":"https://webhook.test"},{"id":2,"url":"https://another.test"}]}
1
+ HTTP/1.1 200 OK
2
+ Server: nginx
3
+ Date: Mon, 15 Feb 2016 17:06:21 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Connection: keep-alive
6
+ Status: 200 OK
7
+ X-RateLimit-Limit: 4000
8
+ X-RateLimit-Remaining: 3991
9
+ X-RateLimit-Reset: 1455559348
10
+ ETag: W/"01f1ea26e8e06d8d969bf06678bf7d12"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: bc611cd0-d1a9-48d0-b450-c9c86f0d0dcf
13
+ X-Runtime: 0.104174
14
+ Strict-Transport-Security: max-age=31536000
15
+
16
+ {"data":[{"id":1,"url":"https://webhook.test","suppressed_at":null},{"id":2,"url":"https://another.test","suppressed_at":null}]}
@@ -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":"Invalid extended attributes","errors":{"x-accept-ssl-requirement": "it's required", "x-id-number": "invalid number"}}
@@ -1,20 +1,19 @@
1
1
  HTTP/1.1 201 Created
2
2
  Server: nginx
3
- Date: Fri, 09 Dec 2016 19:46:57 GMT
4
- Content-Type: application/json; charset=utf-8
3
+ Date: Sun, 18 Feb 2024 10:46:17 GMT
4
+ Content-Type: application/json
5
+ Content-Length: 120
5
6
  Connection: keep-alive
6
- X-RateLimit-Limit: 2400
7
- X-RateLimit-Remaining: 2394
8
- X-RateLimit-Reset: 1481315245
9
- ETag: W/"179d85ea8a26a3d5dc76e42de2d7918e"
10
- Cache-Control: max-age=0, private, must-revalidate
11
- X-Request-Id: ba6f2707-5df0-4ffa-b91b-51d4460bab8e
12
- X-Runtime: 13.571302
7
+ X-WORK-WITH-US: Love automation? So do we! https://dnsimple.com/jobs
8
+ Cache-Control: no-cache
9
+ X-Request-Id: 3bf33ae7-22f2-473c-8e39-8738d2bcce89
10
+ X-Runtime: 0.006332
11
+ X-Frame-Options: DENY
13
12
  X-Content-Type-Options: nosniff
13
+ X-XSS-Protection: 1; mode=block
14
14
  X-Download-Options: noopen
15
- X-Frame-Options: DENY
16
15
  X-Permitted-Cross-Domain-Policies: none
17
- X-XSS-Protection: 1; mode=block
18
- Strict-Transport-Security: max-age=31536000
16
+ Content-Security-Policy: frame-ancestors 'none'
17
+ Strict-Transport-Security: max-age=63072000
19
18
 
20
- {"data":{"id":1,"domain_id":999,"state":"new","created_at":"2016-12-09T19:46:45Z","updated_at":"2016-12-09T19:46:45Z"}}
19
+ {"data":{"id":43,"domain_id":214,"state":"new","created_at":"2024-02-14T14:40:42Z","updated_at":"2024-02-14T14:40:42Z"}}
@@ -0,0 +1,16 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx
3
+ Date: Wed, 23 Nov 2022 18:05:39 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Connection: keep-alive
6
+ Status: 200 OK
7
+ X-RateLimit-Limit: 2400
8
+ X-RateLimit-Remaining: 2391
9
+ X-RateLimit-Reset: 1458821048
10
+ ETag: W/"cb540984f806b12ac437cc1f76092f90"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: e53ac7b5-0d26-45bc-9226-09c2d34be293
13
+ X-Runtime: 0.192986
14
+ Strict-Transport-Security: max-age=31536000
15
+
16
+ {"data":[{"id":1927,"zone_id":"example.com","parent_id":null,"name":"","content":"ns1.example.com","ttl":3600,"priority":null,"type":"NS","regions":["global"],"system_record":true,"created_at":"2022-11-23T18:05:39Z","updated_at":"2022-11-23T18:05:39Z"},{"id":1928,"zone_id":"example.com","parent_id":null,"name":"","content":"ns2.example.com","ttl":3600,"priority":null,"type":"NS","regions":["global"],"system_record":true,"created_at":"2022-11-23T18:05:39Z","updated_at":"2022-11-23T18:05:39Z"},{"id":1929,"zone_id":"example.com","parent_id":null,"name":"","content":"ns1.foo.bar","ttl":3600,"priority":null,"type":"NS","regions":["global"],"system_record":true,"created_at":"2022-11-23T18:05:39Z","updated_at":"2022-11-23T18:05:39Z"},{"id":1930,"zone_id":"example.com","parent_id":null,"name":"","content":"ns2.foo.bar","ttl":3600,"priority":null,"type":"NS","regions":["global"],"system_record":true,"created_at":"2022-11-23T18:05:39Z","updated_at":"2022-11-23T18:05:39Z"}]}
@@ -12,4 +12,4 @@ X-Request-Id: 15a7f3a5-7ee5-4e36-ac5a-8c21c2e1fffd
12
12
  X-Runtime: 0.141588
13
13
  Strict-Transport-Security: max-age=31536000
14
14
 
15
- {"data":{"user":null,"account":{"id":1,"email":"example-account@example.com","plan_identifier":"dnsimple-professional","created_at":"2015-09-18T23:04:37Z","updated_at":"2016-06-09T20:03:39Z"}}}
15
+ {"data":{"user":null,"account":{"id":1,"email":"example-account@example.com","plan_identifier":"teams-v1-monthly","created_at":"2015-09-18T23:04:37Z","updated_at":"2016-06-09T20:03:39Z"}}}
@@ -12,4 +12,4 @@ X-Request-Id: 15a7f3a5-7ee5-4e36-ac5a-8c21c2e1fffd
12
12
  X-Runtime: 0.141588
13
13
  Strict-Transport-Security: max-age=31536000
14
14
 
15
- {"data":{"user":null,"account":{"id":1,"email":"example-account@example.com","plan_identifier":"dnsimple-professional","created_at":"2015-09-18T23:04:37Z","updated_at":"2016-06-09T20:03:39Z"}}}
15
+ {"data":{"user":null,"account":{"id":1,"email":"example-account@example.com","plan_identifier":"teams-v1-monthly","created_at":"2015-09-18T23:04:37Z","updated_at":"2016-06-09T20:03:39Z"}}}
data/spec/spec_helper.rb CHANGED
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rspec'
3
+ require "rspec"
4
4
 
5
- if ENV['COVERALL']
6
- require 'coveralls'
5
+ if ENV["COVERALL"]
6
+ require "coveralls"
7
7
  Coveralls.wear!
8
8
  end
9
9
 
10
10
  $:.unshift("#{File.dirname(__FILE__)}/lib")
11
- require 'dnsimple'
11
+ require "dnsimple"
12
12
 
13
13
  unless defined?(SPEC_ROOT)
14
14
  SPEC_ROOT = File.expand_path(__dir__)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'webmock/rspec'
3
+ require "webmock/rspec"
4
4
 
5
5
  RSpec.configure do |config|
6
6
  config.before(:suite) do