gandi_v5 0.5.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +69 -5
  3. data/LICENSE.md +2 -6
  4. data/README.md +67 -18
  5. data/lib/gandi_v5.rb +137 -70
  6. data/lib/gandi_v5/billing/info/prepaid.rb +1 -0
  7. data/lib/gandi_v5/data.rb +3 -2
  8. data/lib/gandi_v5/data/converter.rb +3 -2
  9. data/lib/gandi_v5/data/converter/array_of.rb +3 -2
  10. data/lib/gandi_v5/data/converter/integer.rb +3 -2
  11. data/lib/gandi_v5/data/converter/symbol.rb +3 -2
  12. data/lib/gandi_v5/data/converter/time.rb +3 -2
  13. data/lib/gandi_v5/domain.rb +16 -17
  14. data/lib/gandi_v5/domain/availability/product/period.rb +1 -1
  15. data/lib/gandi_v5/domain/contact.rb +5 -5
  16. data/lib/gandi_v5/domain/tld.rb +2 -2
  17. data/lib/gandi_v5/domain/transfer_in.rb +170 -0
  18. data/lib/gandi_v5/domain/transfer_in/availability.rb +51 -0
  19. data/lib/gandi_v5/email.rb +1 -0
  20. data/lib/gandi_v5/email/forward.rb +2 -8
  21. data/lib/gandi_v5/email/mailbox.rb +4 -10
  22. data/lib/gandi_v5/email/slot.rb +11 -3
  23. data/lib/gandi_v5/error/gandi_error.rb +1 -0
  24. data/lib/gandi_v5/live_dns.rb +2 -12
  25. data/lib/gandi_v5/live_dns/domain.rb +340 -29
  26. data/lib/gandi_v5/live_dns/domain/dnssec_key.rb +120 -0
  27. data/lib/gandi_v5/live_dns/domain/record.rb +81 -0
  28. data/lib/gandi_v5/live_dns/domain/snapshot.rb +111 -0
  29. data/lib/gandi_v5/live_dns/domain/tsig_key.rb +74 -0
  30. data/lib/gandi_v5/sharing_space.rb +27 -0
  31. data/lib/gandi_v5/simple_hosting.rb +13 -0
  32. data/lib/gandi_v5/simple_hosting/instance.rb +245 -0
  33. data/lib/gandi_v5/simple_hosting/instance/application.rb +45 -0
  34. data/lib/gandi_v5/simple_hosting/instance/database.rb +20 -0
  35. data/lib/gandi_v5/simple_hosting/instance/language.rb +22 -0
  36. data/lib/gandi_v5/simple_hosting/instance/upgrade.rb +22 -0
  37. data/lib/gandi_v5/simple_hosting/instance/virtual_host.rb +187 -0
  38. data/lib/gandi_v5/simple_hosting/instance/virtual_host/linked_dns_zone.rb +75 -0
  39. data/lib/gandi_v5/version.rb +1 -1
  40. data/spec/.rubocop.yml +9 -9
  41. data/spec/features/list_domain_renewals_spec.rb +16 -0
  42. data/spec/features/list_email_addresses_spec.rb +39 -0
  43. data/spec/fixtures/bodies/GandiV5_Domain/fetch.yml +8 -0
  44. data/spec/fixtures/bodies/GandiV5_Domain_TransferIn/fetch.yml +21 -0
  45. data/spec/fixtures/bodies/GandiV5_Domain_TransferIn_Availability/fetch.yml +10 -0
  46. data/spec/fixtures/bodies/GandiV5_LiveDNS_Domain/fetch.yml +1 -2
  47. data/spec/fixtures/bodies/GandiV5_LiveDNS_Domain/list_tsig.yml +3 -0
  48. data/spec/fixtures/bodies/GandiV5_LiveDNS_Domain/nameservers.yml +3 -0
  49. data/spec/fixtures/bodies/GandiV5_LiveDNS_Domain_DnssecKey/fetch.yml +12 -0
  50. data/spec/fixtures/bodies/GandiV5_LiveDNS_Domain_DnssecKey/list.yml +9 -0
  51. data/spec/fixtures/bodies/{GandiV5_LiveDNS_Zone_Snapshot → GandiV5_LiveDNS_Domain_Snapshot}/fetch.yml +4 -3
  52. data/spec/fixtures/bodies/GandiV5_LiveDNS_Domain_Snapshot/list.yml +5 -0
  53. data/spec/fixtures/bodies/GandiV5_LiveDNS_Domain_TsigKey/fetch.yml +9 -0
  54. data/spec/fixtures/bodies/GandiV5_LiveDNS_Domain_TsigKey/list.yml +4 -0
  55. data/spec/fixtures/bodies/GandiV5_SimpleHosting_Instance/fetch.yml +80 -0
  56. data/spec/fixtures/bodies/GandiV5_SimpleHosting_Instance/list.yml +38 -0
  57. data/spec/fixtures/bodies/GandiV5_SimpleHosting_Instance_VirtualHost/fetch.yml +26 -0
  58. data/spec/fixtures/bodies/GandiV5_SimpleHosting_Instance_VirtualHost/list.yml +18 -0
  59. data/spec/fixtures/vcr/Examples/List_domain_renewals.yml +54 -0
  60. data/spec/fixtures/vcr/Examples/List_email_addresses.yml +103 -0
  61. data/spec/units/gandi_v5/domain/transfer_in/availability_spec.rb +49 -0
  62. data/spec/units/gandi_v5/domain/transfer_in_spec.rb +143 -0
  63. data/spec/units/gandi_v5/domain_spec.rb +13 -39
  64. data/spec/units/gandi_v5/email/forward_spec.rb +5 -34
  65. data/spec/units/gandi_v5/email/mailbox_spec.rb +4 -34
  66. data/spec/units/gandi_v5/email/slot_spec.rb +10 -2
  67. data/spec/units/gandi_v5/live_dns/domain/dnssec_key_spec.rb +128 -0
  68. data/spec/units/gandi_v5/live_dns/{record_set_spec.rb → domain/record_spec.rb} +1 -1
  69. data/spec/units/gandi_v5/live_dns/domain/snapshot_spec.rb +101 -0
  70. data/spec/units/gandi_v5/live_dns/domain/tsig_key_spec.rb +78 -0
  71. data/spec/units/gandi_v5/live_dns/domain_spec.rb +297 -118
  72. data/spec/units/gandi_v5/live_dns_spec.rb +0 -12
  73. data/spec/units/gandi_v5/sharing_space_spec.rb +4 -0
  74. data/spec/units/gandi_v5/simple_hosting/instance/application_spec.rb +37 -0
  75. data/spec/units/gandi_v5/simple_hosting/instance/database_spec.rb +4 -0
  76. data/spec/units/gandi_v5/simple_hosting/instance/language_spec.rb +4 -0
  77. data/spec/units/gandi_v5/simple_hosting/instance/upgrade_spec.rb +4 -0
  78. data/spec/units/gandi_v5/simple_hosting/instance/virtual_host/linked_dns_zone_spec.rb +50 -0
  79. data/spec/units/gandi_v5/simple_hosting/instance/virtual_host_spec.rb +199 -0
  80. data/spec/units/gandi_v5/simple_hosting/instance_spec.rb +182 -0
  81. data/spec/units/gandi_v5/simple_hosting_spec.rb +9 -0
  82. data/spec/units/gandi_v5_spec.rb +111 -14
  83. metadata +174 -53
  84. data/.gitignore +0 -26
  85. data/.rspec +0 -3
  86. data/.rubocop.yml +0 -30
  87. data/.travis.yml +0 -38
  88. data/FUNDING.yml +0 -10
  89. data/Gemfile +0 -6
  90. data/Guardfile +0 -39
  91. data/Rakefile +0 -3
  92. data/bin/console +0 -13
  93. data/gandi_v5.gemspec +0 -42
  94. data/lib/gandi_v5/domain/sharing_space.rb +0 -21
  95. data/lib/gandi_v5/live_dns/has_zone_records.rb +0 -153
  96. data/lib/gandi_v5/live_dns/record_set.rb +0 -79
  97. data/lib/gandi_v5/live_dns/zone.rb +0 -160
  98. data/lib/gandi_v5/live_dns/zone/snapshot.rb +0 -81
  99. data/spec/features/domain_spec.rb +0 -45
  100. data/spec/features/livedns_domain_spec.rb +0 -8
  101. data/spec/features/livedns_zone_spec.rb +0 -44
  102. data/spec/features/mailbox_spec.rb +0 -18
  103. data/spec/fixtures/bodies/GandiV5_LiveDNS_Zone/fetch.yml +0 -11
  104. data/spec/fixtures/bodies/GandiV5_LiveDNS_Zone/list.yml +0 -11
  105. data/spec/fixtures/bodies/GandiV5_LiveDNS_Zone_Snapshot/list.yml +0 -3
  106. data/spec/fixtures/vcr/Domain_features/List_domains.yml +0 -55
  107. data/spec/fixtures/vcr/Domain_features/Renew_domain.yml +0 -133
  108. data/spec/fixtures/vcr/LiveDNS_Domain_features/List_domains.yml +0 -32
  109. data/spec/fixtures/vcr/LiveDNS_Zone_features/List_zones.yml +0 -42
  110. data/spec/fixtures/vcr/LiveDNS_Zone_features/Make_and_save_snapshot.yml +0 -72
  111. data/spec/fixtures/vcr/LiveDNS_Zone_features/Save_zone_to_file.yml +0 -28
  112. data/spec/fixtures/vcr/Mailbox_features/List_mailboxes.yml +0 -39
  113. data/spec/units/gandi_v5/domain/sharing_space_spec.rb +0 -4
  114. data/spec/units/gandi_v5/live_dns/zone/snapshot_spec.rb +0 -66
  115. data/spec/units/gandi_v5/live_dns/zone_spec.rb +0 -347
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe GandiV5::SimpleHosting do
4
+ it '.instances' do
5
+ returns = double Array
6
+ expect(GandiV5::SimpleHosting::Instance).to receive(:list).and_return(returns)
7
+ expect(described_class.instances).to be returns
8
+ end
9
+ end
@@ -57,8 +57,10 @@ describe GandiV5 do
57
57
  response_data = { 'hello' => 'world' }
