dnsimple 4.3.0 → 4.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -0
- data/.rubocop_dnsimple.yml +28 -8
- data/.travis.yml +12 -7
- data/CHANGELOG.md +7 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/lib/dnsimple/client.rb +1 -1
- data/lib/dnsimple/client/certificates.rb +185 -28
- data/lib/dnsimple/client/registrar.rb +5 -5
- data/lib/dnsimple/struct.rb +2 -0
- data/lib/dnsimple/struct/certificate.rb +9 -0
- data/lib/dnsimple/struct/certificate_purchase.rb +25 -0
- data/lib/dnsimple/struct/certificate_renewal.rb +28 -0
- data/lib/dnsimple/struct/domain_registration.rb +0 -3
- data/lib/dnsimple/struct/domain_renewal.rb +0 -3
- data/lib/dnsimple/struct/domain_transfer.rb +0 -3
- data/lib/dnsimple/struct/extended_attribute.rb +1 -1
- data/lib/dnsimple/struct/service.rb +1 -1
- data/lib/dnsimple/struct/whoami.rb +2 -2
- data/lib/dnsimple/version.rb +1 -1
- data/spec/dnsimple/client/certificates_spec.rb +225 -1
- data/spec/dnsimple/client/collaborators_spec.rb +1 -1
- data/spec/dnsimple/client/contacts_spec.rb +1 -1
- data/spec/dnsimple/client/domains_delegation_signer_records_spec.rb +1 -1
- data/spec/dnsimple/client/domains_dnssec_spec.rb +2 -2
- data/spec/dnsimple/client/domains_email_forwards_spec.rb +1 -1
- data/spec/dnsimple/client/domains_pushes_spec.rb +1 -1
- data/spec/dnsimple/client/domains_spec.rb +3 -3
- data/spec/dnsimple/client/registrar_spec.rb +3 -3
- data/spec/dnsimple/client/registrar_whois_privacy_spec.rb +3 -3
- data/spec/dnsimple/client/services_spec.rb +1 -1
- data/spec/dnsimple/client/tlds_spec.rb +7 -7
- data/spec/dnsimple/client/zones_records_spec.rb +2 -2
- data/spec/dnsimple/client/zones_spec.rb +2 -2
- data/spec/fixtures.http/{transferDomainOut → authorizeDomainTransferOut}/success.http +0 -0
- data/spec/fixtures.http/getCertificate/success.http +1 -1
- data/spec/fixtures.http/issueLetsencryptCertificate/success.http +21 -0
- data/spec/fixtures.http/issueRenewalLetsencryptCertificate/success.http +21 -0
- data/spec/fixtures.http/listCertificates/success.http +1 -1
- data/spec/fixtures.http/purchaseLetsencryptCertificate/success.http +21 -0
- data/spec/fixtures.http/purchaseRenewalLetsencryptCertificate/success.http +21 -0
- data/spec/fixtures.http/whoami/success-account.http +1 -1
- data/spec/fixtures.http/whoami/success-user.http +1 -1
- data/spec/fixtures.http/whoami/success.http +1 -1
- metadata +15 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5798dd92561074094a81017acdd5337d2497e6b0
|
4
|
+
data.tar.gz: cde903898b98b7d316d0542f7e9257de64f5196a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc7c8c73aa1deace9034c3d5e4f8a392c0dbd966b73ff28c1771f581614f6efbe74e331b01225552513c63d006637f24d3df07ac68b44940aa9ada62d0a99c99
|
7
|
+
data.tar.gz: 6c1cc1d2121ccbbc316bcd55a99d3c4fca2a00410298c56f69bbc22b925ce0cee1b46bc30ed97467d202183a690982b61c49ad3d84fefecbb1800b91394fe924
|
data/.rubocop.yml
CHANGED
@@ -2,6 +2,11 @@ inherit_from:
|
|
2
2
|
- .rubocop_todo.yml
|
3
3
|
- .rubocop_dnsimple.yml
|
4
4
|
|
5
|
+
AllCops:
|
6
|
+
Exclude:
|
7
|
+
- '*.gemspec'
|
8
|
+
- 'Rakefile'
|
9
|
+
|
5
10
|
# [codesmell]
|
6
11
|
# It's irrelevant here, but it could be a code smell.
|
7
12
|
# Hence keep it disabled, but don't include it in the DNSimple suite.
|
data/.rubocop_dnsimple.yml
CHANGED
@@ -84,6 +84,13 @@ Metrics/ParameterLists:
|
|
84
84
|
Metrics/PerceivedComplexity:
|
85
85
|
Enabled: false
|
86
86
|
|
87
|
+
# We use it from time to time, as it's not always possible (or maintainable)
|
88
|
+
# to use simple ? methods.
|
89
|
+
# Moreover, it's actually more efficient to not-use predicates:
|
90
|
+
# https://github.com/bbatsov/rubocop/issues/3633
|
91
|
+
Naming/PredicateName:
|
92
|
+
Enabled: false
|
93
|
+
|
87
94
|
# [codesmell]
|
88
95
|
# I don't really get the point of this cop.
|
89
96
|
Performance/RedundantMerge:
|
@@ -119,12 +126,17 @@ Style/EmptyElse:
|
|
119
126
|
Style/EmptyMethod:
|
120
127
|
Enabled: false
|
121
128
|
|
122
|
-
#
|
123
|
-
# In most cases
|
129
|
+
# We don't care about the format style.
|
130
|
+
# In most cases we use %, but not at the point we want to enforce it
|
124
131
|
# as a convention in the entire code.
|
125
132
|
Style/FormatString:
|
126
133
|
Enabled: false
|
127
134
|
|
135
|
+
# Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
|
136
|
+
# %s is a simpler and straightforward version that works in almost all cases. So don't complain.
|
137
|
+
Style/FormatStringToken:
|
138
|
+
Enabled: false
|
139
|
+
|
128
140
|
# We don't support frozen strings.
|
129
141
|
# This is an experimental feature and we don't know if it will be shipped with
|
130
142
|
# Ruby 3.0 or not.
|
@@ -175,12 +187,16 @@ Style/NumericLiterals:
|
|
175
187
|
Style/PercentLiteralDelimiters:
|
176
188
|
Enabled: false
|
177
189
|
|
178
|
-
#
|
179
|
-
#
|
180
|
-
#
|
181
|
-
#
|
182
|
-
|
183
|
-
|
190
|
+
# Enable but only for multiple returns value.
|
191
|
+
#
|
192
|
+
# return foo, bar
|
193
|
+
#
|
194
|
+
# reads much better than
|
195
|
+
#
|
196
|
+
# [foo, bar]
|
197
|
+
#
|
198
|
+
Style/RedundantReturn:
|
199
|
+
AllowMultipleReturnValues: true
|
184
200
|
|
185
201
|
# Do we care?
|
186
202
|
Style/RegexpLiteral:
|
@@ -265,6 +281,10 @@ Layout/DotPosition:
|
|
265
281
|
Layout/EmptyLines:
|
266
282
|
Enabled: false
|
267
283
|
|
284
|
+
# This is buggy. It detects as a style violation a few `class` and `module` definitions
|
285
|
+
Layout/EmptyLinesAroundArguments:
|
286
|
+
Enabled: false
|
287
|
+
|
268
288
|
Layout/EmptyLinesAroundBlockBody:
|
269
289
|
Exclude:
|
270
290
|
# RSpec is all made of blocks. Disable this config in RSpec
|
data/.travis.yml
CHANGED
@@ -1,13 +1,18 @@
|
|
1
|
-
sudo: false
|
2
1
|
language: ruby
|
2
|
+
|
3
|
+
sudo: false
|
4
|
+
|
3
5
|
rvm:
|
4
|
-
- 2.0
|
5
|
-
- 2.1
|
6
|
-
- 2.2
|
7
|
-
- 2.3
|
8
|
-
- 2.4
|
9
|
-
|
6
|
+
- 2.0
|
7
|
+
- 2.1
|
8
|
+
- 2.2
|
9
|
+
- 2.3
|
10
|
+
- 2.4
|
11
|
+
|
12
|
+
env:
|
13
|
+
- COVERALL=1
|
10
14
|
|
11
15
|
before_install:
|
16
|
+
- rvm get latest
|
12
17
|
- gem update --system
|
13
18
|
- gem install bundler
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,13 @@
|
|
3
3
|
This project uses [Semantic Versioning 2.0.0](http://semver.org/).
|
4
4
|
|
5
5
|
|
6
|
+
#### 4.4.0
|
7
|
+
|
8
|
+
- NEW: Added Let's Encrypt certificate methods (GH-159)
|
9
|
+
|
10
|
+
- REMOVED: Removed premium_price attribute from registrar order responses (GH-163). Please do not rely on that attribute, as it returned an incorrect value. The attribute is going to be removed, and the API now returns a null value.
|
11
|
+
|
12
|
+
|
6
13
|
#### 4.3.0
|
7
14
|
|
8
15
|
- NEW: Added `certificates.all_certificates` (dnsimple/dnsimple-ruby#155)
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -88,4 +88,4 @@ The value you provide will be appended to the default `User-Agent` the client us
|
|
88
88
|
|
89
89
|
## License
|
90
90
|
|
91
|
-
Copyright (c) 2010-
|
91
|
+
Copyright (c) 2010-2018 Aetrion LLC. This is Free Software distributed under the MIT license.
|
data/lib/dnsimple/client.rb
CHANGED
@@ -61,7 +61,7 @@ module Dnsimple
|
|
61
61
|
def initialize(options = {})
|
62
62
|
defaults = Dnsimple::Default.options
|
63
63
|
|
64
|
-
Dnsimple::Default.keys.each do |key|
|
64
|
+
Dnsimple::Default.keys.each do |key| # rubocop:disable Performance/HashEachMethods
|
65
65
|
instance_variable_set(:"@#{key}", options[key] || defaults[key])
|
66
66
|
end
|
67
67
|
|
@@ -2,9 +2,9 @@ module Dnsimple
|
|
2
2
|
class Client
|
3
3
|
module Certificates
|
4
4
|
|
5
|
-
#
|
5
|
+
# List the certificates for the domain in the account.
|
6
6
|
#
|
7
|
-
# @see https://developer.dnsimple.com/v2/
|
7
|
+
# @see https://developer.dnsimple.com/v2/certificates/#listCertificates
|
8
8
|
# @see #all_certificates
|
9
9
|
#
|
10
10
|
# @example List certificates in the first page
|
@@ -16,9 +16,9 @@ module Dnsimple
|
|
16
16
|
# @example List certificates, provide a sorting policy
|
17
17
|
# client.certificates.list(1010, "example.com", sort: "email:asc")
|
18
18
|
#
|
19
|
-
# @param [Integer]
|
20
|
-
# @param [#to_s]
|
21
|
-
# @param [Hash]
|
19
|
+
# @param account_id [Integer] the account ID
|
20
|
+
# @param domain_name [#to_s] The domain ID or domain name
|
21
|
+
# @param options [Hash] the filtering and sorting options
|
22
22
|
# @option options [Integer] :page current page (pagination)
|
23
23
|
# @option options [Integer] :per_page number of entries to return (pagination)
|
24
24
|
# @return [Dnsimple::PaginatedResponse<Dnsimple::Struct::Certificate>]
|
@@ -30,7 +30,7 @@ module Dnsimple
|
|
30
30
|
Dnsimple::PaginatedResponse.new(response, response["data"].map { |r| Struct::Certificate.new(r) })
|
31
31
|
end
|
32
32
|
|
33
|
-
#
|
33
|
+
# List ALL the certificates for the domain in the account.
|
34
34
|
#
|
35
35
|
# This method is similar to {#certificates}, but instead of returning the results of a specific page
|
36
36
|
# it iterates all the pages and returns the entire collection.
|
@@ -38,12 +38,12 @@ module Dnsimple
|
|
38
38
|
# Please use this method carefully, as fetching the entire collection will increase the number of requests
|
39
39
|
# you send to the API server and you may eventually risk to hit the throttle limit.
|
40
40
|
#
|
41
|
-
# @see https://developer.dnsimple.com/v2/
|
41
|
+
# @see https://developer.dnsimple.com/v2/certificates/#listCertificates
|
42
42
|
# @see #certificates
|
43
43
|
#
|
44
|
-
# @param [Integer]
|
45
|
-
# @param [#to_s]
|
46
|
-
# @param [Hash]
|
44
|
+
# @param account_id [Integer] the account ID
|
45
|
+
# @param domain_name [#to_s] The domain ID or domain name
|
46
|
+
# @param options [Hash] the filtering and sorting option
|
47
47
|
# @option options [Integer] :page current page (pagination)
|
48
48
|
# @option options [Integer] :per_page number of entries to return (pagination)
|
49
49
|
# @option options [String] :sort sorting policy
|
@@ -54,14 +54,14 @@ module Dnsimple
|
|
54
54
|
paginate(:certificates, account_id, domain_name, options)
|
55
55
|
end
|
56
56
|
|
57
|
-
#
|
57
|
+
# Get the details of a certificate.
|
58
58
|
#
|
59
|
-
# @see https://developer.dnsimple.com/v2/
|
59
|
+
# @see https://developer.dnsimple.com/v2/certificates/#getCertificate
|
60
60
|
#
|
61
|
-
# @param [Integer]
|
62
|
-
# @param [#to_s]
|
63
|
-
# @param [Integer]
|
64
|
-
# @param [Hash]
|
61
|
+
# @param account_id [Integer] the account ID
|
62
|
+
# @param domain_id [#to_s] the domain ID or domain name
|
63
|
+
# @param certificate_id [Integer] the certificate ID
|
64
|
+
# @param options [Hash]
|
65
65
|
# @return [Dnsimple::Response<Dnsimple::Struct::Certificate>]
|
66
66
|
#
|
67
67
|
# @raise [Dnsimple::NotFoundError]
|
@@ -72,14 +72,14 @@ module Dnsimple
|
|
72
72
|
Dnsimple::Response.new(response, Struct::Certificate.new(response["data"]))
|
73
73
|
end
|
74
74
|
|
75
|
-
#
|
75
|
+
# Get the PEM-encoded certificate, along with the root certificate and intermediate chain.
|
76
76
|
#
|
77
|
-
# @see https://developer.dnsimple.com/v2/
|
77
|
+
# @see https://developer.dnsimple.com/v2/certificates/#downloadCertificate
|
78
78
|
#
|
79
|
-
# @param [Integer]
|
80
|
-
# @param [#to_s]
|
81
|
-
# @param [Integer]
|
82
|
-
# @param [Hash]
|
79
|
+
# @param account_id [Integer] the account ID
|
80
|
+
# @param domain_id [#to_s] the domain ID or domain name
|
81
|
+
# @param certificate_id [Integer] the certificate ID
|
82
|
+
# @param options [Hash]
|
83
83
|
# @return [Dnsimple::Response<Dnsimple::Struct::CertificateBundle>]
|
84
84
|
#
|
85
85
|
# @raise [Dnsimple::NotFoundError]
|
@@ -90,14 +90,14 @@ module Dnsimple
|
|
90
90
|
Dnsimple::Response.new(response, Struct::CertificateBundle.new(response["data"]))
|
91
91
|
end
|
92
92
|
|
93
|
-
# Get certificate private key
|
93
|
+
# Get the PEM-encoded certificate private key.
|
94
94
|
#
|
95
|
-
# @see https://developer.dnsimple.com/v2/
|
95
|
+
# @see https://developer.dnsimple.com/v2/certificates/#getCertificatePrivateKey
|
96
96
|
#
|
97
|
-
# @param [Integer]
|
98
|
-
# @param [#to_s]
|
99
|
-
# @param [Integer]
|
100
|
-
# @param [Hash]
|
97
|
+
# @param account_id [Integer] the account ID
|
98
|
+
# @param domain_id [#to_s] the domain ID or domain name
|
99
|
+
# @param certificate_id [Integer] the certificate ID
|
100
|
+
# @param options [Hash]
|
101
101
|
# @return [Dnsimple::Response<Dnsimple::Struct::CertificateBundle>]
|
102
102
|
#
|
103
103
|
# @raise [Dnsimple::NotFoundError]
|
@@ -108,6 +108,163 @@ module Dnsimple
|
|
108
108
|
Dnsimple::Response.new(response, Struct::CertificateBundle.new(response["data"]))
|
109
109
|
end
|
110
110
|
|
111
|
+
# Purchase a Let's Encrypt certificate.
|
112
|
+
#
|
113
|
+
# This method creates a new certificate order. The certificate ID should be used to
|
114
|
+
# request the issuance of the certificate using {#issue_letsencrypt_certificate}.
|
115
|
+
#
|
116
|
+
# @see https://developer.dnsimple.com/v2/certificates/#purchaseLetsencryptCertificate
|
117
|
+
#
|
118
|
+
# @param account_id [Integer] the account ID
|
119
|
+
# @param domain_id [#to_s] the domain ID or domain name
|
120
|
+
# @param attributes [Hash]
|
121
|
+
# @option attributes [Integer] :contact_id the contact ID (mandatory)
|
122
|
+
# @option attributes [String] :name the certificate name (optional)
|
123
|
+
# @option attributes [Array<String>] :alternate_names the certificate alternate names (optional)
|
124
|
+
# @option attributes [TrueClass,FalseClass] :auto_renew enable certificate auto renew (optional)
|
125
|
+
# @param options[Hash]
|
126
|
+
#
|
127
|
+
# @return [Dnsimple::Response<Dnsimple::Struct::CertificatPurchase>]
|
128
|
+
#
|
129
|
+
# @raise [Dnsimple::NotFoundError]
|
130
|
+
# @raise [Dnsimple::RequestError]
|
131
|
+
#
|
132
|
+
# @example Basic usage
|
133
|
+
# response = client.certificates.purchase_letsencrypt_certificate(1010, "example.com", contact_id: 1)
|
134
|
+
# certificate = response.data
|
135
|
+
#
|
136
|
+
# certificate.id # => 100
|
137
|
+
# certificate.common_name # => "www.example.com"
|
138
|
+
# certificate.alternate_names # => []
|
139
|
+
# certificate.auto_renew # => false
|
140
|
+
#
|
141
|
+
# @example Custom name
|
142
|
+
# response = client.certificates.purchase_letsencrypt_certificate(1010, "example.com", contact_id: 1, name: "docs")
|
143
|
+
# certificate = response.data
|
144
|
+
#
|
145
|
+
# certificate.id # => 100
|
146
|
+
# certificate.common_name # => "docs.example.com"
|
147
|
+
# certificate.alternate_names # => []
|
148
|
+
# certificate.auto_renew # => false
|
149
|
+
#
|
150
|
+
# @example SAN names
|
151
|
+
# response = client.certificates.purchase_letsencrypt_certificate(1010, "example.com", contact_id: 1, alternate_names: ["api.example.com", "status.example.com"])
|
152
|
+
# certificate = response.data
|
153
|
+
#
|
154
|
+
# certificate.id # => 100
|
155
|
+
# certificate.common_name # => "www.example.com"
|
156
|
+
# certificate.alternate_names # => ["api.example.com", "status.example.com"]
|
157
|
+
# certificate.auto_renew # => false
|
158
|
+
#
|
159
|
+
# @example Auto renew
|
160
|
+
# response = client.certificates.purchase_letsencrypt_certificate(1010, "example.com", contact_id: 1, auto_renew: true)
|
161
|
+
# certificate = response.data
|
162
|
+
#
|
163
|
+
# certificate.id # => 100
|
164
|
+
# certificate.common_name # => "www.example.com"
|
165
|
+
# certificate.alternate_names # => []
|
166
|
+
# certificate.auto_renew # => true
|
167
|
+
def purchase_letsencrypt_certificate(account_id, domain_id, attributes, options = {})
|
168
|
+
Extra.validate_mandatory_attributes(attributes, [:contact_id])
|
169
|
+
response = client.post(Client.versioned("/%s/domains/%s/certificates/letsencrypt" % [account_id, domain_id]), attributes, options)
|
170
|
+
|
171
|
+
Dnsimple::Response.new(response, Struct::CertificatePurchase.new(response["data"]))
|
172
|
+
end
|
173
|
+
|
174
|
+
# Issue a pending Let's Encrypt certificate order.
|
175
|
+
#
|
176
|
+
# Note that the issuance process is async. A successful response means the issuance
|
177
|
+
# request has been successfully acknowledged and queued for processing.
|
178
|
+
#
|
179
|
+
# @see https://developer.dnsimple.com/v2/certificates/#issueLetsencryptCertificate
|
180
|
+
#
|
181
|
+
# @param account_id [Integer] the account ID
|
182
|
+
# @param domain_id [#to_s] the domain ID or domain name
|
183
|
+
# @param certificate_id [Integer] the certificate ID returned by the purchase method
|
184
|
+
# @param options [Hash]
|
185
|
+
#
|
186
|
+
# @return [Dnsimple::Response<Dnsimple::Struct::Certificate>]
|
187
|
+
#
|
188
|
+
# @raise [Dnsimple::NotFoundError]
|
189
|
+
# @raise [Dnsimple::RequestError]
|
190
|
+
#
|
191
|
+
# @example Basic usage
|
192
|
+
# reponse = client.certificates.issue_letsencrypt_certificate(1010, "example.com", 100)
|
193
|
+
# certificate = response.data
|
194
|
+
#
|
195
|
+
# certificate.state # => "requesting"
|
196
|
+
def issue_letsencrypt_certificate(account_id, domain_id, certificate_id, options = {})
|
197
|
+
response = client.post(Client.versioned("/%s/domains/%s/certificates/letsencrypt/%s/issue" % [account_id, domain_id, certificate_id]), options)
|
198
|
+
|
199
|
+
Dnsimple::Response.new(response, Struct::Certificate.new(response["data"]))
|
200
|
+
end
|
201
|
+
|
202
|
+
# Purchase a Let's Encrypt certificate renewal.
|
203
|
+
#
|
204
|
+
# @see https://developer.dnsimple.com/v2/certificates/#purchaseRenewalLetsencryptCertificate
|
205
|
+
#
|
206
|
+
# @param account_id [Integer] the account ID
|
207
|
+
# @param domain_id [#to_s] the domain ID or domain name
|
208
|
+
# @param certificate_id [Integer] the certificate ID
|
209
|
+
# @param attributes [Hash]
|
210
|
+
# @option attributes [TrueClass,FalseClass] :auto_renew enable certificate auto renew (optional)
|
211
|
+
# @param options [Hash]
|
212
|
+
#
|
213
|
+
# @return [Dnsimple::Response<Dnsimple::Struct::CertificateRenewal>]
|
214
|
+
#
|
215
|
+
# @raise [Dnsimple::NotFoundError]
|
216
|
+
# @raise [Dnsimple::RequestError]
|
217
|
+
#
|
218
|
+
# @example Basic usage
|
219
|
+
# response = client.certificates.purchase_letsencrypt_certificate_renewal(1010, "example.com", 200)
|
220
|
+
# certificate_renewal = response.data
|
221
|
+
#
|
222
|
+
# certificate_renewal.id # => 999
|
223
|
+
# certificate_renewal.old_certificate_id # => 200
|
224
|
+
# certificate_renewal.new_certificate_id # => 300
|
225
|
+
#
|
226
|
+
# @example Auto renew
|
227
|
+
# response = client.certificates.purchase_letsencrypt_certificate_renewal(1010, "example.com", 200, auto_renew: true)
|
228
|
+
# certificate_renewal = response.data
|
229
|
+
#
|
230
|
+
# certificate_renewal.id # => 999
|
231
|
+
# certificate_renewal.old_certificate_id # => 200
|
232
|
+
# certificate_renewal.new_certificate_id # => 300
|
233
|
+
def purchase_letsencrypt_certificate_renewal(account_id, domain_id, certificate_id, attributes = {}, options = {})
|
234
|
+
response = client.post(Client.versioned("/%s/domains/%s/certificates/letsencrypt/%s/renewals" % [account_id, domain_id, certificate_id]), attributes, options)
|
235
|
+
|
236
|
+
Dnsimple::Response.new(response, Struct::CertificateRenewal.new(response["data"]))
|
237
|
+
end
|
238
|
+
|
239
|
+
# Issue a pending Let's Encrypt certificate renewal order.
|
240
|
+
#
|
241
|
+
# Note that the issuance process is async. A successful response means the issuance
|
242
|
+
# request has been successfully acknowledged and queued for processing.
|
243
|
+
#
|
244
|
+
# @see https://developer.dnsimple.com/v2/certificates/#issueRenewalLetsencryptCertificate
|
245
|
+
#
|
246
|
+
# @param account_id [Integer] the account ID
|
247
|
+
# @param domain_id [#to_s] the domain ID or domain name
|
248
|
+
# @param certificate_id [Integer] the certificate ID
|
249
|
+
# @param certificate_renewal_id [Integer] the certificate renewal ID
|
250
|
+
# @param options [Hash]
|
251
|
+
#
|
252
|
+
# @return [Dnsimple::Response<Dnsimple::Struct::Certificate>]
|
253
|
+
#
|
254
|
+
# @raise [Dnsimple::NotFoundError]
|
255
|
+
# @raise [Dnsimple::RequestError]
|
256
|
+
#
|
257
|
+
# @example Basic usage
|
258
|
+
# response = client.certificates.issue_letsencrypt_certificate_renewal(1010, "example.com", 100, 999)
|
259
|
+
# certificate = response.data
|
260
|
+
#
|
261
|
+
# certificate.state # => "requesting"
|
262
|
+
def issue_letsencrypt_certificate_renewal(account_id, domain_id, certificate_id, certificate_renewal_id, options = {})
|
263
|
+
response = client.post(Client.versioned("/%s/domains/%s/certificates/letsencrypt/%s/renewals/%s/issue" % [account_id, domain_id, certificate_id, certificate_renewal_id]), options)
|
264
|
+
|
265
|
+
Dnsimple::Response.new(response, Struct::Certificate.new(response["data"]))
|
266
|
+
end
|
267
|
+
|
111
268
|
end
|
112
269
|
end
|
113
270
|
end
|
@@ -7,7 +7,7 @@ module Dnsimple
|
|
7
7
|
# @see https://developer.dnsimple.com/v2/registrar/#check
|
8
8
|
#
|
9
9
|
# @example Check whether example.com is available:
|
10
|
-
# client.registrar.
|
10
|
+
# client.registrar.check_domain(1010, "example.com")
|
11
11
|
#
|
12
12
|
# @param [Integer] account_id the account ID
|
13
13
|
# @param [#to_s] domain_name the domain name to check
|
@@ -54,7 +54,7 @@ module Dnsimple
|
|
54
54
|
#
|
55
55
|
# @example Initiate the registration of example.com using the contact 1234 as registrant
|
56
56
|
# including WHOIS privacy for the domain and enabling auto renewal:
|
57
|
-
# client.registrar.
|
57
|
+
# client.registrar.register_domain(1010, "example.com", registrant_id: 1234, private_whois: true, auto_renew: true)
|
58
58
|
#
|
59
59
|
# @param [Integer] account_id the account ID
|
60
60
|
# @param [#to_s] domain_name the domain name to register
|
@@ -76,7 +76,7 @@ module Dnsimple
|
|
76
76
|
# @see https://developer.dnsimple.com/v2/registrar/#renew
|
77
77
|
#
|
78
78
|
# @example Renew example.com for 3 years:
|
79
|
-
# client.registrar.
|
79
|
+
# client.registrar.renew_domain(1010, "example.com", period: 3)
|
80
80
|
#
|
81
81
|
# @param [Integer] account_id the account ID
|
82
82
|
# @param [#to_s] domain_name the domain name to renew
|
@@ -97,7 +97,7 @@ module Dnsimple
|
|
97
97
|
# @see https://developer.dnsimple.com/v2/registrar/#transfer
|
98
98
|
#
|
99
99
|
# @example Initiate the transfer for example.com using the contact 1234 as registrant:
|
100
|
-
# client.registrar.
|
100
|
+
# client.registrar.transfer_domain(1010, "example.com", registrant_id: 1234, auth_code: "x1y2z3")
|
101
101
|
#
|
102
102
|
# @param [Integer] account_id the account ID
|
103
103
|
# @param [#to_s] domain_name the domain name to transfer
|
@@ -119,7 +119,7 @@ module Dnsimple
|
|
119
119
|
# @see https://developer.dnsimple.com/v2/registrar/#transfer-out
|
120
120
|
#
|
121
121
|
# @example Request to transfer of example.com out of DNSimple:
|
122
|
-
# client.registrar.
|
122
|
+
# client.registrar.transfer_domain_out(1010, "example.com")
|
123
123
|
#
|
124
124
|
# @param [Integer] account_id the account ID
|
125
125
|
# @param [#to_s] domain_name the domain name to transfer out
|