cloudflare_client_rb 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []