class Fog::Scaleway::Account::Real
Public Class Methods
new(options)
click to toggle source
# File lib/fog/scaleway/account.rb, line 49 def initialize(options) @token = options[:scaleway_token] @email = options[:scaleway_email] @connection_options = options[:connection_options] || {} end
Public Instance Methods
create_token(options = {})
click to toggle source
# File lib/fog/scaleway/requests/account/create_token.rb, line 5 def create_token(options = {}) if @email.nil? raise ArgumentError, 'email is required to create a token' end body = { email: @email } body.merge!(options) create('/tokens', body) end
delete_token(token_id)
click to toggle source
# File lib/fog/scaleway/requests/account/delete_token.rb, line 5 def delete_token(token_id) delete("/tokens/#{token_id}") end
get_organization(organization_id)
click to toggle source
# File lib/fog/scaleway/requests/account/get_organization.rb, line 5 def get_organization(organization_id) get("/organizations/#{organization_id}") end
get_organization_quotas(organization_id)
click to toggle source
# File lib/fog/scaleway/requests/account/get_organization_quotas.rb, line 5 def get_organization_quotas(organization_id) get("/organizations/#{organization_id}/quotas") end
get_token(token_id)
click to toggle source
# File lib/fog/scaleway/requests/account/get_token.rb, line 5 def get_token(token_id) get("/tokens/#{token_id}") end
get_token_permissions(token_id)
click to toggle source
# File lib/fog/scaleway/requests/account/get_token_permissions.rb, line 5 def get_token_permissions(token_id) get("/tokens/#{token_id}/permissions") end
get_user(user_id)
click to toggle source
# File lib/fog/scaleway/requests/account/get_user.rb, line 5 def get_user(user_id) get("/users/#{user_id}") end
list_organizations()
click to toggle source
# File lib/fog/scaleway/requests/account/list_organizations.rb, line 5 def list_organizations get('/organizations') end
list_tokens()
click to toggle source
# File lib/fog/scaleway/requests/account/list_tokens.rb, line 5 def list_tokens get('/tokens') end
request(params)
click to toggle source
# File lib/fog/scaleway/account.rb, line 55 def request(params) client.request(params) rescue Excon::Errors::HTTPStatusError => error decoded = Fog::Scaleway::Errors.decode_error(error) raise if decoded.nil? type = decoded[:type] message = decoded[:message] raise case type when 'invalid_request_error', 'invalid_auth', 'unknown_resource', 'authorization_required' Fog::Scaleway::Account.const_get(camelize(type)).slurp(error, message) when 'api_error' Fog::Scaleway::Account::APIError.slurp(error, message) else Fog::Scaleway::Account::Error.slurp(error, message) end end
update_token(token_id, options = {})
click to toggle source
# File lib/fog/scaleway/requests/account/update_token.rb, line 5 def update_token(token_id, options = {}) request(method: :patch, path: "/tokens/#{token_id}", body: options, expects: [200]) end
update_user(user_id, options = {})
click to toggle source
# File lib/fog/scaleway/requests/account/update_user.rb, line 5 def update_user(user_id, options = {}) request(method: :patch, path: "/users/#{user_id}", body: options, expects: [200]) end
Private Instance Methods
camelize(str)
click to toggle source
# File lib/fog/scaleway/account.rb, line 80 def camelize(str) str.split('_').collect(&:capitalize).join end
client()
click to toggle source
# File lib/fog/scaleway/account.rb, line 76 def client @client ||= Fog::Scaleway::Client.new('https://account.scaleway.com', @token, @connection_options) end