fog-packet 1.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 (232) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +51 -0
  3. data/.rubocop.yml +38 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +21 -0
  6. data/README.md +1176 -0
  7. data/Rakefile +24 -0
  8. data/fog-packet.gemspec +24 -0
  9. data/lib/fog-packet.rb +26 -0
  10. data/lib/fog/compute/packet/compute.rb +313 -0
  11. data/lib/fog/compute/packet/models/bandwidth.rb +14 -0
  12. data/lib/fog/compute/packet/models/batch.rb +18 -0
  13. data/lib/fog/compute/packet/models/batches.rb +27 -0
  14. data/lib/fog/compute/packet/models/bgp_session.rb +35 -0
  15. data/lib/fog/compute/packet/models/bgp_sessions.rb +22 -0
  16. data/lib/fog/compute/packet/models/capacities.rb +27 -0
  17. data/lib/fog/compute/packet/models/capacity.rb +29 -0
  18. data/lib/fog/compute/packet/models/device.rb +136 -0
  19. data/lib/fog/compute/packet/models/devices.rb +22 -0
  20. data/lib/fog/compute/packet/models/email.rb +50 -0
  21. data/lib/fog/compute/packet/models/email_verification.rb +18 -0
  22. data/lib/fog/compute/packet/models/emails.rb +17 -0
  23. data/lib/fog/compute/packet/models/event.rb +23 -0
  24. data/lib/fog/compute/packet/models/events.rb +17 -0
  25. data/lib/fog/compute/packet/models/facilities.rb +17 -0
  26. data/lib/fog/compute/packet/models/facility.rb +22 -0
  27. data/lib/fog/compute/packet/models/hardware_reservation.rb +66 -0
  28. data/lib/fog/compute/packet/models/hardware_reservations.rb +22 -0
  29. data/lib/fog/compute/packet/models/invitation.rb +36 -0
  30. data/lib/fog/compute/packet/models/invitations.rb +22 -0
  31. data/lib/fog/compute/packet/models/ip.rb +60 -0
  32. data/lib/fog/compute/packet/models/ips.rb +22 -0
  33. data/lib/fog/compute/packet/models/license.rb +55 -0
  34. data/lib/fog/compute/packet/models/licenses.rb +22 -0
  35. data/lib/fog/compute/packet/models/membership.rb +38 -0
  36. data/lib/fog/compute/packet/models/memberships.rb +22 -0
  37. data/lib/fog/compute/packet/models/notification.rb +31 -0
  38. data/lib/fog/compute/packet/models/notifications.rb +22 -0
  39. data/lib/fog/compute/packet/models/operating_system.rb +23 -0
  40. data/lib/fog/compute/packet/models/operating_systems.rb +17 -0
  41. data/lib/fog/compute/packet/models/organization.rb +71 -0
  42. data/lib/fog/compute/packet/models/organizations.rb +22 -0
  43. data/lib/fog/compute/packet/models/payment_method.rb +63 -0
  44. data/lib/fog/compute/packet/models/payment_methods.rb +22 -0
  45. data/lib/fog/compute/packet/models/plan.rb +23 -0
  46. data/lib/fog/compute/packet/models/plans.rb +17 -0
  47. data/lib/fog/compute/packet/models/project.rb +47 -0
  48. data/lib/fog/compute/packet/models/projects.rb +22 -0
  49. data/lib/fog/compute/packet/models/session.rb +22 -0
  50. data/lib/fog/compute/packet/models/sessions.rb +26 -0
  51. data/lib/fog/compute/packet/models/snapshot.rb +33 -0
  52. data/lib/fog/compute/packet/models/snapshots.rb +22 -0
  53. data/lib/fog/compute/packet/models/spot_market_price.rb +15 -0
  54. data/lib/fog/compute/packet/models/spot_market_prices.rb +22 -0
  55. data/lib/fog/compute/packet/models/ssh_key.rb +51 -0
  56. data/lib/fog/compute/packet/models/ssh_keys.rb +22 -0
  57. data/lib/fog/compute/packet/models/transfer_request.rb +34 -0
  58. data/lib/fog/compute/packet/models/transfer_requests.rb +27 -0
  59. data/lib/fog/compute/packet/models/two_factor_auth.rb +18 -0
  60. data/lib/fog/compute/packet/models/user.rb +56 -0
  61. data/lib/fog/compute/packet/models/users.rb +22 -0
  62. data/lib/fog/compute/packet/models/virtual_network.rb +76 -0
  63. data/lib/fog/compute/packet/models/virtual_networks.rb +17 -0
  64. data/lib/fog/compute/packet/models/volume.rb +96 -0
  65. data/lib/fog/compute/packet/models/volumes.rb +23 -0
  66. data/lib/fog/compute/packet/models/vpn.rb +16 -0
  67. data/lib/fog/compute/packet/models/vpns.rb +27 -0
  68. data/lib/fog/compute/packet/requests/accept_invitation.rb +43 -0
  69. data/lib/fog/compute/packet/requests/accept_transfer_request.rb +26 -0
  70. data/lib/fog/compute/packet/requests/assign_ip.rb +32 -0
  71. data/lib/fog/compute/packet/requests/assign_port.rb +25 -0
  72. data/lib/fog/compute/packet/requests/attach_volume.rb +41 -0
  73. data/lib/fog/compute/packet/requests/bond_ports.rb +25 -0
  74. data/lib/fog/compute/packet/requests/create_batch.rb +43 -0
  75. data/lib/fog/compute/packet/requests/create_bgp_session.rb +37 -0
  76. data/lib/fog/compute/packet/requests/create_device.rb +212 -0
  77. data/lib/fog/compute/packet/requests/create_email.rb +38 -0
  78. data/lib/fog/compute/packet/requests/create_license.rb +46 -0
  79. data/lib/fog/compute/packet/requests/create_organization.rb +87 -0
  80. data/lib/fog/compute/packet/requests/create_payment_method.rb +63 -0
  81. data/lib/fog/compute/packet/requests/create_project.rb +72 -0
  82. data/lib/fog/compute/packet/requests/create_snapshot.rb +25 -0
  83. data/lib/fog/compute/packet/requests/create_ssh_key.rb +44 -0
  84. data/lib/fog/compute/packet/requests/create_virtual_network.rb +49 -0
  85. data/lib/fog/compute/packet/requests/create_volume.rb +70 -0
  86. data/lib/fog/compute/packet/requests/decline_invitation.rb +43 -0
  87. data/lib/fog/compute/packet/requests/decline_transfer_request.rb +26 -0
  88. data/lib/fog/compute/packet/requests/delete_bgp_session.rb +25 -0
  89. data/lib/fog/compute/packet/requests/delete_device.rb +25 -0
  90. data/lib/fog/compute/packet/requests/delete_email.rb +25 -0
  91. data/lib/fog/compute/packet/requests/delete_license.rb +25 -0
  92. data/lib/fog/compute/packet/requests/delete_membership.rb +25 -0
  93. data/lib/fog/compute/packet/requests/delete_organization.rb +25 -0
  94. data/lib/fog/compute/packet/requests/delete_payment_method.rb +25 -0
  95. data/lib/fog/compute/packet/requests/delete_project.rb +25 -0
  96. data/lib/fog/compute/packet/requests/delete_session.rb +27 -0
  97. data/lib/fog/compute/packet/requests/delete_snapshot.rb +25 -0
  98. data/lib/fog/compute/packet/requests/delete_ssh_key.rb +25 -0
  99. data/lib/fog/compute/packet/requests/delete_virtual_network.rb +25 -0
  100. data/lib/fog/compute/packet/requests/delete_volume.rb +25 -0
  101. data/lib/fog/compute/packet/requests/detach_volume.rb +36 -0
  102. data/lib/fog/compute/packet/requests/disable_two_factor_auth.rb +27 -0
  103. data/lib/fog/compute/packet/requests/disable_vpn.rb +25 -0
  104. data/lib/fog/compute/packet/requests/disbond_ports.rb +25 -0
  105. data/lib/fog/compute/packet/requests/enable_two_factor_auth.rb +26 -0
  106. data/lib/fog/compute/packet/requests/enable_vpn.rb +25 -0
  107. data/lib/fog/compute/packet/requests/get_bandwidth.rb +31 -0
  108. data/lib/fog/compute/packet/requests/get_batch.rb +38 -0
  109. data/lib/fog/compute/packet/requests/get_bgp_session.rb +37 -0
  110. data/lib/fog/compute/packet/requests/get_capacity.rb +165 -0
  111. data/lib/fog/compute/packet/requests/get_device.rb +189 -0
  112. data/lib/fog/compute/packet/requests/get_email.rb +32 -0
  113. data/lib/fog/compute/packet/requests/get_hardware_reservation.rb +193 -0
  114. data/lib/fog/compute/packet/requests/get_invitation.rb +43 -0
  115. data/lib/fog/compute/packet/requests/get_ip.rb +60 -0
  116. data/lib/fog/compute/packet/requests/get_license.rb +37 -0
  117. data/lib/fog/compute/packet/requests/get_membership.rb +40 -0
  118. data/lib/fog/compute/packet/requests/get_notification.rb +40 -0
  119. data/lib/fog/compute/packet/requests/get_organization.rb +61 -0
  120. data/lib/fog/compute/packet/requests/get_payment_method.rb +56 -0
  121. data/lib/fog/compute/packet/requests/get_project.rb +67 -0
  122. data/lib/fog/compute/packet/requests/get_ssh_key.rb +38 -0
  123. data/lib/fog/compute/packet/requests/get_transfer_request.rb +38 -0
  124. data/lib/fog/compute/packet/requests/get_user.rb +56 -0
  125. data/lib/fog/compute/packet/requests/get_volume.rb +60 -0
  126. data/lib/fog/compute/packet/requests/get_vpn.rb +29 -0
  127. data/lib/fog/compute/packet/requests/list_batches.rb +33 -0
  128. data/lib/fog/compute/packet/requests/list_bgp_sessions.rb +32 -0
  129. data/lib/fog/compute/packet/requests/list_devices.rb +33 -0
  130. data/lib/fog/compute/packet/requests/list_events.rb +33 -0
  131. data/lib/fog/compute/packet/requests/list_facilities.rb +57 -0
  132. data/lib/fog/compute/packet/requests/list_hardware_reservations.rb +216 -0
  133. data/lib/fog/compute/packet/requests/list_invitations.rb +48 -0
  134. data/lib/fog/compute/packet/requests/list_ips.rb +65 -0
  135. data/lib/fog/compute/packet/requests/list_licenses.rb +42 -0
  136. data/lib/fog/compute/packet/requests/list_memberships.rb +45 -0
  137. data/lib/fog/compute/packet/requests/list_notifications.rb +45 -0
  138. data/lib/fog/compute/packet/requests/list_operating_systems.rb +66 -0
  139. data/lib/fog/compute/packet/requests/list_organizations.rb +81 -0
  140. data/lib/fog/compute/packet/requests/list_payment_methods.rb +76 -0
  141. data/lib/fog/compute/packet/requests/list_plans.rb +92 -0
  142. data/lib/fog/compute/packet/requests/list_projects.rb +87 -0
  143. data/lib/fog/compute/packet/requests/list_sessions.rb +40 -0
  144. data/lib/fog/compute/packet/requests/list_snapshots.rb +40 -0
  145. data/lib/fog/compute/packet/requests/list_spotmarketprices.rb +173 -0
  146. data/lib/fog/compute/packet/requests/list_spotmarketprices_history.rb +42 -0
  147. data/lib/fog/compute/packet/requests/list_ssh_keys.rb +50 -0
  148. data/lib/fog/compute/packet/requests/list_transfer_requests.rb +43 -0
  149. data/lib/fog/compute/packet/requests/list_users.rb +61 -0
  150. data/lib/fog/compute/packet/requests/list_virtual_networks.rb +62 -0
  151. data/lib/fog/compute/packet/requests/list_volumes.rb +65 -0
  152. data/lib/fog/compute/packet/requests/move_hardware_reservation.rb +43 -0
  153. data/lib/fog/compute/packet/requests/poweroff_device.rb +194 -0
  154. data/lib/fog/compute/packet/requests/poweron_device.rb +194 -0
  155. data/lib/fog/compute/packet/requests/reboot_device.rb +194 -0
  156. data/lib/fog/compute/packet/requests/request_email_verification.rb +25 -0
  157. data/lib/fog/compute/packet/requests/reserve_ip.rb +37 -0
  158. data/lib/fog/compute/packet/requests/session_login.rb +25 -0
  159. data/lib/fog/compute/packet/requests/transfer_project.rb +43 -0
  160. data/lib/fog/compute/packet/requests/unassign_ip.rb +24 -0
  161. data/lib/fog/compute/packet/requests/unassign_port.rb +25 -0
  162. data/lib/fog/compute/packet/requests/update_device.rb +201 -0
  163. data/lib/fog/compute/packet/requests/update_email.rb +37 -0
  164. data/lib/fog/compute/packet/requests/update_license.rb +42 -0
  165. data/lib/fog/compute/packet/requests/update_membership.rb +43 -0
  166. data/lib/fog/compute/packet/requests/update_notification.rb +40 -0
  167. data/lib/fog/compute/packet/requests/update_organization.rb +85 -0
  168. data/lib/fog/compute/packet/requests/update_payment_method.rb +63 -0
  169. data/lib/fog/compute/packet/requests/update_project.rb +71 -0
  170. data/lib/fog/compute/packet/requests/update_ssh_key.rb +43 -0
  171. data/lib/fog/compute/packet/requests/update_user.rb +65 -0
  172. data/lib/fog/compute/packet/requests/update_volume.rb +66 -0
  173. data/lib/fog/compute/packet/requests/validate_capacity.rb +38 -0
  174. data/lib/fog/compute/packet/requests/verify_email.rb +36 -0
  175. data/tests/packet/models/test_batches.rb +45 -0
  176. data/tests/packet/models/test_bgp_sessions.rb +52 -0
  177. data/tests/packet/models/test_capacity.rb +40 -0
  178. data/tests/packet/models/test_devices.rb +93 -0
  179. data/tests/packet/models/test_email_verification.rb +25 -0
  180. data/tests/packet/models/test_emails.rb +45 -0
  181. data/tests/packet/models/test_facilities.rb +18 -0
  182. data/tests/packet/models/test_hardware_reservations.rb +38 -0
  183. data/tests/packet/models/test_invitations.rb +41 -0
  184. data/tests/packet/models/test_ips.rb +52 -0
  185. data/tests/packet/models/test_licenses.rb +56 -0
  186. data/tests/packet/models/test_memberships.rb +41 -0
  187. data/tests/packet/models/test_notifications.rb +35 -0
  188. data/tests/packet/models/test_operating_systems.rb +19 -0
  189. data/tests/packet/models/test_organizations.rb +67 -0
  190. data/tests/packet/models/test_payment_methods.rb +61 -0
  191. data/tests/packet/models/test_plans.rb +19 -0
  192. data/tests/packet/models/test_projects.rb +41 -0
  193. data/tests/packet/models/test_sessions.rb +34 -0
  194. data/tests/packet/models/test_snapshots.rb +43 -0
  195. data/tests/packet/models/test_spotmarketprices.rb +28 -0
  196. data/tests/packet/models/test_ssh_keys.rb +58 -0
  197. data/tests/packet/models/test_transfer_requests.rb +49 -0
  198. data/tests/packet/models/test_two_factor_auth.rb +29 -0
  199. data/tests/packet/models/test_users.rb +47 -0
  200. data/tests/packet/models/test_virtual_networks.rb +81 -0
  201. data/tests/packet/models/test_volumes.rb +70 -0
  202. data/tests/packet/models/test_vpns.rb +37 -0
  203. data/tests/packet/requests/test_batches.rb +45 -0
  204. data/tests/packet/requests/test_bgp_sessions.rb +64 -0
  205. data/tests/packet/requests/test_capacity.rb +40 -0
  206. data/tests/packet/requests/test_devices.rb +104 -0
  207. data/tests/packet/requests/test_email_verification.rb +25 -0
  208. data/tests/packet/requests/test_emails.rb +51 -0
  209. data/tests/packet/requests/test_facilities.rb +19 -0
  210. data/tests/packet/requests/test_hardware_reservations.rb +38 -0
  211. data/tests/packet/requests/test_invitations.rb +40 -0
  212. data/tests/packet/requests/test_ips.rb +66 -0
  213. data/tests/packet/requests/test_licenses.rb +56 -0
  214. data/tests/packet/requests/test_memberships.rb +43 -0
  215. data/tests/packet/requests/test_notifications.rb +40 -0
  216. data/tests/packet/requests/test_operating_systems.rb +19 -0
  217. data/tests/packet/requests/test_organizations.rb +64 -0
  218. data/tests/packet/requests/test_payment_methods.rb +60 -0
  219. data/tests/packet/requests/test_plans.rb +21 -0
  220. data/tests/packet/requests/test_projects.rb +40 -0
  221. data/tests/packet/requests/test_sessions.rb +34 -0
  222. data/tests/packet/requests/test_snapshots.rb +57 -0
  223. data/tests/packet/requests/test_sportmarketprices.rb +29 -0
  224. data/tests/packet/requests/test_ssh_keys.rb +60 -0
  225. data/tests/packet/requests/test_transfer_requests.rb +46 -0
  226. data/tests/packet/requests/test_two_factor_auth.rb +29 -0
  227. data/tests/packet/requests/test_users.rb +48 -0
  228. data/tests/packet/requests/test_virtual_networks.rb +100 -0
  229. data/tests/packet/requests/test_volumes.rb +95 -0
  230. data/tests/packet/requests/test_vpns.rb +38 -0
  231. data/tests/test_helper.rb +4 -0
  232. metadata +345 -0
