cloudflare_client_rb 4.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 (35) hide show
  1. checksums.yaml +7 -0
  2. data/lib/cloudflare_client.rb +211 -0
  3. data/lib/cloudflare_client/certificate.rb +40 -0
  4. data/lib/cloudflare_client/organization.rb +26 -0
  5. data/lib/cloudflare_client/organization/access_rule.rb +76 -0
  6. data/lib/cloudflare_client/organization/invite.rb +53 -0
  7. data/lib/cloudflare_client/organization/member.rb +37 -0
  8. data/lib/cloudflare_client/organization/railgun.rb +79 -0
  9. data/lib/cloudflare_client/organization/role.rb +19 -0
  10. data/lib/cloudflare_client/railgun.rb +63 -0
  11. data/lib/cloudflare_client/version.rb +3 -0
  12. data/lib/cloudflare_client/virtual_dns_cluster.rb +133 -0
  13. data/lib/cloudflare_client/virtual_dns_cluster/analytic.rb +38 -0
  14. data/lib/cloudflare_client/zone.rb +129 -0
  15. data/lib/cloudflare_client/zone/analytics.rb +56 -0
  16. data/lib/cloudflare_client/zone/base.rb +9 -0
  17. data/lib/cloudflare_client/zone/custom_hostname.rb +86 -0
  18. data/lib/cloudflare_client/zone/custom_page.rb +28 -0
  19. data/lib/cloudflare_client/zone/custom_ssl.rb +62 -0
  20. data/lib/cloudflare_client/zone/dns.rb +66 -0
  21. data/lib/cloudflare_client/zone/firewall.rb +3 -0
  22. data/lib/cloudflare_client/zone/firewall/access_rule.rb +87 -0
  23. data/lib/cloudflare_client/zone/firewall/waf_package.rb +46 -0
  24. data/lib/cloudflare_client/zone/firewall/waf_package/base.rb +9 -0
  25. data/lib/cloudflare_client/zone/firewall/waf_package/rule.rb +46 -0
  26. data/lib/cloudflare_client/zone/firewall/waf_package/rule_group.rb +42 -0
  27. data/lib/cloudflare_client/zone/keyless_ssl.rb +56 -0
  28. data/lib/cloudflare_client/zone/log.rb +51 -0
  29. data/lib/cloudflare_client/zone/page_rule.rb +64 -0
  30. data/lib/cloudflare_client/zone/railgun_connections.rb +43 -0
  31. data/lib/cloudflare_client/zone/rate_limit.rb +73 -0
  32. data/lib/cloudflare_client/zone/ssl.rb +28 -0
  33. data/lib/cloudflare_client/zone/ssl/certificate_pack.rb +32 -0
  34. data/lib/cloudflare_client/zone/subscription.rb +55 -0
  35. metadata +76 -0
@@ -0,0 +1,55 @@
1
+ class CloudflareClient::Zone::Subscription < CloudflareClient::Zone::Base
2
+ VALID_FREQUENCIES = %w[weekly monthly quarterly yearly].freeze
3
+ VALID_STATES = %w[Trial Provisioned Paid AwaitingPayment Cancelled Failed Expired].freeze
4
+
5
+ ##
6
+ #zone_subscription
7
+
8
+ ##
9
+ # get a zone subscription
10
+ # FIXME: seems to throw a 404
11
+ def show
12
+ cf_get(path: "/zones/#{zone_id}/subscription")
13
+ end
14
+
15
+ ##
16
+ # create a zone subscriptions
17
+ # FIXME: api talks about lots of read only constrains
18
+ def create(price:, currency:, id:, frequency:, component_values: nil, rate_plan: nil, zone: nil, state: nil)
19
+ basic_type_check(:price, price, Numeric)
20
+ basic_type_check(:currency, currency, String)
21
+ basic_type_check(:id, id, String)
22
+ max_length_check(:id, id)
23
+ valid_value_check(:frequency, frequency, VALID_FREQUENCIES)
24
+
25
+ data = {price: price, currency: currency, id: id, frequency: frequency}
26
+
27
+ unless component_values.nil?
28
+ non_empty_array_check(:component_values, component_values)
29
+ data[:component_values] = component_values
30
+ end
31
+
32
+ unless rate_plan.nil?
33
+ non_empty_hash_check(:rate_plan, rate_plan)
34
+ data[:rate_plan] = rate_plan
35
+ end
36
+
37
+ unless zone.nil?
38
+ non_empty_hash_check(:zone, zone)
39
+ data[:zone] = zone
40
+ end
41
+
42
+ unless state.nil?
43
+ valid_value_check(:state, state, VALID_STATES)
44
+ data[:state] = state
45
+ end
46
+
47
+ cf_post(path: "/zones/#{zone_id}/subscription", data: data)
48
+ end
49
+
50
+ ##
51
+ # FIXME: more read-only questions abound
52
+ # update a zone subscription
53
+ # def update
54
+ # end
55
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cloudflare_client_rb
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.0.0
5
+ platform: ruby
6
+ authors:
7
+ - ian waters
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-10-12 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: iwaters@zendesk.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/cloudflare_client.rb
20
+ - lib/cloudflare_client/certificate.rb
21
+ - lib/cloudflare_client/organization.rb
22
+ - lib/cloudflare_client/organization/access_rule.rb
23
+ - lib/cloudflare_client/organization/invite.rb
24
+ - lib/cloudflare_client/organization/member.rb
25
+ - lib/cloudflare_client/organization/railgun.rb
26
+ - lib/cloudflare_client/organization/role.rb
27
+ - lib/cloudflare_client/railgun.rb
28
+ - lib/cloudflare_client/version.rb
29
+ - lib/cloudflare_client/virtual_dns_cluster.rb
30
+ - lib/cloudflare_client/virtual_dns_cluster/analytic.rb
31
+ - lib/cloudflare_client/zone.rb
32
+ - lib/cloudflare_client/zone/analytics.rb
33
+ - lib/cloudflare_client/zone/base.rb
34
+ - lib/cloudflare_client/zone/custom_hostname.rb
35
+ - lib/cloudflare_client/zone/custom_page.rb
36
+ - lib/cloudflare_client/zone/custom_ssl.rb
37
+ - lib/cloudflare_client/zone/dns.rb
38
+ - lib/cloudflare_client/zone/firewall.rb
39
+ - lib/cloudflare_client/zone/firewall/access_rule.rb
40
+ - lib/cloudflare_client/zone/firewall/waf_package.rb
41
+ - lib/cloudflare_client/zone/firewall/waf_package/base.rb
42
+ - lib/cloudflare_client/zone/firewall/waf_package/rule.rb
43
+ - lib/cloudflare_client/zone/firewall/waf_package/rule_group.rb
44
+ - lib/cloudflare_client/zone/keyless_ssl.rb
45
+ - lib/cloudflare_client/zone/log.rb
46
+ - lib/cloudflare_client/zone/page_rule.rb
47
+ - lib/cloudflare_client/zone/railgun_connections.rb
48
+ - lib/cloudflare_client/zone/rate_limit.rb
49
+ - lib/cloudflare_client/zone/ssl.rb
50
+ - lib/cloudflare_client/zone/ssl/certificate_pack.rb
51
+ - lib/cloudflare_client/zone/subscription.rb
52
+ homepage: https://github.com/zendesk/cloudflare_client_rb
53
+ licenses:
54
+ - MIT
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 2.3.0
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubyforge_project:
72
+ rubygems_version: 2.6.11
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: lightweight cloudflare api client
76
+ test_files: []