linodeapi 0.2.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f4d618f5198d23fdcde3f61a652aa5ca031cc52
4
- data.tar.gz: c17c1da4cb9c5a5ee45ca8934064db5cf960983d
3
+ metadata.gz: 613ee064aa8a8581a6d3c44d7b2b654ecf006ae3
4
+ data.tar.gz: bc5aafb0308006830ffd6a90d1ba642a9ab7a282
5
5
  SHA512:
6
- metadata.gz: 5f825be5231e017f6c1ee890d976c8a93908bb529171a76bbfeb096acc1323db57813523e89708f419654fab4ad0e057df033d583a136fb5237f83fe2d87d395
7
- data.tar.gz: e03462cbca20022c91b415e8be92cb19ffe021f1b11d56ca790652b83a31e92baa57699ca46c487d786a3a041661be84a5576c991aacb5d73d6c616e4d05372c
6
+ metadata.gz: b83e57e4909a32e9aa9e1c4e876e808e6589813edb4f3b94167d3bc0b8b81f1fb35ea26e96d97221bc360a3af477d6770358b37cb67a5785564706976ac96658
7
+ data.tar.gz: fa56efc343ff4c6ca9aee7642e23f3a967901e5b1f35a8b6ecca8e800790a6cdf5612c33f84c66de302a0856879a772965ca686a490f77ba4221a5e27b06d76b
@@ -0,0 +1,4 @@
1
+ # 1.0.0 / 2015-01-19
2
+
3
+ * [ENHANCEMENT] Stabilized API
4
+
data/README.md CHANGED
@@ -3,9 +3,9 @@ linodeapi
3
3
 