@@ -0,0 +1,66 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # HardwareReservation Model
5
+ class HardwareReservation < Fog::Model
6
+ identity :id
7
+
8
+ attribute :short_id
9
+ attribute :hostname
10
+ attribute :facility
11
+ attribute :plan
12
+ attribute :operating_system
13
+ attribute :billing_cycle
14
+ attribute :project_id
15
+ attribute :userdata
16
+ attribute :storage
17
+ attribute :ipxe_script_url
18
+ attribute :public_ipv4_subnet_size
19
+ attribute :always_pxe
20
+ attribute :hardware_reservation_id
21
+ attribute :spot_instance
22
+ attribute :spot_price_max
23
+ attribute :termination_time
24
+ attribute :description
25
+ attribute :name
26
+ attribute :href
27
+ attribute :state
28
+ attribute :created_at
29
+ attribute :updated_at
30
+ attribute :locked
31
+ attribute :tags
32
+ attribute :ip_addresses
33
+ attribute :address
34
+ attribute :volumes
35
+ attribute :project
36
+ attribute :provisioning_events
37
+ attribute :provisioning_percentage
38
+ attribute :root_password
39
+ attribute :hardware_reservation
40
+ attribute :project_ssh_keys
41
+ attribute :network_ports
42
+ attribute :user_ssh_keys
43
+ attribute :features
44
+ attribute :image_url
45
+ attribute :user
46
+ attribute :iqn
47
+ attribute :bonding_mode
48
+ attribute :customdata
49
+ attribute :location
50
+ attribute :project_lite
51
+ attribute :ssh_keys
52
+
53
+ def initialize(attributes = {})
54
+ super
55
+ end
56
+
57
+ def move(project_id)
58
+ requires :id
59
+
60
+ response = service.move_hardware_reservation(id, project_id)
61
+ true if response.status == 200
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "hardware_reservation"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # HardwareReservations Collection
7
+ class HardwareReservations < Fog::Collection
8
+ model Fog::Compute::Packet::HardwareReservation
9
+
10
+ def all(project_id, params = {})
11
+ response = service.list_hardware_reservations(project_id, params)
12
+ load(response.body["hardware_reservations"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_hardware_reservation(id)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,36 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Invitation Model
5
+ class Invitation < Fog::Model
6
+ identity :id
7
+
8
+ attribute :roles
9
+ attribute :invitee
10
+ attribute :invited_by
11
+ attribute :invitable
12
+ attribute :created_at
13
+ attribute :updated_at
14
+ attribute :href
15
+
16
+ def initialize(attributes = {})
17
+ super
18
+ end
19
+
20
+ def accept
21
+ requires :id
22
+
23
+ response = service.accept_invitation(id)
24
+ merge_attributes(response.body)
25
+ end
26
+
27
+ def decline
28
+ requires :id
29
+
30
+ response = service.decline_invitation(id)
31
+ merge_attributes(response.body)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "invitation"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Invitations Collection
7
+ class Invitations < Fog::Collection
8
+ model Fog::Compute::Packet::Invitation
9
+
10
+ def all(project_id, params = {})
11
+ response = service.list_invitations(project_id, params)
12
+ load(response.body["invitations"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_notification(id)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,60 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Ip Model
5
+ class Ip < Fog::Model
6
+ identity :id
7
+
8
+ attribute :address
9
+ attribute :gateway
10
+ attribute :network
11
+ attribute :address_family
12
+ attribute :netmask
13
+ attribute :public
14
+ attribute :cidr
15
+ attribute :created_at
16
+ attribute :updated_at
17
+ attribute :href
18
+ attribute :management
19
+ attribute :manageable
20
+ attribute :project
21
+ attribute :project_id
22
+ attribute :quantity
23
+ attribute :type
24
+ attribute :facility
25
+
26
+ def initialize(attributes = {})
27
+ super
28
+ end
29
+
30
+ def save
31
+ requires :project_id, :facility, :type, :quantity
32
+
33
+ options = {}
34
+ options[:quantity] = quantity
35
+ options[:type] = type
36
+ options[:facility] = facility
37
+ response = service.reserve_ip(project_id, options)
38
+
39
+ merge_attributes(response.body)
40
+ end
41
+
42
+ def assign(device_id)
43
+ requires :address, :manageable
44
+
45
+ options = {}
46
+ options[:address] = address
47
+ options[:manageable] = manageable
48
+
49
+ response = service.assign_ip(device_id, options)
50
+ true if response.status == 201
51
+ end
52
+
53
+ def unassign
54
+ response = service.unassign_ip(id)
55
+ true if response.status == 204
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "ip"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Ips Collection
7
+ class Ips < Fog::Collection
8
+ model Fog::Compute::Packet::Ip
9
+
10
+ def all(project_id)
11
+ response = service.list_ips(project_id)
12
+ load(response.body["ip_addresses"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_ip(id)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,55 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # License Model
5
+ class License < Fog::Model
6
+ identity :id
7
+
8
+ attribute :description
9
+ attribute :license_key
10
+ attribute :licensee_product
11
+ attribute :size
12
+ attribute :devices
13
+ attribute :project
14
+ attribute :license_product_id
15
+ attribute :project_id
16
+
17
+ def initialize(attributes = {})
18
+ super
19
+ end
20
+
21
+ def save
22
+ requires :project_id, :description, :size
23
+
24
+ options = {
25
+ :description => description,
26
+ :size => size
27
+ }
28
+
29
+ options[:license_product_id] = license_product_id if license_product_id
30
+
31
+ response = service.create_license(project_id, options)
32
+ merge_attributes(response.body) if response.status == 201
33
+ end
34
+
35
+ def update
36
+ requires :id
37
+ options = {
38
+ :description => description,
39
+ :size => size
40
+ }
41
+
42
+ response = service.update_license(id, options)
43
+ merge_attributes(response.body) if response.status == 200
44
+ end
45
+
46
+ def destroy
47
+ requires :id
48
+
49
+ response = service.delete_license(id)
50
+ true if response.status == 204
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "license"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Licenses Collection
7
+ class Licenses < Fog::Collection
8
+ model Fog::Compute::Packet::License
9
+
10
+ def all(project_id, params = {})
11
+ response = service.list_licenses(project_id, params)
12
+ load(response.body["licenses"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_license(id)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Membership Model
5
+ class Membership < Fog::Model
6
+ identity :id
7
+
8
+ attribute :error_messages
9
+ attribute :roles
10
+ attribute :user
11
+ attribute :project
12
+ attribute :href
13
+ attribute :created_at
14
+ attribute :updated_at
15
+
16
+ def initialize(attributes = {})
17
+ super
18
+ end
19
+
20
+ def update
21
+ requires :id
22
+ options = {
23
+ :roles => roles
24
+ }
25
+
26
+ response = service.update_membership(id, options)
27
+ merge_attributes(response.body) if response.status == 200
28
+ end
29
+
30
+ def destroy
31
+ requires :id
32
+ response = service.delete_membership(id)
33
+ true if response.status == 204
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "membership"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Memberships Collection
7
+ class Memberships < Fog::Collection
8
+ model Fog::Compute::Packet::Membership
9
+
10
+ def all(project_id, params = {})
11
+ response = service.list_memberships(project_id, params)
12
+ load(response.body["memberships"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_membership(id)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Notification Model
5
+ class Notification < Fog::Model
6
+ identity :id
7
+
8
+ attribute :type
9
+ attribute :body
10
+ attribute :severity
11
+ attribute :read
12
+ attribute :context
13
+ attribute :created_at
14
+ attribute :updated_at
15
+ attribute :user
16
+ attribute :href
17
+
18
+ def initialize(attributes = {})
19
+ super
20
+ end
21
+
22
+ def update
23
+ requires :id
24
+
25
+ response = service.update_notification(id)
26
+ merge_attributes(response.body)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "notification"
2
+
3
+ module Fog
4
+ module Compute
5
+ class Packet
6
+ # Notifications Collection
7
+ class Notifications < Fog::Collection
8
+ model Fog::Compute::Packet::Notification
9
+
10
+ def all(params = {})
11
+ response = service.list_notifications(params)
12
+ load(response.body["notifications"])
13
+ end
14
+
15
+ def get(id)
16
+ response = service.get_notification(id)
17
+ new(response.body)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class Packet
4
+ # Plan
5
+ class OperatingSystem < Fog::Model
6
+ identity :id
7
+
8
+ attribute :slug
9
+ attribute :name
10
+ attribute :distro
11
+ attribute :version
12
+ attribute :provisionable_on
13
+ attribute :default_cidr_size
14
+
15
+ attr_accessor :options
16
+
17
+ def initialize(attributes = {})
18
+ super
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end