code42 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +82 -64
  3. data/Rakefile +5 -0
  4. data/code42.gemspec +6 -6
  5. data/lib/code42/api/computer.rb +22 -0
  6. data/lib/code42/api/org.rb +60 -0
  7. data/lib/code42/api/role.rb +24 -0
  8. data/lib/code42/api/token.rb +32 -0
  9. data/lib/code42/api/user.rb +72 -0
  10. data/lib/code42/client.rb +7 -178
  11. data/lib/code42/user.rb +8 -0
  12. data/lib/code42/version.rb +1 -1
  13. data/spec/cassettes/Code42_Client/_create_org/returns_created_org.yml +8 -8
  14. data/spec/cassettes/Code42_Client/_create_user/returns_created_user.yml +6 -6
  15. data/spec/cassettes/Code42_Client/_create_user/when_sending_an_invalid_email/raises_an_exception.yml +2 -2
  16. data/spec/cassettes/Code42_Client/_find_org_by_name/returns_the_org_with_the_specified_name.yml +12 -58
  17. data/spec/cassettes/Code42_Client/_get_token/returns_valid_tokens.yml +5 -5
  18. data/spec/cassettes/Code42_Client/_get_token/when_providing_invalid_credentials/should_raise_an_exception.yml +2 -2
  19. data/spec/cassettes/Code42_Client/_org/when_ID_is_not_passed/returns_my_org.yml +11 -11
  20. data/spec/cassettes/Code42_Client/_org/when_ID_is_passed_in/returns_a_specific_org.yml +11 -11
  21. data/spec/cassettes/Code42_Client/_ping/returns_a_ping.yml +5 -5
  22. data/spec/cassettes/Code42_Client/_user/when_ID_is_not_passed/returns_my_user.yml +10 -10
  23. data/spec/cassettes/Code42_Client/_user/when_ID_is_passed_in/returns_a_specific_user.yml +10 -10
  24. data/spec/cassettes/Code42_Client/_user/when_blocked/returns_the_blocked_status.yml +84 -0
  25. data/spec/cassettes/Code42_Client/_user/when_unblocked/returns_the_blocked_status.yml +113 -0
  26. data/spec/cassettes/Code42_Client/_user_roles/returns_an_enumerable.yml +7 -7
  27. data/spec/cassettes/Code42_Client/_validate_token/returns_a_valid_response.yml +10 -10
  28. data/spec/{crashplan → code42}/client_spec.rb +26 -5
  29. data/spec/{crashplan → code42}/connection_spec.rb +0 -0
  30. data/spec/{crashplan → code42}/org_spec.rb +0 -0
  31. data/spec/{crashplan → code42}/ping_spec.rb +0 -0
  32. data/spec/{crashplan → code42}/resource_spec.rb +0 -0
  33. data/spec/{crashplan → code42}/role_spec.rb +0 -0
  34. data/spec/{crashplan → code42}/settings_spec.rb +0 -0
  35. data/spec/{crashplan → code42}/token_spec.rb +0 -0
  36. data/spec/{crashplan → code42}/user_spec.rb +0 -0
  37. metadata +49 -66
  38. data/spec/cassettes/Crashplan_Client/_create_org/returns_created_org.yml +0 -47
  39. data/spec/cassettes/Crashplan_Client/_create_user/returns_created_user.yml +0 -44
  40. data/spec/cassettes/Crashplan_Client/_create_user/when_sending_an_invalid_email/raises_an_exception.yml +0 -37
  41. data/spec/cassettes/Crashplan_Client/_find_org_by_name/returns_the_org_with_the_specified_name.yml +0 -55
  42. data/spec/cassettes/Crashplan_Client/_get_token/returns_valid_tokens.yml +0 -38
  43. data/spec/cassettes/Crashplan_Client/_get_token/when_providing_invalid_credentials/should_raise_an_exception.yml +0 -37
  44. data/spec/cassettes/Crashplan_Client/_org/when_ID_is_not_passed/returns_my_org.yml +0 -54
  45. data/spec/cassettes/Crashplan_Client/_org/when_ID_is_passed_in/returns_a_specific_org.yml +0 -54
  46. data/spec/cassettes/Crashplan_Client/_ping/returns_a_ping.yml +0 -48
  47. data/spec/cassettes/Crashplan_Client/_user/when_ID_is_not_passed/returns_my_user.yml +0 -99
  48. data/spec/cassettes/Crashplan_Client/_user/when_ID_is_passed_in/returns_a_specific_user.yml +0 -53
  49. data/spec/cassettes/Crashplan_Client/_user_roles/returns_an_enumerable.yml +0 -50
  50. data/spec/cassettes/Crashplan_Client/_validate_token/returns_a_valid_response.yml +0 -128
