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