4
4
  [![Gem Version](https://img.shields.io/gem/v/linodeapi.svg)](https://rubygems.org/gems/linodeapi)
5
5
  [![Dependency Status](https://img.shields.io/gemnasium/akerl/linodeapi.svg)](https://gemnasium.com/akerl/linodeapi)
6
- [![Code Climate](https://img.shields.io/codeclimate/github/akerl/linodeapi.svg)](https://codeclimate.com/github/akerl/linodeapi)
7
- [![Coverage Status](https://img.shields.io/coveralls/akerl/linodeapi.svg)](https://coveralls.io/r/akerl/linodeapi)
8
- [![Build Status](https://img.shields.io/travis/akerl/linodeapi.svg)](https://travis-ci.org/akerl/linodeapi)
6
+ [![Build Status](https://img.shields.io/circleci/project/akerl/linodeapi.svg)](https://circleci.com/gh/akerl/linodeapi)
7
+ [![Coverage Status](https://img.shields.io/codecov/c/github/akerl/linodeapi.svg)](https://codecov.io/github/akerl/linodeapi)
8
+ [![Code Quality](https://img.shields.io/codacy/60b77ea8214241b5ac970bcdfd584587.svg)](https://www.codacy.com/app/akerl/linodeapi)
9
9
  [![MIT Licensed](https://img.shields.io/badge/license-MIT-green.svg)](https://tldrlegal.com/license/mit-license)
10
10
 
11
11
  Ruby API wrapper for the [Linode API](https://www.linode.com/api)
@@ -17,8 +17,8 @@ Create an API object from the LinodeAPI::Raw class, by providing it with either
17
17
  ```
18
18
  require 'linodeapi'
19
19
 
20
- api_one = LinodeAPI::Raw(apikey: 'YOUR_KEY_HERE')
21
- api_two = LinodeAPI::Raw(username: 'akerl', password: 'cyberpond')
20
+ api_one = LinodeAPI::Raw.new(apikey: 'YOUR_KEY_HERE')
21
+ api_two = LinodeAPI::Raw.new(username: 'akerl', password: 'cyberpond')
22
22
  ```
23
23
 
24
24
  The Raw API object is a faithful representation of Linode's [API spec](https://www.linode.com/api/utility/api.spec), parsed directly from the upstream source at runtime. Calls can be made using the methods shown in Linode's [API docs](https://www.linode.com/api):
@@ -0,0 +1,12 @@
1
+ dependencies:
2
+ override:
3
+ - 'rvm-exec 1.9.3-p551 bundle install'
4
+ - 'rvm-exec 2.0.0-p645 bundle install'
5
+ - 'rvm-exec 2.1.6 bundle install'
6
+ - 'rvm-exec 2.2.2 bundle install'
7
+ test:
8
+ override:
9
+ - 'rvm-exec 1.9.3-p551 bundle exec rake'
10
+ - 'rvm-exec 2.0.0-p645 bundle exec rake'
11
+ - 'rvm-exec 2.1.6 bundle exec rake'
12
+ - 'rvm-exec 2.2.2 bundle exec rake'
@@ -81,17 +81,13 @@ avail:
81
81
  - desc: List available kernels.
82
82
  - params:
83
83
  - iskvm:
84
- - desc: Limits the results to show only KVM kernels
84
+ - desc: Show or hide KVM compatible kernels
85
85
  - required: false
86
86
  - type: :boolean
87
87
  - isxen:
88
- - desc: Limits the results to show only Xen kernels
88
+ - desc: Show or hide Xen compatible kernels
89
89
  - required: false
90
90
  - type: :boolean
91
- - kernelid:
92
- - desc: ''
93
- - required: false
94
- - type: :numeric
95
91
  - throws: []
96
92
  linodeplans:
97
93
  - desc: Returns a structure of Linode PlanIDs containing the Plan label and the
@@ -1216,6 +1212,10 @@ nodebalancer:
1216
1212
  be less than check_interval.
1217
1213
  - required: false
1218
1214
  - type: :string
1215
+ - cipher_suite:
1216
+ - desc: SSL cipher suite to enforce. One of 'recommended', 'legacy'
1217
+ - required: false
1218
+ - type: :string
1219
1219
  - nodebalancerid:
1220
1220
  - desc: The parent NodeBalancer's ID
1221
1221
  - required: true
@@ -1309,6 +1309,10 @@ nodebalancer:
1309
1309
  be less than check_interval.
1310
1310
  - required: false
1311
1311
  - type: :string
1312
+ - cipher_suite:
1313
+ - desc: SSL cipher suite to enforce. One of 'recommended', 'legacy'
1314
+ - required: false
1315
+ - type: :string
1312
1316
  - configid:
1313
1317
  - desc: ''
1314
1318
  - required: true
@@ -106,7 +106,7 @@ module LinodeAPI
106
106
  private
107
107
 
108
108
  VALIDATION_METHODS = {
109
- boolean: proc { |e| e == true },
109
+ boolean: proc { |e| !!e }, # rubocop:disable Style/DoubleNegation
110
110
  numeric: proc { |e| Integer(e) },
111
111
  string: proc(&:to_s)
112
112
  }
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'linodeapi'
3
- s.version = '0.2.2'
3
+ s.version = '1.0.0'
4
4
  s.date = Time.now.strftime("%Y-%m-%d")
5
5
 
6
6
  s.summary = 'Linode API wrapper'
@@ -15,10 +15,11 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.add_dependency 'httparty', '~> 0.13.1'
17
17
 
18
- s.add_development_dependency 'rubocop', '~> 0.33.0'
18
+ s.add_development_dependency 'rubocop', '~> 0.34.0'
19
19
  s.add_development_dependency 'rake', '~> 10.4.0'
20
- s.add_development_dependency 'coveralls', '~> 0.8.0'
20
+ s.add_development_dependency 'codecov', '~> 0.1.1'
21
21
  s.add_development_dependency 'rspec', '~> 3.3.0'
22
22
  s.add_development_dependency 'fuubar', '~> 2.0.0'
23
- s.add_development_dependency 'activesupport', '~> 4.2.2'
23
+ s.add_development_dependency 'webmock', '~> 1.22.0'
24
+ s.add_development_dependency 'vcr', '~> 2.9.2'
24
25
  end
@@ -0,0 +1,448 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.linode.com/?api_action=api.spec
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Thu, 29 Oct 2015 02:01:45 GMT
25
+ Content-Type:
26
+ - application/json;charset=UTF-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ X-Powered-By:
32
+ - Tiger Blood
33
+ Access-Control-Allow-Origin:
34
+ - "*"
35
+ Strict-Transport-Security:
36
+ - max-age=31536000
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{"ERRORARRAY":[],"DATA":{"VERSION":3.3,"METHODS":{"linode.list":{"DESCRIPTION":"Returns
40
+ a list of all Linodes user has access or delete to, including some properties. Status
41
+ values are -1: Being Created, 0: Brand New, 1: Running, and 2: Powered Off.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"Limits
42
+ the list to the specified LinodeID","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"nodebalancer.node.update":{"DESCRIPTION":"Updates
43
+ a Node''s properties","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"This
44
+ backend Node''s label","TYPE":"string","REQUIRED":false},"NodeID":{"NAME":"NodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"Mode":{"NAME":"Mode","DESCRIPTION":"The
45
+ connections mode for this node. One of ''accept'', ''reject'', or ''drain''","TYPE":"string","REQUIRED":false},"Weight":{"NAME":"Weight","DESCRIPTION":"Load
46
+ balancing weight, 1-255. Higher means more connections.","TYPE":"numeric","REQUIRED":false},"Address":{"NAME":"Address","DESCRIPTION":"The
47
+ address:port combination used to communicate with this Node","TYPE":"string","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"domain.update":{"DESCRIPTION":"Update
48
+ a domain record.","PARAMETERS":{"DomainID":{"NAME":"DomainID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"Description":{"NAME":"Description","DESCRIPTION":"Currently
49
+ undisplayed.","TYPE":"string","REQUIRED":false},"Retry_sec":{"NAME":"Retry_sec","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"Expire_sec":{"NAME":"Expire_sec","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"status":{"NAME":"status","DESCRIPTION":"0,
50
+ 1, or 2 (disabled, active, edit mode)","TYPE":"numeric","REQUIRED":false},"Refresh_sec":{"NAME":"Refresh_sec","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"lpm_displayGroup":{"NAME":"lpm_displayGroup","DESCRIPTION":"Display
51
+ group in the Domain list inside the Linode DNS Manager","TYPE":"string","REQUIRED":false},"master_ips":{"NAME":"master_ips","DESCRIPTION":"When
52
+ type=slave, the zone''s master DNS servers list, semicolon separated ","TYPE":"string","REQUIRED":false},"SOA_Email":{"NAME":"SOA_Email","DESCRIPTION":"Required
53
+ when type=master","TYPE":"string","REQUIRED":false},"TTL_sec":{"NAME":"TTL_sec","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"Domain":{"NAME":"Domain","DESCRIPTION":"The
54
+ zone''s name","TYPE":"string","REQUIRED":false},"Type":{"NAME":"Type","DESCRIPTION":"master
55
+ or slave","TYPE":"string","REQUIRED":false},"axfr_ips":{"NAME":"axfr_ips","DESCRIPTION":"IP
56
+ addresses allowed to AXFR the entire zone, semicolon separated","TYPE":"string","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"avail.datacenters":{"DESCRIPTION":"Returns
57
+ a list of Linode data center facilities.","PARAMETERS":{},"THROWS":""},"avail.linodeplans":{"DESCRIPTION":"Returns
58
+ a structure of Linode PlanIDs containing the Plan label and the availability
59
+ in each Datacenter.","PARAMETERS":{"PlanID":{"NAME":"PlanID","DESCRIPTION":"Limits
60
+ the list to the specified PlanID","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"linode.disk.delete":{"DESCRIPTION":"","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"DiskID":{"NAME":"DiskID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"image.update":{"DESCRIPTION":"Update
61
+ an Image record.","PARAMETERS":{"label":{"NAME":"label","DESCRIPTION":"The
62
+ label of the Image.","TYPE":"string","REQUIRED":false},"description":{"NAME":"description","DESCRIPTION":"An
63
+ optional description of the Image.","TYPE":"string","REQUIRED":false},"ImageID":{"NAME":"ImageID","DESCRIPTION":"The
64
+ ID of the Image to modify.","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"linode.webconsoletoken":{"DESCRIPTION":"Generates
65
+ a console token starting a web console LISH session for the requesting IP","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"nodebalancer.create":{"DESCRIPTION":"","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"This
66
+ NodeBalancer''s label","default":"deflabel9000cakemix","TYPE":"string","REQUIRED":false},"ClientConnThrottle":{"NAME":"ClientConnThrottle","DESCRIPTION":"To
67
+ help mitigate abuse, throttle connections per second, per client IP. 0 to
68
+ disable. Max of 20.","default":0,"TYPE":"numeric","REQUIRED":false},"DatacenterID":{"NAME":"DatacenterID","DESCRIPTION":"The
69
+ DatacenterID from avail.datacenters() where you wish to place this new NodeBalancer","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOACCESS,CCFAILED,VALIDATION"},"linode.ip.addpublic":{"DESCRIPTION":"Assigns
70
+ a Public IP to a Linode. Returns the IPAddressID and IPAddress that was added.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"The
71
+ LinodeID of the Linode that will be assigned an additional public IP address","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"domain.create":{"DESCRIPTION":"Create
72
+ a domain record.","PARAMETERS":{"SOA_Email":{"NAME":"SOA_Email","DESCRIPTION":"Required
73
+ when type=master","default":"","TYPE":"string","REQUIRED":false},"Description":{"NAME":"Description","DESCRIPTION":"Currently
74
+ undisplayed.","default":"","TYPE":"string","REQUIRED":false},"TTL_sec":{"NAME":"TTL_sec","DESCRIPTION":"","default":0,"TYPE":"numeric","REQUIRED":false},"Retry_sec":{"NAME":"Retry_sec","DESCRIPTION":"","default":0,"TYPE":"numeric","REQUIRED":false},"Expire_sec":{"NAME":"Expire_sec","DESCRIPTION":"","default":0,"TYPE":"numeric","REQUIRED":false},"Domain":{"NAME":"Domain","DESCRIPTION":"The
75
+ zone''s name","TYPE":"string","REQUIRED":true},"status":{"NAME":"status","DESCRIPTION":"0,
76
+ 1, or 2 (disabled, active, edit mode)","default":1,"TYPE":"numeric","REQUIRED":false},"Type":{"NAME":"Type","DESCRIPTION":"master
77
+ or slave","TYPE":"string","REQUIRED":true},"Refresh_sec":{"NAME":"Refresh_sec","DESCRIPTION":"","default":0,"TYPE":"numeric","REQUIRED":false},"lpm_displayGroup":{"NAME":"lpm_displayGroup","DESCRIPTION":"Display
78
+ group in the Domain list inside the Linode DNS Manager","default":"","TYPE":"string","REQUIRED":false},"master_ips":{"NAME":"master_ips","DESCRIPTION":"When
79
+ type=slave, the zone''s master DNS servers list, semicolon separated ","default":"","TYPE":"string","REQUIRED":false},"axfr_ips":{"NAME":"axfr_ips","DESCRIPTION":"IP
80
+ addresses allowed to AXFR the entire zone, semicolon separated","default":"","TYPE":"string","REQUIRED":false}},"THROWS":"NOACCESS,VALIDATION"},"account.estimateinvoice":{"DESCRIPTION":"Estimates
81
+ the invoice for adding a new Linode or NodeBalancer as well as resizing a
82
+ Linode. This returns two fields: PRICE which is the estimated cost of the
83
+ invoice, and INVOICE_TO which is the date invoice would be though with timezone
84
+ set to America\/New_York","PARAMETERS":{"PaymentTerm":{"NAME":"PaymentTerm","DESCRIPTION":"Subscription
85
+ term in months. One of: 1, 12, or 24. This is required for modes ''linode_new''
86
+ and ''nodebalancer_new''.","TYPE":"numeric","REQUIRED":false},"mode":{"NAME":"mode","DESCRIPTION":"This
87
+ is one of the following options: ''linode_new'', ''linode_resize'', or ''nodebalancer_new''.","TYPE":"string","REQUIRED":true},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"This
88
+ is the LinodeID you want to resize and is required for mode ''linode_resize''.","TYPE":"numeric","REQUIRED":false},"PlanID":{"NAME":"PlanID","DESCRIPTION":"The
89
+ desired PlanID available from avail.LinodePlans(). This is required for modes
90
+ ''linode_new'' and ''linode_resize''.","TYPE":"numeric","REQUIRED":false}},"THROWS":"VALIDATION"},"account.updatecard":{"DESCRIPTION":"","PARAMETERS":{"ccExpMonth":{"NAME":"ccExpMonth","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ccExpYear":{"NAME":"ccExpYear","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ccNumber":{"NAME":"ccNumber","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":""},"stackscript.create":{"DESCRIPTION":"Create
91
+ a StackScript.","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"The Label
92
+ for this StackScript","TYPE":"string","REQUIRED":true},"rev_note":{"NAME":"rev_note","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"script":{"NAME":"script","DESCRIPTION":"The
93
+ actual script","TYPE":"string","REQUIRED":true},"isPublic":{"NAME":"isPublic","DESCRIPTION":"Whether
94
+ this StackScript is published in the Library, for everyone to use","default":false,"TYPE":"boolean","REQUIRED":false},"Description":{"NAME":"Description","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"DistributionIDList":{"NAME":"DistributionIDList","DESCRIPTION":"Comma
95
+ delimited list of DistributionIDs that this script works on ","TYPE":"string","REQUIRED":true}},"THROWS":"NOACCESS,VALIDATION"},"linode.disk.update":{"DESCRIPTION":"","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"The
96
+ display label for this Disk","TYPE":"string","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"isReadOnly":{"NAME":"isReadOnly","DESCRIPTION":"Enable
97
+ forced read-only for this Disk","TYPE":"boolean","REQUIRED":false},"DiskID":{"NAME":"DiskID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"domain.resource.delete":{"DESCRIPTION":"","PARAMETERS":{"DomainID":{"NAME":"DomainID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ResourceID":{"NAME":"ResourceID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"linode.disk.imagize":{"DESCRIPTION":"Creates
98
+ a gold-master image for future deployments","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"Sets
99
+ the name of the image shown in the base image list, defaults to the source
100
+ image label","TYPE":"string","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"Specifies
101
+ the source Linode to create the image from","TYPE":"numeric","REQUIRED":true},"Description":{"NAME":"Description","DESCRIPTION":"An
102
+ optional description of the created image","TYPE":"string","REQUIRED":false},"DiskID":{"NAME":"DiskID","DESCRIPTION":"Specifies
103
+ the source Disk to create the image from","TYPE":"numeric","REQUIRED":true}},"THROWS":""},"professionalservices.scope.create":{"DESCRIPTION":"Creates
104
+ a new Professional Services scope submission","PARAMETERS":{"linode_plan":{"NAME":"linode_plan","DESCRIPTION":"Which
105
+ Linode plans would you like to deploy?","default":"","TYPE":"string","REQUIRED":false},"customer_name":{"NAME":"customer_name","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"web_server":{"NAME":"web_server","DESCRIPTION":"These
106
+ provide network protocol handling for hosting websites.","default":"","TYPE":"string","REQUIRED":false},"mail_transfer":{"NAME":"mail_transfer","DESCRIPTION":"Mail
107
+ transfer agents facilitate message transfer between servers","default":"","TYPE":"string","REQUIRED":false},"server_quantity":{"NAME":"server_quantity","DESCRIPTION":"How
108
+ many separate servers are involved in this migration?","default":"","TYPE":"string","REQUIRED":false},"provider_access":{"NAME":"provider_access","DESCRIPTION":"What
109
+ types of server access do you have at your current provider?","default":"","TYPE":"string","REQUIRED":false},"monitoring":{"NAME":"monitoring","DESCRIPTION":"Constant
110
+ monitoring of your deployed systems--these can also provide automatic notifications
111
+ for service failures.","default":"","TYPE":"string","REQUIRED":false},"web_cache":{"NAME":"web_cache","DESCRIPTION":"Caching
112
+ mechanisms provide temporary storage for web requests--cached content can
113
+ generally be retrieved faster.","default":"","TYPE":"string","REQUIRED":false},"database_server":{"NAME":"database_server","DESCRIPTION":"Generally
114
+ used by applications to provide an organized way to capture and manipulate
115
+ data","default":"","TYPE":"string","REQUIRED":false},"mail_filtering":{"NAME":"mail_filtering","DESCRIPTION":"Services
116
+ here manipulate recieved messages in various ways","default":"","TYPE":"string","REQUIRED":false},"notes":{"NAME":"notes","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"ticket_number":{"NAME":"ticket_number","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"content_management":{"NAME":"content_management","DESCRIPTION":"Centralized
117
+ interfaces for editing, organizing, and publishing content","default":"","TYPE":"string","REQUIRED":false},"linode_datacenter":{"NAME":"linode_datacenter","DESCRIPTION":"Which
118
+ datacenters would you like your Linodes to be deployed in?","default":"","TYPE":"string","REQUIRED":false},"mail_retrieval":{"NAME":"mail_retrieval","DESCRIPTION":"User
119
+ mail clients connect to these to retrieve delivered mail","default":"","TYPE":"string","REQUIRED":false},"system_administration":{"NAME":"system_administration","DESCRIPTION":"Various
120
+ web interfaces for performing system administration tasks","default":"","TYPE":"string","REQUIRED":false},"requested_service":{"NAME":"requested_service","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"crossover":{"NAME":"crossover","DESCRIPTION":"These
121
+ can assist in providing reliable crossover--failures of individual components
122
+ can be transparent to the application.","default":"","TYPE":"string","REQUIRED":false},"phone_number":{"NAME":"phone_number","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"application_quantity":{"NAME":"application_quantity","DESCRIPTION":"How
123
+ many separate applications or websites are involved in this migration?","default":"","TYPE":"string","REQUIRED":false},"managed":{"NAME":"managed","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"webmail":{"NAME":"webmail","DESCRIPTION":"Access
124
+ and administrate mail via web interfaces","default":"","TYPE":"string","REQUIRED":false},"current_provider":{"NAME":"current_provider","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"email_address":{"NAME":"email_address","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"replication":{"NAME":"replication","DESCRIPTION":"Redundant
125
+ services often have shared state--replication automatically propagates state
126
+ changes between individual components.","default":"","TYPE":"string","REQUIRED":false}},"THROWS":""},"linode.disk.createfromimage":{"DESCRIPTION":"Creates
127
+ a new disk from a previously imagized disk.","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"The
128
+ label of this new disk image","TYPE":"string","REQUIRED":false},"rootSSHKey":{"NAME":"rootSSHKey","DESCRIPTION":"Optionally
129
+ sets this string into \/root\/.ssh\/authorized_keys upon image deployment","TYPE":"string","REQUIRED":false},"size":{"NAME":"size","DESCRIPTION":"The
130
+ size of the disk image to creates. Defaults to the minimum size required for
131
+ the requested image","TYPE":"numeric","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"Specifies
132
+ the Linode to deploy on to","TYPE":"numeric","REQUIRED":true},"rootPass":{"NAME":"rootPass","DESCRIPTION":"Optionally
133
+ sets the root password at deployment time. If a password is not provided the
134
+ existing root password of the frozen image will not be modified","TYPE":"string","REQUIRED":false},"ImageID":{"NAME":"ImageID","DESCRIPTION":"The
135
+ ID of the frozen image to deploy from","TYPE":"numeric","REQUIRED":true}},"THROWS":""},"nodebalancer.delete":{"DESCRIPTION":"Immediately
136
+ removes a NodeBalancer from your account and issues a pro-rated credit back
137
+ to your account, if applicable.","PARAMETERS":{"NodeBalancerID":{"NAME":"NodeBalancerID","DESCRIPTION":"The
138
+ NodeBalancerID to delete","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"linode.create":{"DESCRIPTION":"Creates
139
+ a Linode and assigns you full privileges. There is a 75-linodes-per-hour limiter.","PARAMETERS":{"PlanID":{"NAME":"PlanID","DESCRIPTION":"The
140
+ desired PlanID available from avail.LinodePlans()","TYPE":"numeric","REQUIRED":true},"DatacenterID":{"NAME":"DatacenterID","DESCRIPTION":"The
141
+ DatacenterID from avail.datacenters() where you wish to place this new Linode","TYPE":"numeric","REQUIRED":true},"PaymentTerm":{"NAME":"PaymentTerm","DESCRIPTION":"Subscription
142
+ term in months for prepaid customers. One of: 1, 12, or 24","default":1,"TYPE":"numeric","REQUIRED":false}},"THROWS":"NOACCESS,CCFAILED,VALIDATION,LINODELIMITER,ACCOUNTLIMIT"},"stackscript.delete":{"DESCRIPTION":"","PARAMETERS":{"StackScriptID":{"NAME":"StackScriptID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"linode.disk.create":{"DESCRIPTION":"","PARAMETERS":{"isReadOnly":{"NAME":"isReadOnly","DESCRIPTION":"Enable
143
+ forced read-only for this Disk","default":false,"TYPE":"boolean","REQUIRED":false},"rootPass":{"NAME":"rootPass","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"Label":{"NAME":"Label","DESCRIPTION":"The
144
+ display label for this Disk","TYPE":"string","REQUIRED":true},"rootSSHKey":{"NAME":"rootSSHKey","DESCRIPTION":"","default":"","TYPE":"string","REQUIRED":false},"FromDistributionID":{"NAME":"FromDistributionID","DESCRIPTION":"","default":0,"TYPE":"numeric","REQUIRED":false},"Size":{"NAME":"Size","DESCRIPTION":"The
145
+ size in MB of this Disk.","TYPE":"numeric","REQUIRED":true},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"Type":{"NAME":"Type","DESCRIPTION":"The
146
+ formatted type of this disk. Valid types are: ext3, ext4, swap, raw","TYPE":"string","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"linode.disk.createfromstackscript":{"DESCRIPTION":"","PARAMETERS":{"StackScriptUDFResponses":{"NAME":"StackScriptUDFResponses","DESCRIPTION":"JSON
147
+ encoded name\/value pairs, answering this StackScript''s User Defined Fields","TYPE":"string","REQUIRED":true},"DistributionID":{"NAME":"DistributionID","DESCRIPTION":"Which
148
+ Distribution to apply this StackScript to. Must be one from the script''s
149
+ DistributionIDList","TYPE":"numeric","REQUIRED":true},"rootPass":{"NAME":"rootPass","DESCRIPTION":"The
150
+ root user''s password","TYPE":"string","REQUIRED":true},"rootSSHKey":{"NAME":"rootSSHKey","DESCRIPTION":"Optionally
151
+ sets this string into \/root\/.ssh\/authorized_keys upon distribution configuration.","TYPE":"string","REQUIRED":false},"Label":{"NAME":"Label","DESCRIPTION":"The
152
+ label of this new disk image","TYPE":"string","REQUIRED":true},"Size":{"NAME":"Size","DESCRIPTION":"Size
153
+ of this disk image in MB","TYPE":"numeric","REQUIRED":true},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"StackScriptID":{"NAME":"StackScriptID","DESCRIPTION":"The
154
+ StackScript to create this image from","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"linode.ip.setrdns":{"DESCRIPTION":"Sets
155
+ the rDNS name of a Public IP. Returns the IPAddressID and IPAddress that
156
+ were updated.","PARAMETERS":{"IPAddressID":{"NAME":"IPAddressID","DESCRIPTION":"The
157
+ IPAddressID of the address to update","TYPE":"numeric","REQUIRED":true},"Hostname":{"NAME":"Hostname","DESCRIPTION":"The
158
+ hostname to set the reverse DNS to","TYPE":"string","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"linode.update":{"DESCRIPTION":"Updates
159
+ a Linode''s properties.","PARAMETERS":{"Alert_cpu_enabled":{"NAME":"Alert_cpu_enabled","DESCRIPTION":"Enable
160
+ the cpu usage email alert","TYPE":"boolean","REQUIRED":false},"ms_ssh_user":{"NAME":"ms_ssh_user","DESCRIPTION":"","TYPE":"string","REQUIRED":false},"Alert_bwin_enabled":{"NAME":"Alert_bwin_enabled","DESCRIPTION":"Enable
161
+ the incoming bandwidth email alert","TYPE":"boolean","REQUIRED":false},"Alert_cpu_threshold":{"NAME":"Alert_cpu_threshold","DESCRIPTION":"CPU
162
+ Alert threshold, percentage 0-800","TYPE":"numeric","REQUIRED":false},"Alert_bwquota_enabled":{"NAME":"Alert_bwquota_enabled","DESCRIPTION":"Enable
163
+ the bw quote email alert","TYPE":"boolean","REQUIRED":false},"Alert_diskio_threshold":{"NAME":"Alert_diskio_threshold","DESCRIPTION":"IO
164
+ ops\/sec","TYPE":"numeric","REQUIRED":false},"Label":{"NAME":"Label","DESCRIPTION":"This
165
+ Linode''s label","TYPE":"string","REQUIRED":false},"backupWindow":{"NAME":"backupWindow","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"backupWeeklyDay":{"NAME":"backupWeeklyDay","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"watchdog":{"NAME":"watchdog","DESCRIPTION":"Enable
166
+ the Lassie shutdown watchdog","TYPE":"boolean","REQUIRED":false},"Alert_diskio_enabled":{"NAME":"Alert_diskio_enabled","DESCRIPTION":"Enable
167
+ the disk IO email alert","TYPE":"boolean","REQUIRED":false},"lpm_displayGroup":{"NAME":"lpm_displayGroup","DESCRIPTION":"Display
168
+ group in the Linode list inside the Linode Manager","TYPE":"string","REQUIRED":false},"ms_ssh_port":{"NAME":"ms_ssh_port","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"ms_ssh_disabled":{"NAME":"ms_ssh_disabled","DESCRIPTION":"","TYPE":"boolean","REQUIRED":false},"Alert_bwquota_threshold":{"NAME":"Alert_bwquota_threshold","DESCRIPTION":"Percentage
169
+ of monthly bw quota","TYPE":"numeric","REQUIRED":false},"ms_ssh_ip":{"NAME":"ms_ssh_ip","DESCRIPTION":"","TYPE":"string","REQUIRED":false},"Alert_bwin_threshold":{"NAME":"Alert_bwin_threshold","DESCRIPTION":"Mb\/sec","TYPE":"numeric","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"Alert_bwout_threshold":{"NAME":"Alert_bwout_threshold","DESCRIPTION":"Mb\/sec","TYPE":"numeric","REQUIRED":false},"Alert_bwout_enabled":{"NAME":"Alert_bwout_enabled","DESCRIPTION":"Enable
170
+ the outgoing bandwidth email alert","TYPE":"boolean","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"nodebalancer.config.create":{"DESCRIPTION":"","PARAMETERS":{"Stickiness":{"NAME":"Stickiness","DESCRIPTION":"Session
171
+ persistence. One of ''none'', ''table'', ''http_cookie''","default":"table","TYPE":"string","REQUIRED":false},"check_path":{"NAME":"check_path","DESCRIPTION":"When
172
+ check=http, the path to request","default":"\/","TYPE":"string","REQUIRED":false},"check_body":{"NAME":"check_body","DESCRIPTION":"When
173
+ check=http, a regex to match within the first 16,384 bytes of the response
174
+ body","default":"","TYPE":"string","REQUIRED":false},"check_interval":{"NAME":"check_interval","DESCRIPTION":"Seconds
175
+ between health check probes. 2-3600","default":5,"TYPE":"numeric","REQUIRED":false},"cipher_suite":{"NAME":"cipher_suite","DESCRIPTION":"SSL
176
+ cipher suite to enforce. One of ''recommended'', ''legacy''","default":"recommended","TYPE":"string","REQUIRED":false},"Algorithm":{"NAME":"Algorithm","DESCRIPTION":"Balancing
177
+ algorithm. One of ''roundrobin'', ''leastconn'', ''source''","default":"roundrobin","TYPE":"string","REQUIRED":false},"NodeBalancerID":{"NAME":"NodeBalancerID","DESCRIPTION":"The
178
+ parent NodeBalancer''s ID","TYPE":"numeric","REQUIRED":true},"check_attempts":{"NAME":"check_attempts","DESCRIPTION":"Number
179
+ of failed probes before taking a node out of rotation. 1-30","default":2,"TYPE":"string","REQUIRED":false},"Port":{"NAME":"Port","DESCRIPTION":"Port
180
+ to bind to on the public interfaces. 1-65534","default":80,"TYPE":"numeric","REQUIRED":false},"check":{"NAME":"check","DESCRIPTION":"Perform
181
+ active health checks on the backend nodes. One of ''connection'', ''http'',
182
+ ''http_body''","default":"connection","TYPE":"string","REQUIRED":false},"check_passive":{"NAME":"check_passive","DESCRIPTION":"Enable
183
+ passive checks based on observing communication with back-end nodes.","default":1,"TYPE":"boolean","REQUIRED":false},"ssl_key":{"NAME":"ssl_key","DESCRIPTION":"Unpassphrased
184
+ private key for the SSL certificate when protocol is ''https''","default":"","TYPE":"string","REQUIRED":false},"Protocol":{"NAME":"Protocol","DESCRIPTION":"Either
185
+ ''tcp'', ''http'', or ''https''","default":"http","TYPE":"string","REQUIRED":false},"check_timeout":{"NAME":"check_timeout","DESCRIPTION":"Seconds
186
+ to wait before considering the probe a failure. 1-30. Must be less than check_interval.","default":3,"TYPE":"string","REQUIRED":false},"ssl_cert":{"NAME":"ssl_cert","DESCRIPTION":"SSL
187
+ certificate served by the NodeBalancer when the protocol is ''https''","default":"","TYPE":"string","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"linode.ip.list":{"DESCRIPTION":"Returns
188
+ the IP addresses of all Linodes you have access to.","PARAMETERS":{"IPAddressID":{"NAME":"IPAddressID","DESCRIPTION":"If
189
+ specified, limits the result to this IPAddressID","TYPE":"numeric","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"If
190
+ specified, limits the result to this LinodeID","TYPE":"numeric","REQUIRED":false}},"THROWS":"NOTFOUND"},"avail.stackscripts":{"DESCRIPTION":"Returns
191
+ a list of available public StackScripts.","PARAMETERS":{"DistributionID":{"NAME":"DistributionID","DESCRIPTION":"Limit
192
+ the results to StackScripts that can be applied to this DistributionID","TYPE":"numeric","REQUIRED":false},"keywords":{"NAME":"keywords","DESCRIPTION":"Search
193
+ terms","TYPE":"string","REQUIRED":false},"DistributionVendor":{"NAME":"DistributionVendor","DESCRIPTION":"Debian,
194
+ Ubuntu, Fedora, etc.","TYPE":"string","REQUIRED":false}},"THROWS":""},"api.spec":{"DESCRIPTION":"Returns
195
+ a data structure of the entire Linode API specification. This method does
196
+ not require authorization.<br><br>For example: <a target=\"_blank\" href=\"https:\/\/api.linode.com\/?api_action=api.spec\">https:\/\/api.linode.com\/?api_action=api.spec<\/a>","PARAMETERS":{},"THROWS":""},"image.delete":{"DESCRIPTION":"Deletes
197
+ a gold-master image","PARAMETERS":{"ImageID":{"NAME":"ImageID","DESCRIPTION":"The
198
+ ID of the gold-master image to delete","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"linode.disk.list":{"DESCRIPTION":"Status
199
+ values are 1: Ready and 2: Being Deleted.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"DiskID":{"NAME":"DiskID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"linode.clone":{"DESCRIPTION":"Creates
200
+ a new Linode, assigns you full privileges, and then clones the specified LinodeID
201
+ to the new Linode. There is a limit of 5 active clone operations per source
202
+ Linode. It is recommended that the source Linode be powered down during the
203
+ clone.","PARAMETERS":{"PaymentTerm":{"NAME":"PaymentTerm","DESCRIPTION":"Subscription
204
+ term in months for prepaid customers. One of: 1, 12, or 24","TYPE":"numeric","REQUIRED":false},"DatacenterID":{"NAME":"DatacenterID","DESCRIPTION":"The
205
+ DatacenterID from avail.datacenters() where you wish to place this new Linode","TYPE":"numeric","REQUIRED":true},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"The
206
+ LinodeID that you want cloned","TYPE":"numeric","REQUIRED":true},"PlanID":{"NAME":"PlanID","DESCRIPTION":"The
207
+ desired PlanID available from avail.LinodePlans()","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOACCESS,NOTFOUND,CCFAILED,VALIDATION,LINODELIMITER,ACCOUNTLIMIT"},"user.getapikey":{"DESCRIPTION":"Authenticates
208
+ a Linode Manager user against their username, password, and two-factor token
209
+ (when enabled), and then returns a new API key, which can be used until it
210
+ expires. The number of active keys is limited to 20.","PARAMETERS":{"label":{"NAME":"label","DESCRIPTION":"An
211
+ optional label for this key.","TYPE":"string","REQUIRED":false},"expires":{"NAME":"expires","DESCRIPTION":"Number
212
+ of hours the key will remain valid, between 0 and 8760. 0 means no expiration.
213
+ Defaults to 168.","TYPE":"numeric","REQUIRED":false},"username":{"NAME":"username","DESCRIPTION":"","TYPE":"string","REQUIRED":true},"password":{"NAME":"password","DESCRIPTION":"","TYPE":"string","REQUIRED":true},"token":{"NAME":"token","DESCRIPTION":"Required
214
+ when two-factor authentication is enabled.","TYPE":"string","REQUIRED":false}},"THROWS":"AUTHFAIL,NEEDTOKEN,PASSWORDEXPIRED,KEYLIMIT"},"linode.delete":{"DESCRIPTION":"Immediately
215
+ removes a Linode from your account and issues a pro-rated credit back to your
216
+ account, if applicable. To prevent accidental deletes, this requires the
217
+ Linode has no Disk images. You must first delete its disk images.\"","PARAMETERS":{"skipChecks":{"NAME":"skipChecks","DESCRIPTION":"Skips
218
+ the safety checks and will always delete the Linode","TYPE":"boolean","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"The
219
+ LinodeID to delete","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,LINODENOTEMPTY"},"domain.resource.list":{"DESCRIPTION":"","PARAMETERS":{"DomainID":{"NAME":"DomainID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ResourceID":{"NAME":"ResourceID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"nodebalancer.config.update":{"DESCRIPTION":"Updates
220
+ a Config''s properties","PARAMETERS":{"Stickiness":{"NAME":"Stickiness","DESCRIPTION":"Session
221
+ persistence. One of ''none'', ''table'', ''http_cookie''","TYPE":"string","REQUIRED":false},"check_path":{"NAME":"check_path","DESCRIPTION":"When
222
+ check=http, the path to request","TYPE":"string","REQUIRED":false},"Port":{"NAME":"Port","DESCRIPTION":"Port
223
+ to bind to on the public interfaces. 1-65534","TYPE":"numeric","REQUIRED":false},"check_body":{"NAME":"check_body","DESCRIPTION":"When
224
+ check=http, a regex to match within the first 16,384 bytes of the response
225
+ body","TYPE":"string","REQUIRED":false},"check":{"NAME":"check","DESCRIPTION":"Perform
226
+ active health checks on the backend nodes. One of ''connection'', ''http'',
227
+ ''http_body''","TYPE":"string","REQUIRED":false},"check_interval":{"NAME":"check_interval","DESCRIPTION":"Seconds
228
+ between health check probes. 2-3600","TYPE":"numeric","REQUIRED":false},"check_passive":{"NAME":"check_passive","DESCRIPTION":"Enable
229
+ passive checks based on observing communication with back-end nodes.","TYPE":"boolean","REQUIRED":false},"ssl_key":{"NAME":"ssl_key","DESCRIPTION":"Unpassphrased
230
+ private key for the SSL certificate when protocol is ''https''","TYPE":"string","REQUIRED":false},"cipher_suite":{"NAME":"cipher_suite","DESCRIPTION":"SSL
231
+ cipher suite to enforce. One of ''recommended'', ''legacy''","TYPE":"string","REQUIRED":false},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"Protocol":{"NAME":"Protocol","DESCRIPTION":"Either
232
+ ''tcp'', ''http'', or ''https''","TYPE":"string","REQUIRED":false},"Algorithm":{"NAME":"Algorithm","DESCRIPTION":"Balancing
233
+ algorithm. One of ''roundrobin'', ''leastconn'', ''source''","TYPE":"string","REQUIRED":false},"check_timeout":{"NAME":"check_timeout","DESCRIPTION":"Seconds
234
+ to wait before considering the probe a failure. 1-30. Must be less than check_interval.","TYPE":"string","REQUIRED":false},"check_attempts":{"NAME":"check_attempts","DESCRIPTION":"Number
235
+ of failed probes before taking a node out of rotation. 1-30","TYPE":"string","REQUIRED":false},"ssl_cert":{"NAME":"ssl_cert","DESCRIPTION":"SSL
236
+ certificate served by the NodeBalancer when the protocol is ''https''","TYPE":"string","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"linode.reboot":{"DESCRIPTION":"Issues
237
+ a shutdown, and then boot job for a given LinodeID.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false}},"THROWS":"NOTFOUND"},"linode.config.list":{"DESCRIPTION":"Lists
238
+ a Linode''s Configuration Profiles.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false}},"THROWS":"NOTFOUND"},"linode.disk.createfromdistribution":{"DESCRIPTION":"","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"The
239
+ label of this new disk image","TYPE":"string","REQUIRED":true},"rootSSHKey":{"NAME":"rootSSHKey","DESCRIPTION":"Optionally
240
+ sets this string into \/root\/.ssh\/authorized_keys upon distribution configuration.","TYPE":"string","REQUIRED":false},"Size":{"NAME":"Size","DESCRIPTION":"Size
241
+ of this disk image in MB","TYPE":"numeric","REQUIRED":true},"DistributionID":{"NAME":"DistributionID","DESCRIPTION":"The
242
+ DistributionID to create this disk from. Found in avail.distributions()","TYPE":"numeric","REQUIRED":true},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"rootPass":{"NAME":"rootPass","DESCRIPTION":"The
243
+ root user''s password","TYPE":"string","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"linode.resize":{"DESCRIPTION":"Resizes
244
+ a Linode from one plan to another. Immediately shuts the Linode down, charges\/credits
245
+ the account, and issue a migration to another host server.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"PlanID":{"NAME":"PlanID","DESCRIPTION":"The
246
+ desired PlanID available from avail.LinodePlans()","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,CCFAILED,VALIDATION"},"nodebalancer.node.list":{"DESCRIPTION":"Returns
247
+ a list of Nodes associated with a NodeBalancer Config","PARAMETERS":{"NodeID":{"NAME":"NodeID","DESCRIPTION":"Limits
248
+ the list to the specified NodeID","TYPE":"numeric","REQUIRED":false},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":""},"linode.job.list":{"DESCRIPTION":"","PARAMETERS":{"JobID":{"NAME":"JobID","DESCRIPTION":"Limits
249
+ the list to the specified JobID","TYPE":"numeric","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"pendingOnly":{"NAME":"pendingOnly","DESCRIPTION":"","TYPE":"boolean","REQUIRED":false}},"THROWS":""},"domain.list":{"DESCRIPTION":"Lists
250
+ domains you have access to.","PARAMETERS":{"DomainID":{"NAME":"DomainID","DESCRIPTION":"Limits
251
+ the list to the specified DomainID","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"domain.resource.create":{"DESCRIPTION":"Create
252
+ a domain record.","PARAMETERS":{"DomainID":{"NAME":"DomainID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"Port":{"NAME":"Port","DESCRIPTION":"","default":80,"TYPE":"numeric","REQUIRED":false},"Name":{"NAME":"Name","DESCRIPTION":"The
253
+ hostname or FQDN. When Type=MX the subdomain to delegate to the Target MX
254
+ server.","default":"","TYPE":"string","REQUIRED":false},"Weight":{"NAME":"Weight","DESCRIPTION":"","default":5,"TYPE":"numeric","REQUIRED":false},"Target":{"NAME":"Target","DESCRIPTION":"When
255
+ Type=MX the hostname. When Type=CNAME the target of the alias. When Type=TXT
256
+ the value of the record. When Type=A or AAAA the token of ''[remote_addr]''
257
+ will be substituted with the IP address of the request.","default":"","TYPE":"string","REQUIRED":false},"Priority":{"NAME":"Priority","DESCRIPTION":"Priority
258
+ for MX and SRV records, 0-255","default":10,"TYPE":"numeric","REQUIRED":false},"TTL_sec":{"NAME":"TTL_sec","DESCRIPTION":"TTL. Leave
259
+ as 0 to accept our default.","default":0,"TYPE":"numeric","REQUIRED":false},"Protocol":{"NAME":"Protocol","DESCRIPTION":"The
260
+ protocol to append to an SRV record. Ignored on other record types.","default":"","TYPE":"string","REQUIRED":false},"Type":{"NAME":"Type","DESCRIPTION":"One
261
+ of: NS, MX, A, AAAA, CNAME, TXT, or SRV","TYPE":"string","REQUIRED":true}},"THROWS":"NOACCESS,VALIDATION"},"linode.config.delete":{"DESCRIPTION":"Deletes
262
+ a Linode Configuration Profile.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"nodebalancer.config.delete":{"DESCRIPTION":"Deletes
263
+ a NodeBalancer''s Config","PARAMETERS":{"NodeBalancerID":{"NAME":"NodeBalancerID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"The
264
+ ConfigID to delete","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"avail.nodebalancers":{"DESCRIPTION":"Returns
265
+ NodeBalancer pricing information.","PARAMETERS":{},"THROWS":""},"linode.ip.swap":{"DESCRIPTION":"Exchanges
266
+ Public IP addresses between two Linodes within a Datacenter. The destination
267
+ of the IP Address can be designated by either the toLinodeID or withIPAddressID
268
+ parameter. Returns the resulting relationship of the Linode and IP Address
269
+ parameters. When performing a one directional swap, the source is represented
270
+ by the first of the two resultant array members.","PARAMETERS":{"toLinodeID":{"NAME":"toLinodeID","DESCRIPTION":"The
271
+ LinodeID of the Linode where IPAddressID will be transfered","TYPE":"numeric","REQUIRED":false},"IPAddressID":{"NAME":"IPAddressID","DESCRIPTION":"The
272
+ IPAddressID of an IP Address to transfer or swap","TYPE":"numeric","REQUIRED":true},"withIPAddressID":{"NAME":"withIPAddressID","DESCRIPTION":"The
273
+ IP Address ID to swap","TYPE":"numeric","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"linode.boot":{"DESCRIPTION":"Issues
274
+ a boot job for the provided ConfigID. If no ConfigID is provided boots the
275
+ last used configuration profile, or the first configuration profile if this
276
+ Linode has never been booted.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"The
277
+ ConfigID to boot, available from linode.config.list().","TYPE":"numeric","REQUIRED":false}},"THROWS":"NOTFOUND"},"avail.distributions":{"DESCRIPTION":"Returns
278
+ a list of available Linux Distributions.","PARAMETERS":{"DistributionID":{"NAME":"DistributionID","DESCRIPTION":"Limits
279
+ the results to the specified DistributionID","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"linode.disk.duplicate":{"DESCRIPTION":"Performs
280
+ a bit-for-bit copy of a disk image.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"DiskID":{"NAME":"DiskID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"avail.kernels":{"DESCRIPTION":"List
281
+ available kernels.","PARAMETERS":{"isXen":{"NAME":"isXen","DESCRIPTION":"Show
282
+ or hide Xen compatible kernels","TYPE":"boolean","REQUIRED":false},"isKVM":{"NAME":"isKVM","DESCRIPTION":"Show
283
+ or hide KVM compatible kernels","TYPE":"boolean","REQUIRED":false}},"THROWS":""},"stackscript.update":{"DESCRIPTION":"Update
284
+ a StackScript.","PARAMETERS":{"rev_note":{"NAME":"rev_note","DESCRIPTION":"","TYPE":"string","REQUIRED":false},"script":{"NAME":"script","DESCRIPTION":"The
285
+ actual script","TYPE":"string","REQUIRED":false},"DistributionIDList":{"NAME":"DistributionIDList","DESCRIPTION":"Comma
286
+ delimited list of DistributionIDs that this script works on ","TYPE":"string","REQUIRED":false},"Description":{"NAME":"Description","DESCRIPTION":"","TYPE":"string","REQUIRED":false},"Label":{"NAME":"Label","DESCRIPTION":"The
287
+ Label for this StackScript","TYPE":"string","REQUIRED":false},"StackScriptID":{"NAME":"StackScriptID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"isPublic":{"NAME":"isPublic","DESCRIPTION":"Whether
288
+ this StackScript is published in the Library, for everyone to use","TYPE":"boolean","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"nodebalancer.node.create":{"DESCRIPTION":"","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"This
289
+ backend Node''s label","TYPE":"string","REQUIRED":true},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"The
290
+ parent ConfigID to attach this Node to","TYPE":"numeric","REQUIRED":true},"Mode":{"NAME":"Mode","DESCRIPTION":"The
291
+ connections mode for this node. One of ''accept'', ''reject'', or ''drain''","default":"accept","TYPE":"string","REQUIRED":false},"Weight":{"NAME":"Weight","DESCRIPTION":"Load
292
+ balancing weight, 1-255. Higher means more connections.","default":100,"TYPE":"numeric","REQUIRED":false},"Address":{"NAME":"Address","DESCRIPTION":"The
293
+ address:port combination used to communicate with this Node","TYPE":"string","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"account.info":{"DESCRIPTION":"Shows
294
+ information about your account such as the date your account was opened as
295
+ well as your network utilization for the current month in gigabytes.","PARAMETERS":{},"THROWS":""},"linode.ip.addprivate":{"DESCRIPTION":"Assigns
296
+ a Private IP to a Linode. Returns the IPAddressID that was added.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"linode.disk.resize":{"DESCRIPTION":"","PARAMETERS":{"size":{"NAME":"size","DESCRIPTION":"The
297
+ requested new size of this Disk in MB","TYPE":"numeric","REQUIRED":true},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"DiskID":{"NAME":"DiskID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"linode.mutate":{"DESCRIPTION":"Upgrades
298
+ a Linode to its next generation.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"nodebalancer.update":{"DESCRIPTION":"Updates
299
+ a NodeBalancer''s properties","PARAMETERS":{"Label":{"NAME":"Label","DESCRIPTION":"This
300
+ NodeBalancer''s label","TYPE":"string","REQUIRED":false},"ClientConnThrottle":{"NAME":"ClientConnThrottle","DESCRIPTION":"To
301
+ help mitigate abuse, throttle connections per second, per client IP. 0 to
302
+ disable. Max of 20.","TYPE":"numeric","REQUIRED":false},"NodeBalancerID":{"NAME":"NodeBalancerID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND,VALIDATION"},"nodebalancer.config.list":{"DESCRIPTION":"Returns
303
+ a list of NodeBalancers this user has access or delete to, including their
304
+ properties","PARAMETERS":{"NodeBalancerID":{"NAME":"NodeBalancerID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"Limits
305
+ the list to the specified ConfigID","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"linode.config.update":{"DESCRIPTION":"Updates
306
+ a Linode Configuration Profile.","PARAMETERS":{"RootDeviceCustom":{"NAME":"RootDeviceCustom","DESCRIPTION":"A
307
+ custom root device setting.","TYPE":"string","REQUIRED":false},"Comments":{"NAME":"Comments","DESCRIPTION":"Comments
308
+ you wish to save along with this profile","TYPE":"string","REQUIRED":false},"helper_distro":{"NAME":"helper_distro","DESCRIPTION":"Enable
309
+ the Distro filesystem helper. Corrects fstab and inittab\/upstart entries
310
+ depending on the kernel you''re booting. You want this.","TYPE":"boolean","REQUIRED":false},"devtmpfs_automount":{"NAME":"devtmpfs_automount","DESCRIPTION":"Controls
311
+ if pv_ops kernels should automount devtmpfs at boot. ","TYPE":"boolean","REQUIRED":false},"Label":{"NAME":"Label","DESCRIPTION":"The
312
+ Label for this profile","TYPE":"string","REQUIRED":false},"helper_disableUpdateDB":{"NAME":"helper_disableUpdateDB","DESCRIPTION":"Enable
313
+ the disableUpdateDB filesystem helper","TYPE":"boolean","REQUIRED":false},"ConfigID":{"NAME":"ConfigID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"helper_network":{"NAME":"helper_network","DESCRIPTION":"Automatically
314
+ creates network configuration files for your distro and places them into your
315
+ filesystem.","TYPE":"boolean","REQUIRED":false},"DiskList":{"NAME":"DiskList","DESCRIPTION":"A
316
+ comma delimited list of DiskIDs; position reflects device node. The 9th element
317
+ for specifying the initrd.","TYPE":"string","REQUIRED":false},"RootDeviceRO":{"NAME":"RootDeviceRO","DESCRIPTION":"Enables
318
+ the ''ro'' kernel flag. Modern distros want this. ","TYPE":"boolean","REQUIRED":false},"RunLevel":{"NAME":"RunLevel","DESCRIPTION":"One
319
+ of ''default'', ''single'', ''binbash'' ","TYPE":"string","REQUIRED":false},"RootDeviceNum":{"NAME":"RootDeviceNum","DESCRIPTION":"Which
320
+ device number (1-8) that contains the root partition. 0 to utilize RootDeviceCustom.","TYPE":"numeric","REQUIRED":false},"helper_xen":{"NAME":"helper_xen","DESCRIPTION":"Deprecated
321
+ - use helper_distro.","TYPE":"boolean","REQUIRED":false},"RAMLimit":{"NAME":"RAMLimit","DESCRIPTION":"RAMLimit
322
+ in MB. 0 for max.","TYPE":"numeric","REQUIRED":false},"virt_mode":{"NAME":"virt_mode","DESCRIPTION":"Controls
323
+ the virtualization mode. One of ''paravirt'', ''fullvirt'' ","TYPE":"string","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"KernelID":{"NAME":"KernelID","DESCRIPTION":"The
324
+ KernelID for this profile. Found in avail.kernels()","TYPE":"numeric","REQUIRED":false},"helper_depmod":{"NAME":"helper_depmod","DESCRIPTION":"Creates
325
+ an empty modprobe file for the kernel you''re booting. ","TYPE":"boolean","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"linode.shutdown":{"DESCRIPTION":"Issues
326
+ a shutdown job for a given LinodeID.","PARAMETERS":{"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"domain.delete":{"DESCRIPTION":"","PARAMETERS":{"DomainID":{"NAME":"DomainID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"image.list":{"DESCRIPTION":"Lists
327
+ available gold-master images","PARAMETERS":{"ImageID":{"NAME":"ImageID","DESCRIPTION":"Request
328
+ information for a specific gold-master image","TYPE":"numeric","REQUIRED":false},"pending":{"NAME":"pending","DESCRIPTION":"Show
329
+ images currently being created.","TYPE":"numeric","REQUIRED":false}},"THROWS":"NOTFOUND"},"account.paybalance":{"DESCRIPTION":"Pays
330
+ current balance on file, returning it in the response.","PARAMETERS":{},"THROWS":"CCEXPIRED,CCFAILED,NOACCESS,PAYMENTLIMITER,VALIDATION"},"nodebalancer.node.delete":{"DESCRIPTION":"Deletes
331
+ a Node from a NodeBalancer Config","PARAMETERS":{"NodeID":{"NAME":"NodeID","DESCRIPTION":"The
332
+ NodeID to delete","TYPE":"numeric","REQUIRED":true}},"THROWS":"NOTFOUND"},"nodebalancer.list":{"DESCRIPTION":"Returns
333
+ a list of NodeBalancers this user has access or delete to, including their
334
+ properties","PARAMETERS":{"NodeBalancerID":{"NAME":"NodeBalancerID","DESCRIPTION":"Limits
335
+ the list to the specified NodeBalancerID","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"test.echo":{"DESCRIPTION":"Echos
336
+ back parameters that were passed in.","PARAMETERS":{},"THROWS":""},"stackscript.list":{"DESCRIPTION":"Lists
337
+ StackScripts you have access to.","PARAMETERS":{"StackScriptID":{"NAME":"StackScriptID","DESCRIPTION":"Limits
338
+ the list to the specified StackScriptID","TYPE":"numeric","REQUIRED":false}},"THROWS":""},"domain.resource.update":{"DESCRIPTION":"Update
339
+ a domain record.","PARAMETERS":{"DomainID":{"NAME":"DomainID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"Port":{"NAME":"Port","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"ResourceID":{"NAME":"ResourceID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"Name":{"NAME":"Name","DESCRIPTION":"The
340
+ hostname or FQDN. When Type=MX the subdomain to delegate to the Target MX
341
+ server.","TYPE":"string","REQUIRED":false},"Weight":{"NAME":"Weight","DESCRIPTION":"","TYPE":"numeric","REQUIRED":false},"Target":{"NAME":"Target","DESCRIPTION":"When
342
+ Type=MX the hostname. When Type=CNAME the target of the alias. When Type=TXT
343
+ the value of the record. When Type=A or AAAA the token of ''[remote_addr]''
344
+ will be substituted with the IP address of the request.","TYPE":"string","REQUIRED":false},"Priority":{"NAME":"Priority","DESCRIPTION":"Priority
345
+ for MX and SRV records, 0-255","TYPE":"numeric","REQUIRED":false},"TTL_sec":{"NAME":"TTL_sec","DESCRIPTION":"TTL. Leave
346
+ as 0 to accept our default.","TYPE":"numeric","REQUIRED":false},"Protocol":{"NAME":"Protocol","DESCRIPTION":"The
347
+ protocol to append to an SRV record. Ignored on other record types.","TYPE":"string","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"},"linode.config.create":{"DESCRIPTION":"Creates
348
+ a Linode Configuration Profile.","PARAMETERS":{"RootDeviceCustom":{"NAME":"RootDeviceCustom","DESCRIPTION":"A
349
+ custom root device setting.","default":"","TYPE":"string","REQUIRED":false},"Comments":{"NAME":"Comments","DESCRIPTION":"Comments
350
+ you wish to save along with this profile","default":"","TYPE":"string","REQUIRED":false},"helper_distro":{"NAME":"helper_distro","DESCRIPTION":"Enable
351
+ the Distro filesystem helper. Corrects fstab and inittab\/upstart entries
352
+ depending on the kernel you''re booting. You want this.","default":true,"TYPE":"boolean","REQUIRED":false},"devtmpfs_automount":{"NAME":"devtmpfs_automount","DESCRIPTION":"Controls
353
+ if pv_ops kernels should automount devtmpfs at boot. ","default":true,"TYPE":"boolean","REQUIRED":false},"helper_disableUpdateDB":{"NAME":"helper_disableUpdateDB","DESCRIPTION":"Enable
354
+ the disableUpdateDB filesystem helper","default":true,"TYPE":"boolean","REQUIRED":false},"Label":{"NAME":"Label","DESCRIPTION":"The
355
+ Label for this profile","TYPE":"string","REQUIRED":true},"helper_network":{"NAME":"helper_network","DESCRIPTION":"Automatically
356
+ creates network configuration files for your distro and places them into your
357
+ filesystem.","default":true,"TYPE":"boolean","REQUIRED":false},"DiskList":{"NAME":"DiskList","DESCRIPTION":"A
358
+ comma delimited list of DiskIDs; position reflects device node. The 9th element
359
+ for specifying the initrd.","TYPE":"string","REQUIRED":true},"RootDeviceRO":{"NAME":"RootDeviceRO","DESCRIPTION":"Enables
360
+ the ''ro'' kernel flag. Modern distros want this. ","default":true,"TYPE":"boolean","REQUIRED":false},"RunLevel":{"NAME":"RunLevel","DESCRIPTION":"One
361
+ of ''default'', ''single'', ''binbash'' ","default":"default","TYPE":"string","REQUIRED":false},"RootDeviceNum":{"NAME":"RootDeviceNum","DESCRIPTION":"Which
362
+ device number (1-8) that contains the root partition. 0 to utilize RootDeviceCustom.","default":1,"TYPE":"numeric","REQUIRED":false},"helper_xen":{"NAME":"helper_xen","DESCRIPTION":"Deprecated
363
+ - use helper_distro.","default":true,"TYPE":"boolean","REQUIRED":false},"RAMLimit":{"NAME":"RAMLimit","DESCRIPTION":"RAMLimit
364
+ in MB. 0 for max.","default":0,"TYPE":"numeric","REQUIRED":false},"virt_mode":{"NAME":"virt_mode","DESCRIPTION":"Controls
365
+ the virtualization mode. One of ''paravirt'', ''fullvirt'' ","default":"paravirt","TYPE":"string","REQUIRED":false},"LinodeID":{"NAME":"LinodeID","DESCRIPTION":"","TYPE":"numeric","REQUIRED":true},"KernelID":{"NAME":"KernelID","DESCRIPTION":"The
366
+ KernelID for this profile. Found in avail.kernels()","TYPE":"numeric","REQUIRED":true},"helper_depmod":{"NAME":"helper_depmod","DESCRIPTION":"Creates
367
+ an empty modprobe file for the kernel you''re booting. ","default":true,"TYPE":"boolean","REQUIRED":false}},"THROWS":"NOTFOUND,VALIDATION"}}},"ACTION":"api.spec"}'
368
+ http_version:
369
+ recorded_at: Thu, 29 Oct 2015 02:01:46 GMT
370
+ - request:
371
+ method: post
372
+ uri: https://api.linode.com/
373
+ body:
374
+ encoding: UTF-8
375
+ string: username=<USER>&password=<PASSWORD>&api_key=&api_action=user.getapikey
376
+ headers:
377
+ Accept-Encoding:
378
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
379
+ Accept:
380
+ - "*/*"
381
+ User-Agent:
382
+ - Ruby
383
+ response:
384
+ status:
385
+ code: 200
386
+ message: OK
387
+ headers:
388
+ Server:
389
+ - nginx
390
+ Date:
391
+ - Thu, 29 Oct 2015 02:01:45 GMT
392
+ Content-Type:
393
+ - application/json;charset=UTF-8
394
+ Transfer-Encoding:
395
+ - chunked
396
+ Connection:
397
+ - keep-alive
398
+ X-Powered-By:
399
+ - Tiger Blood
400
+ Access-Control-Allow-Origin:
401
+ - "*"
402
+ Strict-Transport-Security:
403
+ - max-age=31536000
404
+ body:
405
+ encoding: UTF-8
406
+ string: '{"ERRORARRAY":[],"DATA":{"USERNAME":"<USER>","API_KEY":"SEKRIT"},"ACTION":"user.getapikey"}'
407
+ http_version:
408
+ recorded_at: Thu, 29 Oct 2015 02:01:46 GMT
409
+ - request:
410
+ method: post
411
+ uri: https://api.linode.com/
412
+ body:
413
+ encoding: UTF-8
414
+ string: api_key=zX5aHPSyskOuJmWTxTAkiNrsmyocoILpBLkGapC0Pu78IRMwSXMlAIZTCvab6qr8&api_action=test.echo
415
+ headers:
416
+ Accept-Encoding:
417
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
418
+ Accept:
419
+ - "*/*"
420
+ User-Agent:
421
+ - Ruby
422
+ response:
423
+ status:
424
+ code: 200
425
+ message: OK
426
+ headers:
427
+ Server:
428
+ - nginx
429
+ Date:
430
+ - Thu, 29 Oct 2015 02:01:46 GMT
431
+ Content-Type:
432
+ - application/json;charset=UTF-8
433
+ Transfer-Encoding:
434
+ - chunked
435
+ Connection:
436
+ - keep-alive
437
+ X-Powered-By:
438
+ - Tiger Blood
439
+ Access-Control-Allow-Origin:
440
+ - "*"
441
+ Strict-Transport-Security:
442
+ - max-age=31536000
443
+ body:
444
+ encoding: UTF-8
445
+ string: '{"ERRORARRAY":[],"DATA":{},"ACTION":"test.echo"}'
446
+ http_version:
447
+ recorded_at: Thu, 29 Oct 2015 02:01:46 GMT
448
+ recorded_with: VCR 2.9.3