@@ -1,7 +1,14 @@
1
1
  require 'json'
2
+ Dir[File.dirname(__FILE__) + '/api/*.rb'].each { |file| require file }
2
3
 
3
4
  module Code42
4
5
  class Client
6
+ include Code42::API::User
7
+ include Code42::API::Role
8
+ include Code42::API::Org
9
+ include Code42::API::Computer
10
+ include Code42::API::Token
11
+
5
12
  attr_accessor :settings
6
13
 
7
14
  def initialize(options = {})
@@ -33,184 +40,6 @@ module Code42
33
40
  settings.token = token.to_s
34
41
  end
35
42
 
36
- ### Authentication With Tokens :post, :get, :delete ###
37
-
38
- # Gets a token for the currently authorized user
39
- def get_token
40
- object_from_response(Token, :post, "authToken")
41
- end
42
-
43
- # Returns LoginToken and ServerUrl
44
- # @return [CrashPlan::Token] Token to pass to ServerUrl's AuthToken resource
45
- def get_login_token
46
- object_from_response(Token, :post, "loginToken")
47
- end
48
-
49
- # Validates an authorization token
50
- # @return [Code42::TokenValidation]
51
- # @param token [Code42::Token, String] The token to validate
52
- def validate_token(token)
53
- object_from_response(TokenValidation, :get, "authToken/#{token.to_s}")
54
- end
55
-
56
- # Manually expires a token
57
- # @param token [Code42::Token, String] A token to expire (leave blank to expire currently used token)
58
- def delete_token(token = nil)
59
- token = token || settings.token
60
- delete "authToken/#{token.to_s}"
61
- end
62
-
63
- ### Users :post, :get ###
64
-
65
- # Creates a user
66
- # @return [Code42::User] The created user
67
- # @param attrs [Hash] A hash of attributes to assign to created user
68
- # @example
69
- # client.create_user(:username => 'testuser', password: 'letmein', email: 'test@example.com', org_id: 3)
70
- def create_user(attrs = {})
71
- object_from_response(User, :post, "user", attrs)
72
- end
73
-
74
- # Returns information for a given user
75
- # @return [Code42::User] The requested user
76
- # @param id_or_username [String, Integer] A code42 user ID or username
77
- def user(id_or_username = "my", params = {})
78
- if id_or_username.is_a?(Fixnum) || id_or_username == 'my'
79
- find_user_by_id id_or_username, params
80
- else
81
- find_user_by_username id_or_username, params
82
- end
83
- end
84
-
85
- # Returns a user for a given id
86
- def find_user_by_id(id = 'my', params = {})
87
- object_from_response(User, :get, "user/#{id}", params)
88
- end
89
-
90
- # Returns a user for a given username
91
- def find_user_by_username(username, params = {})
92
- params.merge!(username: username)
93
- users(params).first
94
- end
95
-
96
- # Returns a user for a given channel id
97
- # @return [Code42::User] The requested user
98
- # @param channel_id [String, Integer] A code42 User
99
- def find_user_by_channel_id(channel_id = 1)
100
- object_from_response(User, :get, "userChannel?channelCustomerId=#{channel_id}")
101
- end
102
-
103
- # Returns a list of up to 100 users
104
- # @return [Array] An array of matching users
105
- # @param params [Hash] A hash of parameters to match results against
106
- def users(params = {})
107
- params.merge!(key: 'users')
108
- objects_from_response(User, :get, 'user', params)
109
- end
110
-
111
- # Check if user exists with given username.
112
- def user_exists?(username)
113
- users(username: username).present?
114
- end
115
-
116
- ### Roles :post, :get ###
117
-
118
- # Assigns a role to a user
119
- # @return [Code42::Role] The assigned role
120
- # @param attrs [Hash] A hash of attributes for assigning a user role
121
- # @example
122
- # client.assign_role(:user_id => 2, :role_name => 'Admin')
123
- def assign_role(attrs = {})
124
- object_from_response(Role, :post, 'UserRole', attrs)
125
- end
126
-
127
- # Returns a list of roles for a given user
128
- # @return [Code42::RoleCollection] A collection of matching roles
129
- # @param id [String, Integer] The id of the user to return roles for
130
- def user_roles(id = 'my')
131
- collection_from_response(RoleCollection, Role, :get, "userRole/#{id}")
132
- end
133
-
134
- ### Orgs :post, :get, :put, :delete ###
135
-
136
- # Creates blue org as well as user for the org
137
- # @return [Code42::Org] The created org
138
- # @param attrs [Hash] A hash of attributes to assign to created org
139
- # @example
140
- # client.create_org(:company => "test", :email => "test@test.com", :firstname => "test", :lastname => "test")
141
- def create_pro_org(attrs = {})
142
- object_from_response(Org, :post, "proOrgChannel", attrs)
143
- end
144
-
145
- # Creates an org
146
- # @return [Code42::Org] The created org
147
- # @param attrs [Hash] A hash of attributes to assign to created org
148
- # @example
149
- # client.create_org(:name => 'Acme Org', :parent_id => 2)
150
- def create_org(attrs = {})
151
- object_from_response(Org, :post, "org", attrs)
152
- end
153
-
154
- # Returns information for a given org
155
- # @return [Code42::Org] The requested org
156
- # @param id [String, Integer] A code42 user ID
157
- def org(id = "my", params = {})
158
- object_from_response(Org, :get, "org/#{id}", params)
159
- end
160
-
161
- # Returns an org for a given name
162
- # @return [Code42::Org] The requested org
163
- # @param name [String] A Code42 org name
164
- # FIXME: This needs to change when the API implements a better way.
165
- def find_org_by_name(name)
166
- search_orgs(name).select { |o| o.name == name }.first
167
- end
168
-
169
- # Searches orgs for a query string
170
- # @return [Array] An array of matching orgs
171
- # @param query [String] A string to search for
172
- def search_orgs(query)
173
- orgs(q: query)
174
- end
175
-
176
- # Creates a user
177
- # @return [Code42::User] The created user
178
- # @param attrs [Hash] A hash of attributes to assign to created user
179
- # @example
180
- # client.create_user(:username => 'testuser', :password => 'letmein', :email => 'test@example.com', :org_id => 3)
181
- def create_user(attrs = {})
182
- object_from_response(User, :post, "user", attrs)
183
- end
184
-
185
- # Returns a list of up to 100 orgs
186
- # @return [Array] An array of matching orgs
187
- # @param params [Hash] A hash of parameters to match results against
188
- def orgs(params = {})
189
- params.merge!(key: 'orgs')
190
- objects_from_response(Org, :get, 'org', params)
191
- end
192
-
193
- def update_org(id = 'my', attrs = {})
194
- object_from_response(Org, :put, "org/#{id}", attrs)
195
- end
196
-
197
- ### Computers :get, :put ###
198
-
199
- # Returns one computer or http status 404
200
- # @return [Code42::Computer] The requested computer
201
- # @param id [String, Integer] A computer ID
202
- def computer(id, params = {})
203
- object_from_response(Computer, :get, "computer/#{id}", params)
204
- end
205
-
206
- # Returns a list of computers
207
- # @return [Array] The list of computers
208
- # @param params [Hash] A hash of valid search parameters for computers
209
- def computers(params = {})
210
- params.merge!(key: 'computers')
211
- objects_from_response(Computer, :get, 'computer', params)
212
- end
213
-
214
43
  def diagnostic