58
58
  response = double RestClient::Response, body: response_data.to_json, headers: { content_type: 'application/json' }
59
59
  expect(described_class).to receive(:prepare_headers)
60
- expect(RestClient).to receive(method).with('url', hash_including(accept: 'application/json')).and_return(response)
61
- expect(described_class.send(method, 'url', accept: 'application/json')).to match_array [response, response_data]
60
+ expect(RestClient).to receive(method).with('url', hash_including(accept: 'application/json'))
61
+ .and_return(response)
62
+ expect(described_class.send(method, 'url', accept: 'application/json'))
63
+ .to match_array [response, response_data]
62
64
  end
63
65
 
64
66
  it 'As text' do
@@ -75,7 +77,7 @@ describe GandiV5 do
75
77
  end
76
78
 
77
79
  it 'Adds authentication header' do
78
- expect(RestClient).to receive(method).with(anything, hash_including(Authorization: 'Apikey abdce12345'))
80
+ expect(RestClient).to receive(method).with(anything, hash_including(authorization: 'Apikey abdce12345'))
79
81
  .and_return(response)
80
82
  expect(described_class).to receive(:parse_response)
81
83
  expect(described_class.send(method, 'https://api.gandi.net/v5/')).to match_array [response, nil]
@@ -146,7 +148,7 @@ describe GandiV5 do
146
148
  end
