enstratus 0.0.1

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 (115) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +4 -0
  3. data/NOTES.md +80 -0
  4. data/README.md +51 -0
  5. data/Rakefile +1 -0
  6. data/TODO.md +21 -0
  7. data/config-sample.yaml +5 -0
  8. data/enstratus.gemspec +24 -0
  9. data/examples/list-servers.rb +17 -0
  10. data/lib/enstratus.rb +49 -0
  11. data/lib/enstratus/admin.rb +13 -0
  12. data/lib/enstratus/admin/account.rb +30 -0
  13. data/lib/enstratus/admin/acl.rb +8 -0
  14. data/lib/enstratus/admin/api_key.rb +24 -0
  15. data/lib/enstratus/admin/billing_code.rb +21 -0
  16. data/lib/enstratus/admin/customer.rb +25 -0
  17. data/lib/enstratus/admin/group.rb +12 -0
  18. data/lib/enstratus/admin/job.rb +16 -0
  19. data/lib/enstratus/admin/role.rb +13 -0
  20. data/lib/enstratus/admin/user.rb +30 -0
  21. data/lib/enstratus/analytics.rb +6 -0
  22. data/lib/enstratus/analytics/server_analytics.rb +12 -0
  23. data/lib/enstratus/analytics/tier_analytics.rb +12 -0
  24. data/lib/enstratus/automation.rb +19 -0
  25. data/lib/enstratus/automation/configuration_management_account.rb +0 -0
  26. data/lib/enstratus/automation/configuration_management_server.rb +0 -0
  27. data/lib/enstratus/automation/configuration_management_service.rb +0 -0
  28. data/lib/enstratus/automation/configuration_management_system.rb +0 -0
  29. data/lib/enstratus/automation/data_source.rb +0 -0
  30. data/lib/enstratus/automation/data_source_backup.rb +0 -0
  31. data/lib/enstratus/automation/deployment.rb +30 -0
  32. data/lib/enstratus/automation/deployment_load_balancer.rb +14 -0
  33. data/lib/enstratus/automation/launch_configuration.rb +0 -0
  34. data/lib/enstratus/automation/personality.rb +0 -0
  35. data/lib/enstratus/automation/script.rb +0 -0
  36. data/lib/enstratus/automation/service.rb +0 -0
  37. data/lib/enstratus/automation/service_backup.rb +0 -0
  38. data/lib/enstratus/automation/ssl_certificate.rb +0 -0
  39. data/lib/enstratus/automation/tier.rb +28 -0
  40. data/lib/enstratus/automation/tier_backup.rb +0 -0
  41. data/lib/enstratus/configuration.rb +13 -0
  42. data/lib/enstratus/finance.rb +5 -0
  43. data/lib/enstratus/finance/server_prepayment.rb +29 -0
  44. data/lib/enstratus/geography.rb +8 -0
  45. data/lib/enstratus/geography/cloud.rb +16 -0
  46. data/lib/enstratus/geography/data_center.rb +14 -0
  47. data/lib/enstratus/geography/region.rb +14 -0
  48. data/lib/enstratus/geography/subscription.rb +51 -0
  49. data/lib/enstratus/infrastructure.rb +11 -0
  50. data/lib/enstratus/infrastructure/machine_image.rb +31 -0
  51. data/lib/enstratus/infrastructure/server.rb +50 -0
  52. data/lib/enstratus/infrastructure/server_product.rb +21 -0
  53. data/lib/enstratus/infrastructure/snapshot.rb +32 -0
  54. data/lib/enstratus/infrastructure/volume.rb +31 -0
  55. data/lib/enstratus/infrastructure/volume_product.rb +4 -0
  56. data/lib/enstratus/network.rb +10 -0
  57. data/lib/enstratus/network/dns_zone.rb +0 -0
  58. data/lib/enstratus/network/firewall.rb +0 -0
  59. data/lib/enstratus/network/firewall_rule.rb +0 -0
  60. data/lib/enstratus/network/load_balancer.rb +0 -0
  61. data/lib/enstratus/network/network.rb +0 -0
  62. data/lib/enstratus/network/subnet.rb +0 -0
  63. data/lib/enstratus/platform.rb +47 -0
  64. data/lib/enstratus/platform/account_status.rb +0 -0
  65. data/lib/enstratus/platform/action.rb +0 -0
  66. data/lib/enstratus/platform/alert_configuration.rb +0 -0
  67. data/lib/enstratus/platform/algorithm.rb +0 -0
  68. data/lib/enstratus/platform/architecture.rb +0 -0
  69. data/lib/enstratus/platform/backup_status.rb +0 -0
  70. data/lib/enstratus/platform/breach_state.rb +0 -0
  71. data/lib/enstratus/platform/budget_state.rb +0 -0
  72. data/lib/enstratus/platform/cloud_subscription.rb +0 -0
  73. data/lib/enstratus/platform/color.rb +0 -0
  74. data/lib/enstratus/platform/credit_card.rb +0 -0
  75. data/lib/enstratus/platform/database_engine.rb +0 -0
  76. data/lib/enstratus/platform/deployment_state.rb +0 -0
  77. data/lib/enstratus/platform/deployment_type.rb +0 -0
  78. data/lib/enstratus/platform/distribution.rb +0 -0
  79. data/lib/enstratus/platform/dns_automation.rb +0 -0
  80. data/lib/enstratus/platform/dns_record.rb +0 -0
  81. data/lib/enstratus/platform/dns_record_type.rb +0 -0
  82. data/lib/enstratus/platform/event_type.rb +0 -0
  83. data/lib/enstratus/platform/job_status.rb +0 -0
  84. data/lib/enstratus/platform/jrusdiction.rb +0 -0
  85. data/lib/enstratus/platform/jurisdiction.rb +0 -0
  86. data/lib/enstratus/platform/key_value_database.rb +0 -0
  87. data/lib/enstratus/platform/lb_protocol.rb +0 -0
  88. data/lib/enstratus/platform/listener.rb +0 -0
  89. data/lib/enstratus/platform/load_balancer_scope.rb +0 -0
  90. data/lib/enstratus/platform/load_balancer_type.rb +0 -0
  91. data/lib/enstratus/platform/management_state.rb +0 -0
  92. data/lib/enstratus/platform/managment_state.rb +0 -0
  93. data/lib/enstratus/platform/message_queue.rb +0 -0
  94. data/lib/enstratus/platform/money.rb +0 -0
  95. data/lib/enstratus/platform/notification_setting.rb +0 -0
  96. data/lib/enstratus/platform/notification_targets.rb +0 -0
  97. data/lib/enstratus/platform/physical_address.rb +0 -0
  98. data/lib/enstratus/platform/platform.rb +0 -0
  99. data/lib/enstratus/platform/properties.rb +0 -0
  100. data/lib/enstratus/platform/protocol.rb +0 -0
  101. data/lib/enstratus/platform/push_notification_topic.rb +0 -0
  102. data/lib/enstratus/platform/qualifier.rb +0 -0
  103. data/lib/enstratus/platform/relational_database.rb +0 -0
  104. data/lib/enstratus/platform/relational_database_product.rb +0 -0
  105. data/lib/enstratus/platform/resource_type.rb +0 -0
  106. data/lib/enstratus/platform/scaling_rules.rb +0 -0
  107. data/lib/enstratus/platform/server_state.rb +0 -0
  108. data/lib/enstratus/platform/storage_object.rb +0 -0
  109. data/lib/enstratus/presenter.rb +0 -0
  110. data/lib/enstratus/request.rb +36 -0
  111. data/lib/enstratus/request_signer.rb +26 -0
  112. data/lib/enstratus/resource.rb +92 -0
  113. data/lib/enstratus/util.rb +5 -0
  114. data/lib/enstratus/version.rb +3 -0
  115. metadata +175 -0
@@ -0,0 +1,30 @@
1
+ module Enstratus::Admin
2
+ class User < Enstratus::Resource
3
+
4
+ attribute :user_id
5
+ attribute :status
6
+
7
+ # elements
8
+ attribute :account_user_id
9
+ attribute :alpha_name
10
+ attribute :billing_codes
11
+ attribute :cloud_api_public_key
12
+ attribute :cloud_api_secret_key
13
+ attribute :cloud_console_password
14
+ attribute :customer
15
+ attribute :editable
16
+ attribute :email
17
+ attribute :family_name
18
+ attribute :given_name
19
+ attribute :has_cloud_ap_iaccess
20
+ attribute :groups
21
+ attribute :notification_settings
22
+ attribute :notification_targets
23
+ attribute :ssh_public_key
24
+ attribute :time_zone
25
+ attribute :vm_login_id
26
+
27
+ # (docerror :undocumented)
28
+ attribute :has_cloud_console_access
29
+ end
30
+ end
@@ -0,0 +1,6 @@
1
+ module Enstratus
2
+ module Analytics; end
3
+ end
4
+
5
+ require 'enstratus/analytics/server_analytics'
6
+ require 'enstratus/analytics/tier_analytics'
@@ -0,0 +1,12 @@
1
+ module Enstratus::Analytics
2
+ class ServerAnalytics < Enstratus::Resource
3
+
4
+ attribute :server_id
5
+
6
+ # elements
7
+ attribute :data_points
8
+ attribute :interval_in_minutes
9
+ attribute :period_end
10
+ attribute :period_start
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Enstratus::Analytics
2
+ class TierAnalytics < Enstratus::Resource
3
+
4
+ attribute :tier_id
5
+
6
+ # elements
7
+ attribute :data_points
8
+ attribute :interval_in_minutes
9
+ attribute :period_end
10
+ attribute :period_start
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ module Enstratus
2
+ module Automation; end
3
+ end
4
+
5
+ require 'enstratus/automation/configuration_management_account'
6
+ require 'enstratus/automation/configuration_management_server'
7
+ require 'enstratus/automation/configuration_management_system'
8
+ require 'enstratus/automation/data_source'
9
+ require 'enstratus/automation/data_source_backup'
10
+ require 'enstratus/automation/deployment'
11
+ require 'enstratus/automation/deployment_load_balancer'
12
+ require 'enstratus/automation/launch_configuration'
13
+ require 'enstratus/automation/personality'
14
+ require 'enstratus/automation/script'
15
+ require 'enstratus/automation/service'
16
+ require 'enstratus/automation/tier'
17
+ require 'enstratus/automation/tier_backup'
18
+ require 'enstratus/automation/service_backup'
19
+ require 'enstratus/automation/ssl_certificate'
@@ -0,0 +1,30 @@
1
+ module Enstratus::Automation
2
+ class Deployment < Enstratus::Resource
3
+
4
+ attribute :budget
5
+ attribute :deployment_id
6
+ attribute :removable
7
+ attribute :status
8
+ attribute :type
9
+
10
+ # elements
11
+ attribute :backup_window
12
+ attribute :creation_timestamp
13
+ attribute :customer
14
+ attribute :description
15
+ attribute :dr_storage
16
+ attribute :for_service_catalog
17
+ attribute :label
18
+ attribute :launch_timestamp
19
+ attribute :load_balancers
20
+ attribute :maintenance_window
21
+ attribute :name
22
+ attribute :owning_groups
23
+ attribute :owning_user
24
+ attribute :reason_not_removable
25
+ attribute :regions
26
+
27
+ # (docerror :notdocumented)
28
+ attribute :catalog_item
29
+ end
30
+ end
@@ -0,0 +1,14 @@
1
+ module Enstratus::Automation
2
+ class DeploymentLoadBalancer < Enstratus::Resource
3
+
4
+ attribute :load_balancer_id
5
+ attribute :scope
6
+ attribute :type
7
+
8
+ # elements
9
+ attribute :firewalls
10
+ attribute :machine_image
11
+ attribute :product
12
+
13
+ end
14
+ end
File without changes
File without changes
@@ -0,0 +1,28 @@
1
+ module Enstratus::Automation
2
+ class Tier < Enstratus::Resource
3
+ # all - requires deploymentId
4
+
5
+ attribute :tier_id
6
+ attribute :removable
7
+ attribute :status
8
+
9
+ # elements
10
+ attribute :breach_increment
11
+ attribute :breach_period_in_minutes
12
+ attribute :cooldown_period_in_minutes
13
+ attribute :description
14
+ attribute :lable
15
+ attribute :last_breach_change_timestamp
16
+ attribute :lower_cpu_threshold
17
+ attribute :lower_ram_threshold
18
+ attribute :maximum_servers
19
+ attribute :minimum_servers
20
+ attribute :name
21
+ attribute :scaling_rules
22
+ attribute :upper_cpu_threshold
23
+ attribute :upper_ram_threshold
24
+
25
+ # (docerror :notdocumented)
26
+ attribute :deployment
27
+ end
28
+ end
@@ -0,0 +1,13 @@
1
+ module Enstratus
2
+ class Configuration
3
+ attr_accessor :access_key, :secret_key, :endpoint, :version, :debug
4
+
5
+ def initialize
6
+ @access_key ||= '12345678'
7
+ @secret_key ||= 'abcdefghi'
8
+ @endpoint ||= 'https://api.enstratus.com'
9
+ @version ||= '2012-02-29'
10
+ @debug ||= false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ module Enstratus
2
+ module Finance; end
3
+ end
4
+
5
+ require 'enstratus/finance/server_prepayment'
@@ -0,0 +1,29 @@
1
+ module Enstratus::Finance
2
+ class ServerPrepayment < Enstratus::Resource
3
+
4
+ attribute :server_prepayment_id
5
+ attribute :status
6
+
7
+ # elements
8
+ attribute :account
9
+ attribute :billing_preferences
10
+ attribute :cloud
11
+ attribute :currency
12
+ attribute :data_center
13
+ attribute :description
14
+ attribute :expiration
15
+ attribute :fixed_fee
16
+ attribute :guid
17
+ attribute :hourly_fee
18
+ attribute :label
19
+ attribute :name
20
+ attribute :owning_groups
21
+ attribute :owning_user
22
+ attribute :period_in_days
23
+ attribute :period_start
24
+ attribute :provider_id
25
+ attribute :provider_product_id
26
+ attribute :region
27
+ attribute :server_count
28
+ end
29
+ end
@@ -0,0 +1,8 @@
1
+ module Enstratus
2
+ module Geography; end
3
+ end
4
+
5
+ require 'enstratus/geography/cloud'
6
+ require 'enstratus/geography/data_center'
7
+ require 'enstratus/geography/region'
8
+ require 'enstratus/geography/subscription'
@@ -0,0 +1,16 @@
1
+ module Enstratus::Geography
2
+ class Cloud < Enstratus::Resource
3
+
4
+ attribute :cloud_id
5
+ attribute :private_cloud
6
+ attribute :status
7
+ attribute :dasein_compute_delegate
8
+ attribute :dasein_storage_delegate
9
+ attribute :endpoint
10
+ attribute :logo_url
11
+ attribute :name
12
+ attribute :provider
13
+ attribute :status_url
14
+ attribute :web_url
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ module Enstratus::Geography
2
+ class DataCenter < Enstratus::Resource
3
+
4
+ collects_as :dataCenters
5
+
6
+ attribute :data_center_id
7
+ attribute :status
8
+ attribute :description
9
+ attribute :name
10
+ attribute :provider_id
11
+ attribute :region
12
+
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Enstratus::Geography
2
+ class Region < Enstratus::Resource
3
+
4
+ attribute :region_id
5
+ attribute :status
6
+ attribute :cloud
7
+ attribute :customer
8
+ attribute :description
9
+ attribute :jurisdiction
10
+ attribute :name
11
+ attribute :provider_id
12
+
13
+ end
14
+ end
@@ -0,0 +1,51 @@
1
+ module Enstratus::Geography
2
+ class Subscription < Enstratus::Resource
3
+
4
+ attribute :region_id
5
+ attribute :custom_images
6
+ attribute :custom_networks
7
+ attribute :custom_subnets
8
+ attribute :hypervisor_analytics
9
+ attribute :ip_addresses_forwarded
10
+ attribute :load_balancer_address_assigned
11
+ attribute :load_balancer_create_with_server
12
+ attribute :load_balancer_data_center_limited
13
+ attribute :max_load_balancer_listeners
14
+ attribute :network_data_center_constrained
15
+ attribute :network_with_subnets
16
+ attribute :private_image_sharing
17
+ attribute :private_ip_addresses_assigned
18
+ attribute :private_ip_addresses_requestable
19
+ attribute :private_snapshot_sharing
20
+ attribute :public_image_library
21
+ attribute :public_image_sharing
22
+ attribute :public_ip_addresses_assigned
23
+ attribute :public_ip_addresses_requestable
24
+ attribute :public_snapshot_sharing
25
+ attribute :rdbms_firewalled
26
+ attribute :rdbms_ha
27
+ attribute :rdbms_la
28
+ attribute :rdbms_maintenance
29
+ attribute :rdbms_snapshots
30
+ attribute :server_key_bootstrapped
31
+ attribute :subnet_data_center_constrained
32
+ attribute :subscribed_auto_scaling
33
+ attribute :subscribed_blob_store
34
+ attribute :subscribed_cd_n
35
+ attribute :subscribed_dn_s
36
+ attribute :subscribed_email
37
+ attribute :subscribed_firewall
38
+ attribute :subscribed_kv_db
39
+ attribute :subscribed_load_balancer
40
+ attribute :subscribed_machine_image
41
+ attribute :subscribed_mq
42
+ attribute :subscribed_network
43
+ attribute :subscribed_push_notification
44
+ attribute :subscribed_rd_bm_s
45
+ attribute :subscribed_static_ip
46
+ attribute :subscribed_server
47
+ attribute :subscribed_snapshot
48
+ attribute :subscribed_volume
49
+ attribute :subscribed_vp_n
50
+ end
51
+ end
@@ -0,0 +1,11 @@
1
+ module Enstratus
2
+ module Infrastructure
3
+ end
4
+ end
5
+
6
+ require 'enstratus/infrastructure/server'
7
+ require 'enstratus/infrastructure/machine_image'
8
+ require 'enstratus/infrastructure/server_product'
9
+ require 'enstratus/infrastructure/snapshot'
10
+ require 'enstratus/infrastructure/volume'
11
+ require 'enstratus/infrastructure/volume_product'
@@ -0,0 +1,31 @@
1
+ module Enstratus::Infrastructure
2
+ class MachineImage < Enstratus::Resource
3
+ collects_as :images
4
+
5
+ attribute :budget
6
+ attribute :machine_image_id
7
+ attribute :removable
8
+ attribute :sharable
9
+ attribute :status
10
+ attribute :agent_version
11
+ attribute :architecture
12
+ attribute :cloud
13
+ attribute :creation_timestamp
14
+ attribute :customer
15
+ attribute :label
16
+ attribute :name
17
+ attribute :owning_account
18
+ attribute :owning_cloud_account_id
19
+ attribute :owning_cloud_account_number
20
+ attribute :owning_groups
21
+ attribute :owning_user
22
+ attribute :platform
23
+ attribute :products
24
+ attribute :provider_id
25
+ attribute :public
26
+ attribute :region
27
+
28
+ # (doc_error: typo)
29
+ attribute :desription
30
+ end
31
+ end
@@ -0,0 +1,50 @@
1
+ module Enstratus::Infrastructure
2
+
3
+ class Server < Enstratus::Resource
4
+ attribute :region
5
+ attribute :platform
6
+ attribute :budget
7
+ attribute :start_date
8
+ attribute :status
9
+ attribute :data_center
10
+ attribute :customer
11
+ attribute :private_ip_addresses
12
+ attribute :machine_image
13
+ attribute :description
14
+ attribute :name
15
+ attribute :cloud
16
+ attribute :provider_id
17
+ attribute :public_ip_address
18
+ attribute :server_id
19
+ attribute :agent_version
20
+ attribute :analytics
21
+ attribute :imageable
22
+ attribute :management_state
23
+ attribute :persistent
24
+ attribute :registered
25
+ attribute :removable
26
+ attribute :architecture
27
+ attribute :create_timestamp
28
+ attribute :label
29
+ attribute :last_boot_timestamp
30
+ attribute :last_pause_timestamp
31
+ attribute :owning_account
32
+ attribute :owning_user
33
+ attribute :pause_after
34
+ attribute :personalities
35
+ attribute :platform
36
+ attribute :prepayment
37
+ attribute :private_dns_address
38
+ attribute :product
39
+ attribute :public_dns_address
40
+ attribute :scripts
41
+ attribute :terminate_after
42
+ attribute :vlan
43
+ attribute :termination_timestamp
44
+
45
+ # (doc_error :undocumented)
46
+ attribute :owning_groups
47
+ attribute :stop_date
48
+ end
49
+
50
+ end