215
44
  object_from_response(Diagnostic, :get, 'diagnostic')
216
45
  end
@@ -36,5 +36,13 @@ module Code42
36
36
  attrs.merge!(user_id: id)
37
37
  client.assign_role(attrs)
38
38
  end
39
+
40
+ def block
41
+ client.block_user(user_id: id)
42
+ end
43
+
44
+ def unblock
45
+ client.unblock_user(user_id: id)
46
+ end
39
47
  end
40
48
  end
@@ -1,3 +1,3 @@
1
1
  module Code42
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -30,18 +30,18 @@ http_interactions:
30
30
  - Jetty(7.6.3.v20120416)
31
31
  body:
32
32
  encoding: US-ASCII
33
- string: ! "{\n \"metadata\": {\n \"timestamp\": \"2013-05-06T12:05:59.055-05:00\",\n
34
- \ \"params\": {}\n },\n \"data\": {\n \"orgId\": 86,\n \"orgUid\":
35
- \"582357901600501463\",\n \"orgName\": \"IBM\",\n \"status\": \"Active\",\n
33
+ string: ! "{\n \"metadata\": {\n \"timestamp\": \"2013-06-11T15:36:12.931-05:00\",\n
34
+ \ \"params\": {}\n },\n \"data\": {\n \"orgId\": 88,\n \"orgUid\":
35
+ \"587597449746066070\",\n \"orgName\": \"IBM\",\n \"status\": \"Active\",\n
36
36
  \ \"active\": true,\n \"blocked\": false,\n \"parentOrgId\": null,\n
