Class: CloudflareClient::Zone::CustomSSL
- Inherits:
-
Base
- Object
- CloudflareClient
- CloudflareClient::Zone
- Base
- CloudflareClient::Zone::CustomSSL
- Defined in:
- lib/cloudflare_client/zone/custom_ssl.rb
Constant Summary collapse
- VALID_ORDERS =
%w[status issuer priority expires_on].freeze
Constants inherited from CloudflareClient::Zone
Constants inherited from CloudflareClient
API_BASE, POSSIBLE_API_SETTINGS, VALID_BUNDLE_METHODS, VALID_DIRECTIONS, VALID_MATCHES, VERSION
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#create(certificate:, private_key:, bundle_method: nil) ⇒ Object
create custom ssl for a zone.
-
#delete(id:) ⇒ Object
delete a custom ssl cert.
-
#list(page: 1, per_page: 50, order: 'priority', direction: 'asc', match: 'all') ⇒ Object
list custom ssl configurations.
-
#prioritize(data: []) ⇒ Object
re-prioritize ssl certs data = [“cert_id”, priority: 2, “cert_id”, priority: 1].
-
#show(configuration_id:) ⇒ Object
details of a single config.
-
#update(id:, private_key: nil, certificate: nil, bundle_method: nil) ⇒ Object
updates a custom ssl record.
Methods inherited from Base
Methods inherited from CloudflareClient::Zone
#create_zone, #delete_zone, #edit_zone, #purge_zone_cache, #update_zone_settings, #zone, #zone_activation_check, #zone_setting, #zone_settings, #zones
Methods inherited from CloudflareClient
Constructor Details
This class inherits a constructor from CloudflareClient::Zone::Base
Instance Method Details
#create(certificate:, private_key:, bundle_method: nil) ⇒ Object
create custom ssl for a zone
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/cloudflare_client/zone/custom_ssl.rb', line 9 def create(certificate:, private_key:, bundle_method: nil) id_check('certificate', certificate) id_check('private_key', private_key) bundle_method_check(bundle_method) unless bundle_method.nil? # TODO: validate the cert/key using openssl? Could be difficult if they are # privately generated data = {certificate: certificate, private_key: private_key} data[:bundle_method] = bundle_method unless bundle_method.nil? cf_post(path: "/zones/#{zone_id}/custom_certificates", data: data) end |
#delete(id:) ⇒ Object
delete a custom ssl cert
58 59 60 61 |
# File 'lib/cloudflare_client/zone/custom_ssl.rb', line 58 def delete(id:) id_check('id', id) cf_delete(path: "/zones/#{zone_id}/custom_certificates/#{id}") end |
#list(page: 1, per_page: 50, order: 'priority', direction: 'asc', match: 'all') ⇒ Object
list custom ssl configurations
22 23 24 25 26 27 28 29 30 |
# File 'lib/cloudflare_client/zone/custom_ssl.rb', line 22 def list(page: 1, per_page: 50, order: 'priority', direction: 'asc', match: 'all') raise ("order must be one of #{VALID_ORDERS}") unless VALID_ORDERS.include?(order) raise ('direction must be asc || desc') unless (direction == 'asc' || direction == 'desc') raise ('match must be all || any') unless (match == 'any' || match == 'all') params = {page: page, per_page: per_page} params[:match] = match params[:direction] = direction cf_get(path: "/zones/#{zone_id}/custom_certificates", params: params) end |
#prioritize(data: []) ⇒ Object
re-prioritize ssl certs data = [“cert_id”, priority: 2, “cert_id”, priority: 1]
51 52 53 54 |
# File 'lib/cloudflare_client/zone/custom_ssl.rb', line 51 def prioritize(data: []) raise 'must provide an array of certifiates and priorities' unless data.is_a?(Array) && !data.empty? cf_put(path: "/zones/#{zone_id}/custom_certificates/prioritize", data: data) end |
#show(configuration_id:) ⇒ Object
details of a single config
34 35 36 37 |
# File 'lib/cloudflare_client/zone/custom_ssl.rb', line 34 def show(configuration_id:) raise 'ssl configuration id required' if configuration_id.nil? cf_get(path: "/zones/#{zone_id}/custom_certificates/#{configuration_id}") end |
#update(id:, private_key: nil, certificate: nil, bundle_method: nil) ⇒ Object
updates a custom ssl record
41 42 43 44 45 46 47 |
# File 'lib/cloudflare_client/zone/custom_ssl.rb', line 41 def update(id:, private_key: nil, certificate: nil, bundle_method: nil) id_check('id', id) id_check('private_key must be provided') if private_key.nil? bundle_method_check(bundle_method) data = {private_key: private_key, certificate: certificate, bundle_method: bundle_method} cf_patch(path: "/zones/#{zone_id}/custom_certificates/#{id}", data: data) end |