virtengine_api 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.travis.yml +11 -0
  4. data/Gemfile +5 -0
  5. data/LICENSE +21 -0
  6. data/README.md +27 -0
  7. data/Rakefile +10 -0
  8. data/lib/megam/api.rb +329 -0
  9. data/lib/megam/api/accounts.rb +96 -0
  10. data/lib/megam/api/addons.rb +27 -0
  11. data/lib/megam/api/assemblies.rb +49 -0
  12. data/lib/megam/api/assembly.rb +56 -0
  13. data/lib/megam/api/backups.rb +57 -0
  14. data/lib/megam/api/balances.rb +45 -0
  15. data/lib/megam/api/billedhistories.rb +35 -0
  16. data/lib/megam/api/billingtransactions.rb +25 -0
  17. data/lib/megam/api/components.rb +24 -0
  18. data/lib/megam/api/credits.rb +34 -0
  19. data/lib/megam/api/disks.rb +44 -0
  20. data/lib/megam/api/domains.rb +25 -0
  21. data/lib/megam/api/errors.rb +29 -0
  22. data/lib/megam/api/eventsall.rb +36 -0
  23. data/lib/megam/api/eventsbilling.rb +35 -0
  24. data/lib/megam/api/eventscontainer.rb +35 -0
  25. data/lib/megam/api/eventsmarketplace.rb +35 -0
  26. data/lib/megam/api/eventsstorage.rb +24 -0
  27. data/lib/megam/api/eventsvm.rb +35 -0
  28. data/lib/megam/api/flavors.rb +56 -0
  29. data/lib/megam/api/license.rb +26 -0
  30. data/lib/megam/api/marketplaces.rb +68 -0
  31. data/lib/megam/api/organizations.rb +50 -0
  32. data/lib/megam/api/promos.rb +18 -0
  33. data/lib/megam/api/quotas.rb +47 -0
  34. data/lib/megam/api/rawimages.rb +36 -0
  35. data/lib/megam/api/reports.rb +24 -0
  36. data/lib/megam/api/requests.rb +36 -0
  37. data/lib/megam/api/sensors.rb +35 -0
  38. data/lib/megam/api/snapshots.rb +46 -0
  39. data/lib/megam/api/sshkeys.rb +35 -0
  40. data/lib/megam/api/subscriptions.rb +26 -0
  41. data/lib/megam/api/version.rb +6 -0
  42. data/lib/megam/core/account.rb +245 -0
  43. data/lib/megam/core/account_collection.rb +122 -0
  44. data/lib/megam/core/addons.rb +169 -0
  45. data/lib/megam/core/addons_collection.rb +121 -0
  46. data/lib/megam/core/assemblies.rb +191 -0
  47. data/lib/megam/core/assemblies_collection.rb +122 -0
  48. data/lib/megam/core/assembly.rb +226 -0
  49. data/lib/megam/core/assembly_collection.rb +122 -0
  50. data/lib/megam/core/backups.rb +259 -0
  51. data/lib/megam/core/backups_collection.rb +122 -0
  52. data/lib/megam/core/balances.rb +187 -0
  53. data/lib/megam/core/balances_collection.rb +121 -0
  54. data/lib/megam/core/billedhistories.rb +190 -0
  55. data/lib/megam/core/billedhistories_collection.rb +121 -0
  56. data/lib/megam/core/billingtransactions.rb +214 -0
  57. data/lib/megam/core/billingtransactions_collection.rb +122 -0
  58. data/lib/megam/core/components.rb +326 -0
  59. data/lib/megam/core/components_collection.rb +123 -0
  60. data/lib/megam/core/credits.rb +146 -0
  61. data/lib/megam/core/credits_collection.rb +121 -0
  62. data/lib/megam/core/disks.rb +199 -0
  63. data/lib/megam/core/disks_collection.rb +122 -0
  64. data/lib/megam/core/domain_collection.rb +122 -0
  65. data/lib/megam/core/domains.rb +118 -0
  66. data/lib/megam/core/error.rb +70 -0
  67. data/lib/megam/core/eventsall.rb +186 -0
  68. data/lib/megam/core/eventsall_collection.rb +122 -0
  69. data/lib/megam/core/eventsbilling.rb +174 -0
  70. data/lib/megam/core/eventsbilling_collection.rb +122 -0
  71. data/lib/megam/core/eventscontainer.rb +187 -0
  72. data/lib/megam/core/eventscontainer_collection.rb +122 -0
  73. data/lib/megam/core/eventsmarketplace.rb +187 -0
  74. data/lib/megam/core/eventsmarketplace_collection.rb +122 -0
  75. data/lib/megam/core/eventsstorage.rb +156 -0
  76. data/lib/megam/core/eventsstorage_collection.rb +122 -0
  77. data/lib/megam/core/eventsvm.rb +187 -0
  78. data/lib/megam/core/eventsvm_collection.rb +122 -0
  79. data/lib/megam/core/flavors.rb +294 -0
  80. data/lib/megam/core/flavors_collection.rb +121 -0
  81. data/lib/megam/core/json_compat.rb +289 -0
  82. data/lib/megam/core/konipai.rb +42 -0
  83. data/lib/megam/core/license.rb +101 -0
  84. data/lib/megam/core/license_collection.rb +122 -0
  85. data/lib/megam/core/log.rb +19 -0
  86. data/lib/megam/core/marketplace.rb +308 -0
  87. data/lib/megam/core/marketplace_collection.rb +123 -0
  88. data/lib/megam/core/monologger.rb +89 -0
  89. data/lib/megam/core/organizations.rb +142 -0
  90. data/lib/megam/core/organizations_collection.rb +121 -0
  91. data/lib/megam/core/promos.rb +145 -0
  92. data/lib/megam/core/quotas.rb +215 -0
  93. data/lib/megam/core/quotas_collection.rb +121 -0
  94. data/lib/megam/core/rawimages.rb +194 -0
  95. data/lib/megam/core/rawimages_collection.rb +121 -0
  96. data/lib/megam/core/reports.rb +176 -0
  97. data/lib/megam/core/reports_collection.rb +121 -0
  98. data/lib/megam/core/request.rb +197 -0
  99. data/lib/megam/core/request_collection.rb +121 -0
  100. data/lib/megam/core/rest_adapter.rb +44 -0
  101. data/lib/megam/core/sensors.rb +141 -0
  102. data/lib/megam/core/sensors_collection.rb +121 -0
  103. data/lib/megam/core/snapshots.rb +268 -0
  104. data/lib/megam/core/snapshots_collection.rb +122 -0
  105. data/lib/megam/core/sshkey.rb +173 -0
  106. data/lib/megam/core/sshkey_collection.rb +122 -0
  107. data/lib/megam/core/stuff.rb +22 -0
  108. data/lib/megam/core/subscriptions.rb +167 -0
  109. data/lib/megam/core/subscriptions_collection.rb +121 -0
  110. data/lib/megam/core/text.rb +87 -0
  111. data/lib/megam/core/text_formatter.rb +64 -0
  112. data/lib/megam/mixins/assemblies.rb +16 -0
  113. data/lib/megam/mixins/assembly.rb +59 -0
  114. data/lib/megam/mixins/common_deployable.rb +78 -0
  115. data/lib/megam/mixins/components.rb +182 -0
  116. data/lib/megam/mixins/megam_attributes.rb +30 -0
  117. data/lib/megam/mixins/outputs.rb +23 -0
  118. data/lib/megam/mixins/policies.rb +27 -0
  119. data/lib/megam_api.rb +1 -0
  120. data/megam_api.gemspec +26 -0
  121. data/test/mixins/test_assemblies.rb +113 -0
  122. data/test/mixins/test_assembly.rb +74 -0
  123. data/test/mixins/test_component.rb +19 -0
  124. data/test/test_accounts.rb +127 -0
  125. data/test/test_addons.rb +26 -0
  126. data/test/test_assemblies.rb +88 -0
  127. data/test/test_assembly.rb +37 -0
  128. data/test/test_backups.rb +29 -0
  129. data/test/test_balances.rb +38 -0
  130. data/test/test_billedhistories.rb +30 -0
  131. data/test/test_billingtranscations.rb +35 -0
  132. data/test/test_components.rb +42 -0
  133. data/test/test_credits.rb +28 -0
  134. data/test/test_disks.rb +25 -0
  135. data/test/test_domains.rb +29 -0
  136. data/test/test_eventsbilling.rb +30 -0
  137. data/test/test_eventscontainer.rb +26 -0
  138. data/test/test_eventsstorage.rb +12 -0
  139. data/test/test_eventsvm.rb +26 -0
  140. data/test/test_helper.rb +77 -0
  141. data/test/test_marketplaces.rb +38 -0
  142. data/test/test_organizations.rb +45 -0
  143. data/test/test_promos.rb +11 -0
  144. data/test/test_quotas.rb +33 -0
  145. data/test/test_reports.rb +32 -0
  146. data/test/test_requests.rb +95 -0
  147. data/test/test_sensors.rb +50 -0
  148. data/test/test_snapshots.rb +30 -0
  149. data/test/test_sshkeys.rb +50 -0
  150. data/test/test_subscriptions.rb +22 -0
  151. metadata +325 -0