147
149
 
148
150
  it 'Adds authentication header' do
149
- expect(RestClient).to receive(method).with(any_args, hash_including(Authorization: 'Apikey abdce12345'))
151
+ expect(RestClient).to receive(method).with(any_args, hash_including(authorization: 'Apikey abdce12345'))
150
152
  .and_return(response)
151
153
  expect(described_class).to receive(:parse_response)
152
154
  expect(described_class.send(method, 'https://api.gandi.net/v5/', payload)).to match_array [response, nil]
@@ -168,20 +170,23 @@ describe GandiV5 do
168
170
  end
169
171
  end
170
172
 
171
- describe 'Generates correct authorisation header' do
172
- it 'When requesting from main V5 API' do
173
- expect(described_class.send(:authorisation_header, 'https://api.gandi.net/v5/example'))
174
- .to eq(Authorization: "Apikey #{api_key}")
173
+ describe 'Prepares headers' do
174
+ it 'Sets accept it not present' do
175
+ headers = {}
176
+ described_class.send(:prepare_headers, headers, GandiV5::BASE)
177
+ expect(headers[:accept]).to eq 'application/json'
175
178
  end
176
179
 
177
- it 'When requesting from main LiveDNS V5 API' do
178
- expect(described_class.send(:authorisation_header, 'https://dns.api.gandi.net/api/v5/example'))
179
- .to eq('X-Api-Key': api_key)
180
+ it 'Leaves accept alone if present' do
181
+ headers = { accept: 'leave/alone' }
182
+ described_class.send(:prepare_headers, headers, GandiV5::BASE)
183
+ expect(headers[:accept]).to eq 'leave/alone'
180
184
  end
181
185
 
182
- it 'Raises ArgumentError when requesting an unknown url' do
183
- expect { described_class.send(:authorisation_header, 'https://unknown.example.com') }
184
- .to raise_error ArgumentError, 'Don\'t know how to authorise for url: https://unknown.example.com'
186
+ it 'Sets authorization' do
187
+ headers = {}
188
+ described_class.send(:prepare_headers, headers, GandiV5::BASE)
189
+ expect(headers[:authorization]).to eq "Apikey #{api_key}"
185
190
  end
186
191
  end
187
192
 
@@ -238,4 +243,96 @@ describe GandiV5 do
238
243
  .to raise_error GandiV5::Error::GandiError, 'field: message'
239
244
  end
240
245
  end