37
- \ \"type\": \"ENTERPRISE\",\n \"externalId\": \"582357901600501463\",\n
37
+ \ \"type\": \"ENTERPRISE\",\n \"externalId\": \"587597449746066070\",\n
38
38
  \ \"hierarchyCounts\": {},\n \"configInheritanceCounts\": {},\n \"creationDate\":
39
- \"2013-05-06T12:05:58.710-05:00\",\n \"modificationDate\": \"2013-05-06T12:05:59.019-05:00\",\n
40
- \ \"registrationKey\": \"WS8T-JKPH-CWK9-URKK\",\n \"reporting\": {},\n
39
+ \"2013-06-11T15:36:12.778-05:00\",\n \"modificationDate\": \"2013-06-11T15:36:12.894-05:00\",\n
40
+ \ \"registrationKey\": \"K44T-JS9H-892T-4C4U\",\n \"reporting\": {},\n
41
41
  \ \"customConfig\": false,\n \"settings\": {\n \"maxSeats\":
42
42
  null,\n \"maxBytes\": null\n },\n \"settingsInherited\": {\n
43
43
  \ \"maxSeats\": \"\",\n \"maxBytes\": \"\"\n },\n \"settingsSummary\":
44
44
  \ {\n \"maxSeats\": \"\",\n \"maxBytes\": \"\"\n }\n }\n}"
45
45
  http_version:
46
- recorded_at: Mon, 06 May 2013 17:05:59 GMT
47
- recorded_with: VCR 2.4.0
46
+ recorded_at: Tue, 11 Jun 2013 20:36:12 GMT
47
+ recorded_with: VCR 2.5.0
@@ -30,15 +30,15 @@ http_interactions:
30
30
  - Jetty(7.6.3.v20120416)
31
31
  body:
32
32
  encoding: US-ASCII
33
- string: ! "{\n \"metadata\": {\n \"timestamp\": \"2013-05-06T12:05:57.453-05:00\",\n
33
+ string: ! "{\n \"metadata\": {\n \"timestamp\": \"2013-06-11T15:36:13.440-05:00\",\n
34
34
  \ \"params\": {}\n },\n \"data\": {\n \"userId\": 3,\n \"userUid\":
35
- \"827da4bcbdf814a6\",\n \"status\": \"Active\",\n \"username\": \"testuser\",\n
35
+ \"89e29f40cccc6890\",\n \"status\": \"Active\",\n \"username\": \"testuser\",\n
36
36
  \ \"email\": null,\n \"firstName\": null,\n \"lastName\": null,\n
37
37
  \ \"quotaInBytes\": -1,\n \"orgId\": 2,\n \"orgUid\": \"proserverdemo\",\n
38
38
  \ \"orgName\": \"PROServer Demo\",\n \"active\": true,\n \"blocked\":
39
39
  false,\n \"emailPromo\": true,\n \"invited\": true,\n \"orgType\":
40
- \"ENTERPRISE\",\n \"usernameIsAnEmail\": null,\n \"creationDate\": \"2013-05-06T12:05:57.391-05:00\",\n
41
- \ \"modificationDate\": \"2013-05-06T12:05:57.395-05:00\"\n }\n}"
40
+ \"ENTERPRISE\",\n \"usernameIsAnEmail\": null,\n \"creationDate\": \"2013-06-11T15:34:42.178-05:00\",\n
41
+ \ \"modificationDate\": \"2013-06-11T15:36:13.426-05:00\"\n }\n}"
42
42
  http_version:
43
- recorded_at: Mon, 06 May 2013 17:05:57 GMT
44
- recorded_with: VCR 2.4.0
43
+ recorded_at: Tue, 11 Jun 2013 20:36:13 GMT
44
+ recorded_with: VCR 2.5.0
@@ -33,5 +33,5 @@ http_interactions:
33
33
  encoding: US-ASCII
34
34
  string: ! '[{"name":"EMAIL_INVALID","description":"Email is invalid","objects":[]}]'
35
35
  http_version:
36
- recorded_at: Mon, 06 May 2013 17:05:57 GMT
37
- recorded_with: VCR 2.4.0
36
+ recorded_at: Tue, 11 Jun 2013 20:36:13 GMT
37
+ recorded_with: VCR 2.5.0
@@ -1,51 +1,5 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: http://admin:admin@localhost:7280/api/org?q=Default
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Faraday v0.8.7
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - ! '*/*'
16
- response:
17
- status:
18
- code: 200
19
- message: !binary |-
20
- T0s=
21
- headers:
22
- !binary "Q2FjaGUtQ29udHJvbA==":
23
- - !binary |-
24
- bm8tc3RvcmU=
25
- !binary "UHJhZ21h":
26
- - !binary |-
27
- bm8tY2FjaGU=
28
- !binary "Q29udGVudC1UeXBl":
29
- - !binary |-
30
- YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOA==
31
- !binary "Q29udGVudC1FbmNvZGluZw==":
32
- - !binary |-
33
- Z3ppcA==
34
- !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
35
- - !binary |-
36
- Y2h1bmtlZA==
37
- !binary "U2VydmVy":
38
- - !binary |-
39
- SmV0dHkoNy42LjMudjIwMTIwNDE2KQ==
40
- body:
41
- encoding: ASCII-8BIT
42
- string: !binary |-
43
- H4sIAAAAAAAAAGWNuw7CMAxF936F5blFbpARylo+gQ11sERASA3pw52i/DuO
44
- YGP0ufdc5wYAY1C5iwp6AMhGjOkrhk0lzgbRUX/siDs6XXvniT2fD+zsZk+E
45
- 7deYZZW4WT3jUqVLeMg+KRaLS+3g34+kMg1pf6tR+s2k9VlHbmPVmvIB1DL0
46
- wKEAAAA=
47
- http_version:
48
- recorded_at: Mon, 06 May 2013 17:05:58 GMT
49
3
  - request:
50
4
  method: get
51
5
  uri: http://admin:admin@localhost:7280/api/org?q=PROServer%20Demo
@@ -86,16 +40,16 @@ http_interactions:
86
40
  body:
87
41
  encoding: ASCII-8BIT
88
42
  string: !binary |-
89
- H4sIAAAAAAAAAKVTTU/CQBC9+yuaPVtTqqj05geJhEQJLfFgPIxlgI3d3bo7
90
- NTak/93dBQsCetBTs2/evDdfXR4FARNIMAUClgRBsLSIxYgLNASitCCLo85p
91
- GHXD6DzrxEnUS+KLk3P37iZRxI5XGSVoEMbSl+zNJY3GDynqd9TBLQrFGstq
92
- HJXtWSmC4kZVkizaWaspPXdaT0HLW4GDqUXj4y1kwh3ESq2Mt5s6t23CPQg8
93
- UFBLsW1S5czYVU78HTcRWL2TgHSFLfpSqPwVnekMCrPB7QBQ0sO6RlkVRRui
94
- uvQl9O+z/ng0HqT9jQl+EGoJxeC3NhYcNeh8Ufs5+Sk3bTBXcsbnA7lAzQlk
95
- jgdJGoG4krdAeGCnnaR7dtKLom87dbehpnzG87+kapxzQ9qnDrH2mcPhY9jL
96
- 0iyM7yZxOBlll9v8Umnicr5TeGVIiRvf497MDZLLMP6etm/FlQ4fqe3Z7Cxj
97
- FbmuCb8i60Czp7oeqd/1b/KMHRZn7EfptBICdP1vYf9tnt3PddR8ApJu5H7O
98
- AwAA
43
+ H4sIAAAAAAAAAKVTy07DMBC88xWRzwQlKVSQG49KVJWgalJxQByWdNtaxHaw
44
+ N4ioyr9juyUttHCAU+TZ2Zl9ZXUUBEwgwQwIWBoEwcoiFiMu0BCIyoIsieJe
45
+ GPXDOM7js7TXT+PeSRSfhtFZGkXseJ1RgQZhLH3FXl3SeHKfoX5DHdygUKy1
46
+ rNZR2Z6VIiivVS3JovFGTemF03oMOt4aHM4smhzvIFPuIFZpZbzdzLntEu5A
47
+ 4IGCOoptk2pnxi4L4m+4jcD6nQaka+zQ51IVL+hM51CaLW4HgJLuNzXKuiy7
48
+ EDWVL2Fwlw8m48kwG2xN8J1QSyiHv7Wx5KhBF8vGz8lPue2ChZJzvhjKJWpO
49
+ IAs8SNIIxJW8AcIDO03SJDrpR+dfdupuQ834nBd/SdW44Ia0Tx1h4zNHo4fw
50
+ Is/yMLmdJuF0nJ/v8iulicvFt8JrQ0pc+x73Zm6QXIbx97R7K650eM9sz+bb
51
+ MtaRq4bwM7IJtHuqm5H6Xf8mz9hhccZ+lM5qIUA3/xb23/bJ/VxH7QdHtqUI
52
+ zgMAAA==
99
53
  http_version:
100
- recorded_at: Mon, 06 May 2013 17:09:27 GMT
101
- recorded_with: VCR 2.4.0
54
+ recorded_at: Tue, 11 Jun 2013 20:36:13 GMT
55
+ recorded_with: VCR 2.5.0
@@ -30,9 +30,9 @@ http_interactions:
30
30
  - Jetty(7.6.3.v20120416)
31
31
  body:
32
32
  encoding: US-ASCII
33
- string: ! "{\n \"metadata\": {\n \"timestamp\": \"2013-05-06T12:05:58.625-05:00\",\n
34
- \ \"params\": {}\n },\n \"data\": [\n \"1cgl9anbs064v1rkwf7n6rv8d7\",\n
35
- \ \"0ahnn5s4gu27a0ctl9u4vbqmxy\"\n ]\n}"
33
+ string: ! "{\n \"metadata\": {\n \"timestamp\": \"2013-06-11T15:36:13.358-05:00\",\n
34
+ \ \"params\": {}\n },\n \"data\": [\n \"1vg9c5mi59cze0e9v679dha9wi\",\n
35
+ \ \"12d07otjuvxh51o5woefxkofdq\"\n ]\n}"
36
36
  http_version:
37
- recorded_at: Mon, 06 May 2013 17:05:58 GMT
38
- recorded_with: VCR 2.4.0
37
+ recorded_at: Tue, 11 Jun 2013 20:36:13 GMT
38
+ recorded_with: VCR 2.5.0
@@ -33,5 +33,5 @@ http_interactions:
33
33
  encoding: US-ASCII
34
34
  string: ! '[{"name":"SYSTEM","description":"Invalid or missing credentials"}]'
35
35
  http_version:
36
- recorded_at: Mon, 06 May 2013 17:05:58 GMT
37
- recorded_with: VCR 2.4.0
36
+ recorded_at: Tue, 11 Jun 2013 20:36:13 GMT
37
+ recorded_with: VCR 2.5.0
@@ -40,15 +40,15 @@ http_interactions:
40
40
  body:
41
41
  encoding: ASCII-8BIT
42
42
  string: !binary |-
43
- H4sIAAAAAAAAAJ2SwW7CMAyG73uKKmeKUkph9LYBh2oam4A9QFZMidYkVeJO
44
- VIh3X9KWIUp3WdSLv9h/f9s5PXgeEYBsx5CR2PO8kyWWIRdgkInCQjKiQejT
45
- yKeTbTCKaRRHj8NxaOMoppQMmoqCaSaMTT+dLTg7SrqqSmfJzoJg8Bt/cAfI
46
- 0+I1WZErXjEBd9wawtLUOEX+DRfOmij2UJfQss9cpV/gtPcsN3A1CRLfWhuy
47
- zPP2Aqui/t9ytV2u39fJZnkRhyOClixP7n0eOGim00M1V6XEpvf2KlVyz7NE
48
- HkBzZDKFnhQNDLmSC4bQTJlO3JRH4TaI4iCIw9kwiGa3UxZqx/c87Smc+tQW
49
- 0nhsv+kwCjrr0ZBxg7oufIHK1R0755paKI1cZjduS4NKzOu2bidtAF2yqRd9
50
- WbWzyo4b26Hjfrvwhj5XCA2t4bmj0w6t3t1fgoT0CRLSK7gphWC6+rc/95wf
51
- zj8FHKrJKwMAAA==
43
+ H4sIAAAAAAAAAJ2SwXKCMBCG7z4Fk7M4BIROubXqgenUdtQ+QIorZkoSJiwd
44
+ GYd3bwJYB7SXcsuX3T///st54jhEALI9Q0Zix3HOhhiGXECJTBQGEt+jgetF
45
+ LqU7GsZBFFN/FlHqemHseWTadRRMM1Ga8nNjQGMpGasqnSV7A+j09/zBLSBP
46
+ y9dkTa54zQTccGMIq7LFKfJvuHDWnWIHdQU9+8xV+gVW+8DyEq4mQeJbb0NW
47
+ ed5fYF20763Wu9XmfZNsVxdxOCFoyfLk1ueRg2Y6PdYLVUnsZu+vUiUPPEvk
48
+ ETRHJlO4U6KBIVdyyRC6lE3EXuj6gU2Z0jh4nNHwcZiyUHt+4OmocbCeeTyn
49
+ swc/GjZqyHiJum18gdr2nUbftbRQGrnMBm6rEpVYtGMNky4BbXHZLvqyamuV
50
+ nbZmQsvdfuEdfa4ROtrCZqTTh9bu7i9BQu4JEnJXcFsJwXT9b3/2d540P9qU
51
+ bgYrAwAA
52
52
  http_version:
53
- recorded_at: Mon, 06 May 2013 17:05:58 GMT
54
- recorded_with: VCR 2.4.0
53
+ recorded_at: Tue, 11 Jun 2013 20:36:12 GMT
54
+ recorded_with: VCR 2.5.0
@@ -40,15 +40,15 @@ http_interactions:
40
40
  body:
41
41
  encoding: ASCII-8BIT
42
42
  string: !binary |-
43
- H4sIAAAAAAAAAJ2Sz3KCMBDG730KJmdxghT/5NaqB6ZT21H7ACmumClJmLB0
44
- ZBzfvQlgHZReynDJL/t9fLvL6cHziATkO46cMM/zTpZYhkJCgVzmFpIRDUKf
45
- Rj4db4MRoxGLpsNwMrWIUUoGjSLnhsvClp/OFpwdJbeu2qTxzoJg8Hv+EA6Q
46
- p8VrvCJXvOIS7rgNhGVR4wTFN1w4b07MQ1NCyz4znXyB897zrIBrSFD41sZQ
47
- ZZa1F1jl9feWq+1y/b6ON8uLORwRjOJZfJ/zIMBwkxyquS4VNr23V4lWe5HG
48
- 6gBGIFcJ9JQY4Ci0WnCEZsp07KY8CrdBxIKAhbNhEM26U5Z6J/Yi6RFOfGqF
49
- lD3adzKMgqgrNJCKAk0tfIHK6Y43z7U01waFSjtpywK1nNdtdSddALriol70
50
- ZdUuKj9ubIeO++3CG/pcITS0hucbn3Zo9e7+MiSkz5CQXsNNKSU31b/zud/5
51
- 4fwDfG0bySsDAAA=
43
+ H4sIAAAAAAAAAJ2SwXKCMBCG7z4Fk7M4BERHbq16YDq1HbUPkOKKmZKECUtH
44
+ xuHdmwDWAe2l3PJl98+//3IZOQ4RgOzAkJHIcZyLIYYhF1AgE7mBxPdo4Hoz
45
+ l9I9DaNgFlF/Mp8uXC+MPI+M246caSYKU36pDagtJUNVpdP4YAAd/54/uAXk
46
+ afUab8gNb5iAO24MYVk0OEH+DVfO2lPkoC6hY5+ZSr7Aah9ZVsDNJEh862zI
47
+ Msu6C6zy5r31Zr/evm/j3foqDmcELVkW3/s8cdBMJ6dqqUqJ7ezdVaLkkaex
48
+ PIHmyGQCD0o0MORKrhhCm7KJ2AtdP7ApUxoFiwkNBykLdeBHngwae+uZRlM6
49
+ mfuzfqOGlBeom8YXqGzfefDdSnOlkcu057YsUIllM1Y/6QLQFhfNoq+rtlbZ
50
+ eWcmtNztFt7S5wqhpQ2sBzpdaM3u/hIk5JEgIQ8Fd6UQTFf/9md/51H9AygL
51
+ Y0MrAwAA
52
52
  http_version:
53
- recorded_at: Mon, 06 May 2013 17:05:58 GMT
54
- recorded_with: VCR 2.4.0
53
+ recorded_at: Tue, 11 Jun 2013 20:36:12 GMT
54
+ recorded_with: VCR 2.5.0
@@ -40,9 +40,9 @@ http_interactions:
40
40
  body:
41
41
  encoding: ASCII-8BIT
42
42
  string: !binary |-
43
- H4sIAAAAAAAAAC3MPQ6AIAwG0N1TNJ3FFA1qOIcXaJTBgYRAnQh3t0TX9/3U
44
- AQBjEL5YGD0AVBU1uWMowjEp4kx2MeQMrYedPTnvtmlfSckT4fgtEmeOReu1
45
- KbSu+L9WLM95htJTyU9oQ3sBjNQqq3kAAAA=
43
+ H4sIAAAAAAAAAC3MPQqAMAwG0N1ThMxWEquCPYcXCLWDQ0FsnErvbkTX9/3U
44
+ DgBzUtlFBQMAVBMzPXIqKvk0xJHYO1oc88Zz8EtgP4zr5GgORNh/i1MuycXq
45
+ tRm0V/F/rVjuGFN5U73u1Lr2ABGVoIR5AAAA
46
46
  http_version:
47
- recorded_at: Mon, 06 May 2013 17:05:57 GMT
48
- recorded_with: VCR 2.4.0
47
+ recorded_at: Tue, 11 Jun 2013 20:36:13 GMT
48
+ recorded_with: VCR 2.5.0