@@ -0,0 +1,121 @@
1
+ module Megam
2
+ class FlavorsCollection
3
+ include Enumerable
4
+
5
+ attr_reader :iterator
6
+ def initialize
7
+ @flavors = Array.new
8
+ @flavors_by_name = Hash.new
9
+ @insert_after_idx = nil
10
+ end
11
+
12
+ def all_flavors
13
+ @flavors
14
+ end
15
+
16
+ def [](index)
17
+ @flavors[index]
18
+ end
19
+
20
+ def []=(index, arg)
21
+ is_megam_flavors(arg)
22
+ @flavors[index] = arg
23
+ @flavors_by_name[arg.account_id] = index
24
+ end
25
+
26
+ def <<(*args)
27
+ args.flatten.each do |a|
28
+ is_megam_flavors(a)
29
+ @flavors << a
30
+ @flavors_by_name[a.account_id] = @flavors.length - 1
31
+ end
32
+ self
33
+ end
34
+
35
+ # 'push' is an alias method to <<
36
+ alias_method :push, :<<
37
+
38
+ def insert(flavors)
39
+ is_megam_flavors(flavors)
40
+ if @insert_after_idx
41
+ # in the middle of executing a run, so any nodes inserted now should
42
+ # be placed after the most recent addition done by the currently executing
43
+ # node
44
+ @flavors.insert(@insert_after_idx + 1, flavors)
45
+ # update name -> location mappings and register new node
46
+ @flavors_by_name.each_key do |key|
47
+ @flavors_by_name[key] += 1 if @flavors_by_name[key] > @insert_after_idx
48
+ end
49
+ @flavors_by_name[flavors.account_id] = @insert_after_idx + 1
50
+ @insert_after_idx += 1
51
+ else
52
+ @flavors << flavors
53
+ @flavors_by_name[flavors.account_id] = @flavors.length - 1
54
+ end
55
+ end
56
+
57
+ def each
58
+ @flavors.each do |flavors|
59
+ yield flavors
60
+ end
61
+ end
62
+
63
+ def each_index
64
+ @flavors.each_index do |i|
65
+ yield i
66
+ end
67
+ end
68
+
69
+ def empty?
70
+ @flavors.empty?
71
+ end
72
+
73
+ def lookup(flavors)
74
+ lookup_by = nil
75
+ if events.kind_of?(Megam::Flavors)
76
+ lookup_by = flavors.account_id
77
+ elsif flavors.kind_of?(String)
78
+ lookup_by = flavors
79
+ else
80
+ raise ArgumentError, "Must pass a Megam::Flavors or String to lookup"
81
+ end
82
+ res = @flavors_by_name[lookup_by]
83
+ unless res
84
+ raise ArgumentError, "Cannot find a node matching #{lookup_by} (did you define it first?)"
85
+ end
86
+ @flavors[res]
87
+ end
88
+
89
+ def to_s
90
+ @flavors.join(", ")
91
+ end
92
+
93
+ def for_json
94
+ to_a.map { |item| item.to_s }
95
+ end
96
+
97
+ def to_json(*a)
98
+ Megam::JSONCompat.to_json(for_json, *a)
99
+ end
100
+
101
+ def self.json_create(o)
102
+ collection = self.new()
103
+ o["results"].each do |flavors_list|
104
+ flavors_array = flavors_list.kind_of?(Array) ? flavors_list : [ flavors_list ]
105
+ flavors_array.each do |flavors|
106
+ collection.insert(flavors)
107
+ end
108
+ end
109
+ collection
110
+ end
111
+
112
+ private
113
+
114
+ def is_megam_flavors(arg)
115
+ unless arg.kind_of?(Megam::Flavors)
116
+ raise ArgumentError, "Members must be Megam::Flavors's"
117
+ end
118
+ true
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,289 @@
1
+
2
+ # Wrapper class for interacting with JSON.
3
+ require "ffi_yajl"
4
+ # We're requiring this to prevent breaking consumers using Hash.to_json
5
+ require "json"
6
+
7
+ module Megam
8
+ class JSONCompat
9
+
10
+ JSON_MAX_NESTING = 1000
11
+
12
+ JSON_CLAZ = 'json_claz'.freeze
13
+
14
+ MEGAM_ACCOUNT = 'Megam::Account'.freeze
15
+ MEGAM_ACCOUNTCOLLECTION = 'Megam::AccountCollection'.freeze
16
+ MEGAM_ASSEMBLIES = 'Megam::Assemblies'.freeze
17
+ MEGAM_ASSEMBLIESCOLLECTION = 'Megam::AssembliesCollection'.freeze
18
+ MEGAM_ASSEMBLY = 'Megam::Assembly'.freeze
19
+ MEGAM_ASSEMBLYCOLLECTION = 'Megam::AssemblyCollection'.freeze
20
+ MEGAM_BALANCES = 'Megam::Balances'.freeze
21
+ MEGAM_BALANCESCOLLECTION = 'Megam::BalancesCollection'.freeze
22
+ MEGAM_CREDITS = 'Megam::Credits'.freeze
23
+ MEGAM_CREDITSCOLLECTION = 'Megam::CreditsCollection'.freeze
24
+ MEGAM_BILLEDHISTORIES = 'Megam::Billedhistories'.freeze
25
+ MEGAM_BILLEDHISTORIESCOLLECTION = 'Megam::BilledhistoriesCollection'.freeze
26
+ MEGAM_BILLINGTRANSACTIONS = 'Megam::BillingTransactions'.freeze
27
+ MEGAM_BILLINGTRANSACTIONSCOLLECTION = 'Megam::BillingTransactionsCollection'.freeze
28
+ MEGAM_COMPONENTS = 'Megam::Components'.freeze
29
+ MEGAM_COMPONENTSCOLLECTION = 'Megam::ComponentsCollection'.freeze
30
+ MEGAM_DOMAIN = 'Megam::Domains'.freeze
31
+ MEGAM_DOMAINCOLLECTION = 'Megam::DomainsCollection'.freeze
32
+ MEGAM_ERROR = 'Megam::Error'.freeze
33
+ MEGAM_MARKETPLACE = 'Megam::MarketPlace'.freeze
34
+ MEGAM_MARKETPLACECOLLECTION = 'Megam::MarketPlaceCollection'.freeze
35
+ MEGAM_ORGANIZATION = 'Megam::Organizations'.freeze
36
+ MEGAM_ORGANIZATIONSCOLLECTION = 'Megam::OrganizationsCollection'.freeze
37
+ MEGAM_REQUEST = 'Megam::Request'.freeze
38
+ MEGAM_REQUESTCOLLECTION = 'Megam::RequestCollection'.freeze
39
+ MEGAM_SENSORS = 'Megam::Sensors'.freeze
40
+ MEGAM_SENSORSCOLLECTION = 'Megam::SensorsCollection'.freeze
41
+ MEGAM_SNAPSHOTS = 'Megam::Snapshots'.freeze
42
+ MEGAM_SNAPSHOTSCOLLECTION = 'Megam::SnapshotsCollection'.freeze
43
+ MEGAM_BACKUPS = 'Megam::Backups'.freeze
44
+ MEGAM_BACKUPSCOLLECTION = 'Megam::BackupsCollection'.freeze
45
+ MEGAM_DISKS = 'Megam::Disks'.freeze
46
+ MEGAM_DISKSCOLLECTION = 'Megam::DisksCollection'.freeze
47
+ MEGAM_LICENSE = 'Megam::License'.freeze
48
+ MEGAM_LICENSECOLLECTION = 'Megam::LicenseCollection'.freeze
49
+ MEGAM_SSHKEY = 'Megam::SshKey'.freeze
50
+ MEGAM_SSHKEYCOLLECTION = 'Megam::SshKeyCollection'.freeze
51
+ MEGAM_EVENTSALL = 'Megam::EventsAll'.freeze
52
+ MEGAM_EVENTSALLCOLLECTION = 'Megam::EventsAllCollection'.freeze
53
+ MEGAM_EVENTSVM = 'Megam::EventsVm'.freeze
54
+ MEGAM_EVENTSVMCOLLECTION = 'Megam::EventsVmCollection'.freeze
55
+ MEGAM_EVENTSCONTAINER = 'Megam::EventsContainer'.freeze
56
+ MEGAM_EVENTSCONTAINERCOLLECTION = 'Megam::EventsContainerCollection'.freeze
57
+ MEGAM_EVENTSMARKETPLACE = 'Megam::EventsMarketplace'.freeze
58
+ MEGAM_EventsMarketplaceCollection = 'Megam::EventsMarketplaceCollection'.freeze
59
+ MEGAM_EVENTSBILLING = 'Megam::EventsBilling'.freeze
60
+ MEGAM_EVENTSBILLINGCOLLECTION = 'Megam::EventsBillingCollection'.freeze
61
+ MEGAM_EVENTSSTORAGE = 'Megam::EventsStorage'.freeze
62
+ MEGAM_EVENTSSTORAGECOLLECTION = 'Megam::EventsStorageCollection'.freeze
63
+ MEGAM_SUBSCRIPTIONS = 'Megam::Subscriptions'.freeze
64
+ MEGAM_SUBSCRIPTIONSCOLLECTION = 'Megam::SubscriptionsCollection'.freeze
65
+ MEGAM_ADDONS = 'Megam::Addons'.freeze
66
+ MEGAM_ADDONSCOLLECTION = 'Megam::AddonsCollection'.freeze
67
+ MEGAM_REPORTS = 'Megam::Reports'.freeze
68
+ MEGAM_REPORTSCOLLECTION = 'Megam::ReportsCollection'.freeze
69
+ MEGAM_QUOTAS = 'Megam::Quotas'.freeze
70
+ MEGAM_QUOTASCOLLECTION = 'Megam::QuotasCollection'.freeze
71
+ MEGAM_FLAVORS = 'Megam::Flavors'.freeze
72
+ MEGAM_FLAVORSCOLLECTION = 'Megam::FlavorsCollection'.freeze
73
+ MEGAM_RAWIMAGES = 'Megam::Rawimages'.freeze
74
+ MEGAM_RAWIMAGESCOLLECTION = 'Megam::RawimagesCollection'.freeze
75
+ MEGAM_PROMOS = 'Megam::Promos'.freeze
76
+
77
+
78
+ class << self
79
+ # API to use to avoid create_addtions
80
+ def parse(source, opts = {})
81
+ begin
82
+ FFI_Yajl::Parser.parse(source, opts)
83
+ rescue FFI_Yajl::ParseError => e
84
+ raise StandardError, e.message
85
+ end
86
+ end
87
+
88
+ # Just call the JSON gem's parse method with a modified :max_nesting field
89
+ def from_json(source, opts = {})
90
+ obj = parse(source, opts)
91
+
92
+ # JSON gem requires top level object to be a Hash or Array (otherwise
93
+ # you get the "must contain two octets" error). Yajl doesn't impose the
94
+ # same limitation. For compatibility, we re-impose this condition.
95
+ unless obj.kind_of?(Hash) || obj.kind_of?(Array)
96
+ raise JSON::ParseError, "Top level JSON object must be a Hash or Array. (actual: #{obj.class})"
97
+ end
98
+
99
+ # The old default in the json gem (which we are mimicing because we
100
+ # sadly rely on this misfeature) is to "create additions" i.e., convert
101
+ # JSON objects into ruby objects. Explicit :create_additions => false
102
+ # is required to turn it off.
103
+ if opts[:create_additions].nil? || opts[:create_additions]
104
+ map_to_rb_obj(obj)
105
+ else
106
+ obj
107
+ end
108
+ end
109
+
110
+ # Look at an object that's a basic type (from json parse) and convert it
111
+ # to an instance of Chef classes if desired.
112
+ def map_to_rb_obj(json_obj)
113
+ case json_obj
114
+ when Hash
115
+ mapped_hash = map_hash_to_rb_obj(json_obj)
116
+ if json_obj.has_key?(JSON_CLAZ) && (class_to_inflate = class_for_json_class(json_obj[JSON_CLAZ]))
117
+ class_to_inflate.json_create(mapped_hash)
118
+ else
119
+ mapped_hash
120
+ end
121
+ when Array
122
+ json_obj.map { |e| map_to_rb_obj(e) }
123
+ else
124
+ json_obj
125
+ end
126
+ end
127
+
128
+ def map_hash_to_rb_obj(json_hash)
129
+ json_hash.each do |key, value|
130
+ json_hash[key] = map_to_rb_obj(value)
131
+ end
132
+ json_hash
133
+ end
134
+
135
+ def to_json(obj, opts = nil)
136
+ begin
137
+ FFI_Yajl::Encoder.encode(obj, opts)
138
+ rescue FFI_Yajl::EncodeError => e
139
+ raise JSON::GeneratorError, e.message
140
+ end
141
+ end
142
+
143
+
144
+ def to_json_pretty(obj, opts = nil)
145
+ opts ||= {}
146
+ options_map = {}
147
+ options_map[:pretty] = true
148
+ options_map[:indent] = opts[:indent] if opts.has_key?(:indent)
149
+ to_json(obj, options_map).chomp
150
+ end
151
+
152
+
153
+ # Map +JSON_CLAZ+ to a Class object. We use a +case+ instead of a Hash
154
+ # assigned to a constant because otherwise this file could not be loaded
155
+ # until all the constants were defined, which means you'd have to load
156
+ # the world to get json.
157
+ def class_for_json_class(json_class)
158
+ case json_class
159
+ when MEGAM_ERROR
160
+ Megam::Error
161
+ when MEGAM_ACCOUNT
162
+ Megam::Account
163
+ when MEGAM_ACCOUNTCOLLECTION
164
+ Megam::AccountCollection
165
+ when MEGAM_ASSEMBLIES
166
+ Megam::Assemblies
167
+ when MEGAM_ASSEMBLIESCOLLECTION
168
+ Megam::AssembliesCollection
169
+ when MEGAM_ASSEMBLY
170
+ Megam::Assembly
171
+ when MEGAM_ASSEMBLYCOLLECTION
172
+ Megam::AssemblyCollection
173
+ when MEGAM_COMPONENTS
174
+ Megam::Components
175
+ when MEGAM_COMPONENTSCOLLECTION
176
+ Megam::ComponentsCollection
177
+ when MEGAM_REQUEST
178
+ Megam::Request
179
+ when MEGAM_REQUESTCOLLECTION
180
+ Megam::RequestCollection
181
+ when MEGAM_SSHKEY
182
+ Megam::SshKey
183
+ when MEGAM_SSHKEYCOLLECTION
184
+ Megam::SshKeyCollection
185
+ when MEGAM_EVENTSVM
186
+ Megam::EventsVm
187
+ when MEGAM_EVENTSVMCOLLECTION
188
+ Megam::EventsVmCollection
189
+ when MEGAM_EVENTSMARKETPLACE
190
+ Megam::EventsMarketplace
191
+ when MEGAM_EventsMarketplaceCollection
192
+ Megam::EventsMarketplaceCollection
193
+ when MEGAM_LICENSE
194
+ Megam::License
195
+ when MEGAM_LICENSECOLLECTION
196
+ Megam::LicenseCollection
197
+ when MEGAM_FLAVORS
198
+ Megam::Flavors
199
+ when MEGAM_FLAVORSCOLLECTION
200
+ Megam::FlavorsCollection
201
+ when MEGAM_EVENTSALL
202
+ Megam::EventsAll
203
+ when MEGAM_EVENTSALLCOLLECTION
204
+ Megam::EventsAllCollection
205
+ when MEGAM_EVENTSCONTAINER
206
+ Megam::EventsContainer
207
+ when MEGAM_EVENTSCONTAINERCOLLECTION
208
+ Megam::EventsContainerCollection
209
+ when MEGAM_EVENTSBILLING
210
+ Megam::EventsBilling
211
+ when MEGAM_EVENTSBILLINGCOLLECTION
212
+ Megam::EventsBillingCollection
213
+ when MEGAM_EVENTSSTORAGE
214
+ Megam::EventsStorage
215
+ when MEGAM_EVENTSSTORAGECOLLECTION
216
+ Megam::EventsStorageCollection
217
+ when MEGAM_MARKETPLACE
218
+ Megam::MarketPlace
219
+ when MEGAM_MARKETPLACECOLLECTION
220
+ Megam::MarketPlaceCollection
221
+ when MEGAM_ORGANIZATION
222
+ Megam::Organizations
223
+ when MEGAM_ORGANIZATIONSCOLLECTION
224
+ Megam::OrganizationsCollection
225
+ when MEGAM_DOMAIN
226
+ Megam::Domains
227
+ when MEGAM_DOMAINCOLLECTION
228
+ Megam::DomainsCollection
229
+ when MEGAM_SENSORS
230
+ Megam::Sensors
231
+ when MEGAM_SENSORSCOLLECTION
232
+ Megam::SensorsCollection
233
+ when MEGAM_SNAPSHOTS
234
+ Megam::Snapshots
235
+ when MEGAM_SNAPSHOTSCOLLECTION
236
+ Megam::SnapshotsCollection
237
+ when MEGAM_BACKUPS
238
+ Megam::Backups
239
+ when MEGAM_BACKUPSCOLLECTION
240
+ Megam::BackupsCollection
241
+ when MEGAM_BALANCES
242
+ Megam::Balances
243
+ when MEGAM_BALANCESCOLLECTION
244
+ Megam::BalancesCollection
245
+ when MEGAM_CREDITS
246
+ Megam::Credits
247
+ when MEGAM_CREDITSCOLLECTION
248
+ Megam::CreditsCollection
249
+ when MEGAM_BILLEDHISTORIES
250
+ Megam::Billedhistories
251
+ when MEGAM_BILLEDHISTORIESCOLLECTION
252
+ Megam::BilledhistoriesCollection
253
+ when MEGAM_BILLINGTRANSACTIONS
254
+ Megam::Billingtransactions
255
+ when MEGAM_BILLINGTRANSACTIONSCOLLECTION
256
+ Megam::BillingtransactionsCollection
257
+ when MEGAM_SUBSCRIPTIONS
258
+ Megam::Subscriptions
259
+ when MEGAM_SUBSCRIPTIONSCOLLECTION
260
+ Megam::SubscriptionsCollection
261
+ when MEGAM_DISKS
262
+ Megam::Disks
263
+ when MEGAM_DISKSCOLLECTION
264
+ Megam::DisksCollection
265
+ when MEGAM_ADDONS
266
+ Megam::Addons
267
+ when MEGAM_ADDONSCOLLECTION
268
+ Megam::AddonsCollection
269
+ when MEGAM_REPORTS
270
+ Megam::Reports
271
+ when MEGAM_REPORTSCOLLECTION
272
+ Megam::ReportsCollection
273
+ when MEGAM_QUOTAS
274
+ Megam::Quotas
275
+ when MEGAM_QUOTASCOLLECTION
276
+ Megam::QuotasCollection
277
+ when MEGAM_RAWIMAGES
278
+ Megam::Rawimages
279
+ when MEGAM_RAWIMAGESCOLLECTION
280
+ Megam::RawimagesCollection
281
+ when MEGAM_PROMOS
282
+ Megam::Promos
283
+ else
284
+ fail JSON::ParserError, "Unsupported `json_class` type '#{json_class}'"
285
+ end
286
+ end
287
+ end
288
+ end
289
+ end
@@ -0,0 +1,42 @@
1
+ module Megam
2
+ class KoniPai
3
+
4
+ def initialize()
5
+ @koni = nil
6
+ end
7
+
8
+ def konipai
9
+ self
10
+ end
11
+
12
+ def koni(arg=nil)
13
+ if arg != nil
14
+ @koni = arg
15
+ else
16
+ @koni
17
+ end
18
+ end
19
+
20
+
21
+ # Transform the ruby obj -> to a Hash
22
+ def to_hash
23
+ index_hash = Hash.new
24
+ index_hash["json_claz"] = self.class.name
25
+ index_hash["koni"] = koni
26
+ index_hash
27
+ end
28
+
29
+
30
+ def self.json_create(o)
31
+ kp = new
32
+ kp.koni(o) if o != null
33
+ kp
34
+ end
35
+
36
+
37
+ def to_s
38
+ Megam::Stuff.styled_hash(to_hash)
39
+ end
40
+
41
+ end
42
+ end