246
+
247
+ describe '.paginated_get' do
248
+ let(:url) { "#{GandiV5::BASE}test/url" }
249
+ let(:do_nothing) { ->(_this_data) { nil } }
250
+
251
+ it 'Keeps fetching until getting a partial list' do
252
+ headers1 = { params: { 'page' => 1, 'per_page' => 2 } }
253
+ headers2 = { params: { 'page' => 2, 'per_page' => 2 } }
254
+ expect(GandiV5).to receive(:get).with(url, headers1)
255
+ .ordered
256
+ .and_return([nil, %i[a b]])
257
+ expect(GandiV5).to receive(:get).with(url, headers2)
258
+ .ordered
259
+ .and_return([nil, %i[c]])
260
+
261
+ described_class.paginated_get(url, (1..2), 2, &do_nothing)
262
+ end
263
+
264
+ it 'Keeps fetching until getting an empty list' do
265
+ headers1 = { params: { 'page' => 1, 'per_page' => 2 } }
266
+ headers2 = { params: { 'page' => 2, 'per_page' => 2 } }
267
+ expect(GandiV5).to receive(:get).with(url, headers1)
268
+ .ordered
269
+ .and_return([nil, %i[a b]])
270
+ expect(GandiV5).to receive(:get).with(url, headers2)
271
+ .ordered
272
+ .and_return([nil, []])
273
+
274
+ described_class.paginated_get(url, (1..2), 2, &do_nothing)
275
+ end
276
+
277
+ it 'Passes per_page option' do
278
+ headers = { params: { 'page' => 1, 'per_page' => 100 } }
279
+ expect(GandiV5).to receive(:get).with(url, headers)
280
+ .and_return([nil, []])
281
+ described_class.paginated_get(url, 1, 100, &do_nothing)
282
+ end
283
+
284
+ it 'Passes on other params' do
285
+ headers = { params: { 'page' => 1, 'per_page' => 100, 'custom' => 'value' } }
286
+ expect(GandiV5).to receive(:get).with(url, headers)
287
+ .and_return([nil, []])
288
+ described_class.paginated_get(url, 1, 100, params: { custom: 'value' }, &do_nothing)
289
+ end
290
+
291
+ it 'Passes on other headers' do
292
+ headers = { params: { 'page' => 1, 'per_page' => 100 }, custom: :value }
293
+ expect(GandiV5).to receive(:get).with(url, headers)
294
+ .and_return([nil, []])
295
+ described_class.paginated_get(url, 1, 100, custom: :value, &do_nothing)
296
+ end
297
+
298
+ describe 'Honors passed pages' do
299
+ it 'Has an each method' do
300
+ headers1 = { params: { 'page' => 1, 'per_page' => 2 } }
301
+ headers2 = { params: { 'page' => 2, 'per_page' => 2 } }
302
+ expect(GandiV5).to receive(:get).with(url, headers1)
303
+ .ordered
304
+ .and_return([nil, %i[a b]])
305
+ expect(GandiV5).to receive(:get).with(url, headers2)
306
+ .ordered
307
+ .and_return([nil, %i[c d]])
308
+
309
+ described_class.paginated_get(url, (1..2), 2, &do_nothing)
310
+ end
311
+
312
+ it 'Positive integer' do
313
+ headers = { params: { 'page' => 3, 'per_page' => 2 } }
314
+ expect(GandiV5).to receive(:get).with(url, headers)
315
+ .ordered
316
+ .and_return([nil, %i[a b c]])
317
+ described_class.paginated_get(url, 3, 2, &do_nothing)
318
+ end
319
+
320
+ it 'Nonpositive integer' do
321
+ expect { described_class.paginated_get(url, -3, 2, &do_nothing) }.to \
322
+ raise_error ArgumentError, 'page must be positive'
323
+ end
324
+ end
325
+
326
+ it 'Relies on caller to build their list' do
327
+ this_data = [:a]
328
+ expect(GandiV5).to receive(:get).and_return([nil, this_data])
329
+ expect { |b| described_class.paginated_get(url, 1, 100, &b) }.to yield_with_args(this_data)
330
+ end
331
+
332
+ it 'Requires a block' do
333
+ allow(GandiV5).to receive(:get).and_return([nil, [:a]])
334
+
335
+ expect { described_class.paginated_get(url) }.to raise_error LocalJumpError
336
+ end
337
+ end
241
338
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gandi_v5
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Gauld
8
- autorequire:
9
- bindir: bin
8
+ autorequire:
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-07 00:00:00.000000000 Z
11
+ date: 2020-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -202,28 +202,28 @@ dependencies:
202
202
  requirements:
203
203
  - - "~>"
204
204
  - !ruby/object:Gem::Version
205
- version: '0.73'
205
+ version: '0.87'
206
206
  type: :development
207
207
  prerelease: false
208
208
  version_requirements: !ruby/object:Gem::Requirement
209
209
  requirements:
210
210
  - - "~>"
211
211
  - !ruby/object:Gem::Version
212
- version: '0.73'
212
+ version: '0.87'
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: rubocop-performance
215
215
  requirement: !ruby/object:Gem::Requirement
216
216
  requirements:
217
217
  - - "~>"
218
218
  - !ruby/object:Gem::Version
219
- version: '1.1'
219
+ version: '1.7'
220
220
  type: :development
221
221
  prerelease: false
222
222
  version_requirements: !ruby/object:Gem::Requirement
223
223
  requirements:
224
224
  - - "~>"
225
225
  - !ruby/object:Gem::Version
226
- version: '1.1'
226
+ version: '1.7'
227
227
  - !ruby/object:Gem::Dependency
228
228
  name: simplecov
229
229
  requirement: !ruby/object:Gem::Requirement
@@ -280,27 +280,19 @@ dependencies:
280
280
  - - "~>"
281
281
  - !ruby/object:Gem::Version
282
282
  version: '3.6'
283
- description:
283
+ description:
284
284
  email:
285
- - robert@robertgauld.co.uk
286
- executables:
287
- - console
285
+ - robert@robertgauld.uk
286
+ executables: []
288
287
  extensions: []
289
- extra_rdoc_files: []
288
+ extra_rdoc_files:
289
+ - README.md
290
+ - CHANGELOG.md
291
+ - LICENSE.md
290
292
  files:
291
- - ".gitignore"
292
- - ".rspec"
293
- - ".rubocop.yml"
294
- - ".travis.yml"
295
293
  - CHANGELOG.md
296
- - FUNDING.yml
297
- - Gemfile
298
- - Guardfile
299
294
  - LICENSE.md
300
295
  - README.md
301
- - Rakefile
302
- - bin/console
303
- - gandi_v5.gemspec
304
296
  - lib/gandi_v5.rb
305
297
  - lib/gandi_v5/billing.rb
306
298
  - lib/gandi_v5/billing/info.rb
@@ -324,8 +316,9 @@ files:
324
316
  - lib/gandi_v5/domain/live_dns.rb
325
317
  - lib/gandi_v5/domain/renewal_information.rb
326
318
  - lib/gandi_v5/domain/restore_information.rb
327
- - lib/gandi_v5/domain/sharing_space.rb
328
319
  - lib/gandi_v5/domain/tld.rb
320
+ - lib/gandi_v5/domain/transfer_in.rb
321
+ - lib/gandi_v5/domain/transfer_in/availability.rb
329
322
  - lib/gandi_v5/email.rb
330
323
  - lib/gandi_v5/email/forward.rb
331
324
  - lib/gandi_v5/email/mailbox.rb
@@ -336,18 +329,25 @@ files:
336
329
  - lib/gandi_v5/error/gandi_error.rb
337
330
  - lib/gandi_v5/live_dns.rb
338
331
  - lib/gandi_v5/live_dns/domain.rb
339
- - lib/gandi_v5/live_dns/has_zone_records.rb
340
- - lib/gandi_v5/live_dns/record_set.rb
341
- - lib/gandi_v5/live_dns/zone.rb
342
- - lib/gandi_v5/live_dns/zone/snapshot.rb
332
+ - lib/gandi_v5/live_dns/domain/dnssec_key.rb
333
+ - lib/gandi_v5/live_dns/domain/record.rb
334
+ - lib/gandi_v5/live_dns/domain/snapshot.rb
335
+ - lib/gandi_v5/live_dns/domain/tsig_key.rb
343
336
  - lib/gandi_v5/organization.rb
344
337
  - lib/gandi_v5/organization/customer.rb
338
+ - lib/gandi_v5/sharing_space.rb
339
+ - lib/gandi_v5/simple_hosting.rb
340
+ - lib/gandi_v5/simple_hosting/instance.rb
341
+ - lib/gandi_v5/simple_hosting/instance/application.rb
342
+ - lib/gandi_v5/simple_hosting/instance/database.rb
343
+ - lib/gandi_v5/simple_hosting/instance/language.rb
344
+ - lib/gandi_v5/simple_hosting/instance/upgrade.rb
345
+ - lib/gandi_v5/simple_hosting/instance/virtual_host.rb
346
+ - lib/gandi_v5/simple_hosting/instance/virtual_host/linked_dns_zone.rb
345
347
  - lib/gandi_v5/version.rb
346
348
  - spec/.rubocop.yml
347
- - spec/features/domain_spec.rb
348
- - spec/features/livedns_domain_spec.rb
349
- - spec/features/livedns_zone_spec.rb
350
- - spec/features/mailbox_spec.rb
349
+ - spec/features/list_domain_renewals_spec.rb
350
+ - spec/features/list_email_addresses_spec.rb
351
351
  - spec/fixtures/bodies/GandiV5_Billing/info.yml
352
352
  - spec/fixtures/bodies/GandiV5_Domain/fetch.yml
353
353
  - spec/fixtures/bodies/GandiV5_Domain/fetch_contacts.yml
@@ -360,6 +360,8 @@ files:
360
360
  - spec/fixtures/bodies/GandiV5_Domain_Availability/fetch.yml
361
361
  - spec/fixtures/bodies/GandiV5_Domain_TLD/fetch.yml
362
362
  - spec/fixtures/bodies/GandiV5_Domain_TLD/list.yml
363
+ - spec/fixtures/bodies/GandiV5_Domain_TransferIn/fetch.yml
364
+ - spec/fixtures/bodies/GandiV5_Domain_TransferIn_Availability/fetch.yml
363
365
  - spec/fixtures/bodies/GandiV5_Email_Forward/list.yml
364
366
  - spec/fixtures/bodies/GandiV5_Email_Mailbox/fetch.yml
365
367
  - spec/fixtures/bodies/GandiV5_Email_Mailbox/list.yml
@@ -367,20 +369,23 @@ files:
367
369
  - spec/fixtures/bodies/GandiV5_Email_Slot/list.yml
368
370
  - spec/fixtures/bodies/GandiV5_LiveDNS_Domain/fetch.yml
369
371
  - spec/fixtures/bodies/GandiV5_LiveDNS_Domain/list.yml
370
- - spec/fixtures/bodies/GandiV5_LiveDNS_Zone/fetch.yml
371
- - spec/fixtures/bodies/GandiV5_LiveDNS_Zone/list.yml
372
- - spec/fixtures/bodies/GandiV5_LiveDNS_Zone_Snapshot/fetch.yml
373
- - spec/fixtures/bodies/GandiV5_LiveDNS_Zone_Snapshot/list.yml
372
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain/list_tsig.yml
373
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain/nameservers.yml
374
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_DnssecKey/fetch.yml
375
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_DnssecKey/list.yml
376
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_Snapshot/fetch.yml
377
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_Snapshot/list.yml
378
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_TsigKey/fetch.yml
379
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_TsigKey/list.yml
374
380
  - spec/fixtures/bodies/GandiV5_Organization/fetch.yml
375
381
  - spec/fixtures/bodies/GandiV5_Organization/list.yml
376
382
  - spec/fixtures/bodies/GandiV5_Organization_Customer/list.yml
377
- - spec/fixtures/vcr/Domain_features/List_domains.yml
378
- - spec/fixtures/vcr/Domain_features/Renew_domain.yml
379
- - spec/fixtures/vcr/LiveDNS_Domain_features/List_domains.yml
380
- - spec/fixtures/vcr/LiveDNS_Zone_features/List_zones.yml
381
- - spec/fixtures/vcr/LiveDNS_Zone_features/Make_and_save_snapshot.yml
382
- - spec/fixtures/vcr/LiveDNS_Zone_features/Save_zone_to_file.yml
383
- - spec/fixtures/vcr/Mailbox_features/List_mailboxes.yml
383
+ - spec/fixtures/bodies/GandiV5_SimpleHosting_Instance/fetch.yml
384
+ - spec/fixtures/bodies/GandiV5_SimpleHosting_Instance/list.yml
385
+ - spec/fixtures/bodies/GandiV5_SimpleHosting_Instance_VirtualHost/fetch.yml
386
+ - spec/fixtures/bodies/GandiV5_SimpleHosting_Instance_VirtualHost/list.yml
387
+ - spec/fixtures/vcr/Examples/List_domain_renewals.yml
388
+ - spec/fixtures/vcr/Examples/List_email_addresses.yml
384
389
  - spec/spec_helper.rb
385
390
  - spec/test.env
386
391
  - spec/units/gandi_v5/billing/info/prepaid_spec.rb
@@ -404,8 +409,9 @@ files:
404
409
  - spec/units/gandi_v5/domain/live_dns_spec.rb
405
410
  - spec/units/gandi_v5/domain/renewal_information_spec.rb
406
411
  - spec/units/gandi_v5/domain/restore_information_spec.rb
407
- - spec/units/gandi_v5/domain/sharing_space_spec.rb
408
412
  - spec/units/gandi_v5/domain/tld_spec.rb
413
+ - spec/units/gandi_v5/domain/transfer_in/availability_spec.rb
414
+ - spec/units/gandi_v5/domain/transfer_in_spec.rb
409
415
  - spec/units/gandi_v5/domain_spec.rb
410
416
  - spec/units/gandi_v5/email/forward_spec.rb
411
417
  - spec/units/gandi_v5/email/mailbox/responder_spec.rb
@@ -414,20 +420,42 @@ files:
414
420
  - spec/units/gandi_v5/email/slot_spec.rb
415
421
  - spec/units/gandi_v5/error/gandi_error_spec.rb
416
422
  - spec/units/gandi_v5/error_spec.rb
423
+ - spec/units/gandi_v5/live_dns/domain/dnssec_key_spec.rb
424
+ - spec/units/gandi_v5/live_dns/domain/record_spec.rb
425
+ - spec/units/gandi_v5/live_dns/domain/snapshot_spec.rb
426
+ - spec/units/gandi_v5/live_dns/domain/tsig_key_spec.rb
417
427
  - spec/units/gandi_v5/live_dns/domain_spec.rb
418
- - spec/units/gandi_v5/live_dns/record_set_spec.rb
419
- - spec/units/gandi_v5/live_dns/zone/snapshot_spec.rb
420
- - spec/units/gandi_v5/live_dns/zone_spec.rb
421
428
  - spec/units/gandi_v5/live_dns_spec.rb
422
429
  - spec/units/gandi_v5/organization/customer_spec.rb
423
430
  - spec/units/gandi_v5/organization_spec.rb
431
+ - spec/units/gandi_v5/sharing_space_spec.rb
432
+ - spec/units/gandi_v5/simple_hosting/instance/application_spec.rb
433
+ - spec/units/gandi_v5/simple_hosting/instance/database_spec.rb
434
+ - spec/units/gandi_v5/simple_hosting/instance/language_spec.rb
435
+ - spec/units/gandi_v5/simple_hosting/instance/upgrade_spec.rb
436
+ - spec/units/gandi_v5/simple_hosting/instance/virtual_host/linked_dns_zone_spec.rb
437
+ - spec/units/gandi_v5/simple_hosting/instance/virtual_host_spec.rb
438
+ - spec/units/gandi_v5/simple_hosting/instance_spec.rb
439
+ - spec/units/gandi_v5/simple_hosting_spec.rb
424
440
  - spec/units/gandi_v5_spec.rb
425
441
  homepage: https://github.com/robertgauld/gandi_v5
426
442
  licenses:
427
443
  - BSD 3 clause
428
- metadata: {}
429
- post_install_message:
430
- rdoc_options: []
444
+ metadata:
445
+ bug_tracker_uri: https://github.com/robertgauld/gandi_v5/issues
446
+ changelog_uri: https://github.com/robertgauld/gandi_v5/blob/main/CHANGELOG.md
447
+ documentation_uri: https://rubydoc.info/github/robertgauld/gandi_v5/main
448
+ homepage_uri: https://github.com/robertgauld/gandi_v5
449
+ source_code_uri: https://github.com/robertgauld/gandi_v5
450
+ post_install_message:
451
+ rdoc_options:
452
+ - "--title"
453
+ - gandi_v5 - Make use of Gandi's V5 API.
454
+ - "--main"
455
+ - README.md
456
+ - "--line-numbers"
457
+ - "--inline-source"
458
+ - "--quiet"
431
459
  require_paths:
432
460
  - lib
433
461
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -441,8 +469,101 @@ required_rubygems_version: !ruby/object:Gem::Requirement
441
469
  - !ruby/object:Gem::Version
442
470
  version: 2.6.14
443
471
  requirements: []
444
- rubygems_version: 3.1.2
445
- signing_key:
472
+ rubygems_version: 3.2.3
473
+ signing_key:
446
474
  specification_version: 4
447
475
  summary: Make use of Gandi's V5 API.
448
- test_files: []
476
+ test_files:
477
+ - spec/.rubocop.yml
478
+ - spec/features/list_domain_renewals_spec.rb
479
+ - spec/features/list_email_addresses_spec.rb
480
+ - spec/fixtures/bodies/GandiV5_Billing/info.yml
481
+ - spec/fixtures/bodies/GandiV5_Domain/fetch.yml
482
+ - spec/fixtures/bodies/GandiV5_Domain/fetch_contacts.yml
483
+ - spec/fixtures/bodies/GandiV5_Domain/fetch_glue_records.yml
484
+ - spec/fixtures/bodies/GandiV5_Domain/fetch_livedns.yml
485
+ - spec/fixtures/bodies/GandiV5_Domain/fetch_name_servers.yml
486
+ - spec/fixtures/bodies/GandiV5_Domain/fetch_renewal_info.yml
487
+ - spec/fixtures/bodies/GandiV5_Domain/fetch_restore_info.yml
488
+ - spec/fixtures/bodies/GandiV5_Domain/list.yml
489
+ - spec/fixtures/bodies/GandiV5_Domain_Availability/fetch.yml
490
+ - spec/fixtures/bodies/GandiV5_Domain_TLD/fetch.yml
491
+ - spec/fixtures/bodies/GandiV5_Domain_TLD/list.yml
492
+ - spec/fixtures/bodies/GandiV5_Domain_TransferIn/fetch.yml
493
+ - spec/fixtures/bodies/GandiV5_Domain_TransferIn_Availability/fetch.yml
494
+ - spec/fixtures/bodies/GandiV5_Email_Forward/list.yml
495
+ - spec/fixtures/bodies/GandiV5_Email_Mailbox/fetch.yml
496
+ - spec/fixtures/bodies/GandiV5_Email_Mailbox/list.yml
497
+ - spec/fixtures/bodies/GandiV5_Email_Slot/fetch.yml
498
+ - spec/fixtures/bodies/GandiV5_Email_Slot/list.yml
499
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain/fetch.yml
500
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain/list.yml
501
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain/list_tsig.yml
502
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain/nameservers.yml
503
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_DnssecKey/fetch.yml
504
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_DnssecKey/list.yml
505
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_Snapshot/fetch.yml
506
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_Snapshot/list.yml
507
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_TsigKey/fetch.yml
508
+ - spec/fixtures/bodies/GandiV5_LiveDNS_Domain_TsigKey/list.yml
509
+ - spec/fixtures/bodies/GandiV5_Organization/fetch.yml
510
+ - spec/fixtures/bodies/GandiV5_Organization/list.yml
511
+ - spec/fixtures/bodies/GandiV5_Organization_Customer/list.yml
512
+ - spec/fixtures/bodies/GandiV5_SimpleHosting_Instance/fetch.yml
513
+ - spec/fixtures/bodies/GandiV5_SimpleHosting_Instance/list.yml
514
+ - spec/fixtures/bodies/GandiV5_SimpleHosting_Instance_VirtualHost/fetch.yml
515
+ - spec/fixtures/bodies/GandiV5_SimpleHosting_Instance_VirtualHost/list.yml
516
+ - spec/fixtures/vcr/Examples/List_domain_renewals.yml
517
+ - spec/fixtures/vcr/Examples/List_email_addresses.yml
518
+ - spec/spec_helper.rb
519
+ - spec/test.env
520
+ - spec/units/gandi_v5/billing/info/prepaid_spec.rb
521
+ - spec/units/gandi_v5/billing/info_spec.rb
522
+ - spec/units/gandi_v5/billing_spec.rb
523
+ - spec/units/gandi_v5/data/converter/array_of_spec.rb
524
+ - spec/units/gandi_v5/data/converter/integer_spec.rb
525
+ - spec/units/gandi_v5/data/converter/symbol_spec.rb
526
+ - spec/units/gandi_v5/data/converter/time_spec.rb
527
+ - spec/units/gandi_v5/data/converter_spec.rb
528
+ - spec/units/gandi_v5/data_spec.rb
529
+ - spec/units/gandi_v5/domain/auto_renew_spec.rb
530
+ - spec/units/gandi_v5/domain/availability/product/period_spec.rb
531
+ - spec/units/gandi_v5/domain/availability/product/price_spec.rb
532
+ - spec/units/gandi_v5/domain/availability/product_spec.rb
533
+ - spec/units/gandi_v5/domain/availability/tax_spec.rb
534
+ - spec/units/gandi_v5/domain/availability_spec.rb
535
+ - spec/units/gandi_v5/domain/contact_spec.rb
536
+ - spec/units/gandi_v5/domain/contract_spec.rb
537
+ - spec/units/gandi_v5/domain/dates_spec.rb
538
+ - spec/units/gandi_v5/domain/live_dns_spec.rb
539
+ - spec/units/gandi_v5/domain/renewal_information_spec.rb
540
+ - spec/units/gandi_v5/domain/restore_information_spec.rb
541
+ - spec/units/gandi_v5/domain/tld_spec.rb
542
+ - spec/units/gandi_v5/domain/transfer_in/availability_spec.rb
543
+ - spec/units/gandi_v5/domain/transfer_in_spec.rb
544
+ - spec/units/gandi_v5/domain_spec.rb
545
+ - spec/units/gandi_v5/email/forward_spec.rb
546
+ - spec/units/gandi_v5/email/mailbox/responder_spec.rb
547
+ - spec/units/gandi_v5/email/mailbox_spec.rb
548
+ - spec/units/gandi_v5/email/offer_spec.rb
549
+ - spec/units/gandi_v5/email/slot_spec.rb
550
+ - spec/units/gandi_v5/error/gandi_error_spec.rb
551
+ - spec/units/gandi_v5/error_spec.rb
552
+ - spec/units/gandi_v5/live_dns/domain/dnssec_key_spec.rb
553
+ - spec/units/gandi_v5/live_dns/domain/record_spec.rb
554
+ - spec/units/gandi_v5/live_dns/domain/snapshot_spec.rb
555
+ - spec/units/gandi_v5/live_dns/domain/tsig_key_spec.rb
556
+ - spec/units/gandi_v5/live_dns/domain_spec.rb
557
+ - spec/units/gandi_v5/live_dns_spec.rb
558
+ - spec/units/gandi_v5/organization/customer_spec.rb
559
+ - spec/units/gandi_v5/organization_spec.rb
560
+ - spec/units/gandi_v5/sharing_space_spec.rb
561
+ - spec/units/gandi_v5/simple_hosting/instance/application_spec.rb
562
+ - spec/units/gandi_v5/simple_hosting/instance/database_spec.rb
563
+ - spec/units/gandi_v5/simple_hosting/instance/language_spec.rb
564
+ - spec/units/gandi_v5/simple_hosting/instance/upgrade_spec.rb
565
+ - spec/units/gandi_v5/simple_hosting/instance/virtual_host/linked_dns_zone_spec.rb
566
+ - spec/units/gandi_v5/simple_hosting/instance/virtual_host_spec.rb
567
+ - spec/units/gandi_v5/simple_hosting/instance_spec.rb
568
+ - spec/units/gandi_v5/simple_hosting_spec.rb
569
+ - spec/units/gandi_v5_spec.rb