diff --git a/lib/aptible/api/account.rb b/lib/aptible/api/account.rb index f1b5477..0cfa641 100644 --- a/lib/aptible/api/account.rb +++ b/lib/aptible/api/account.rb @@ -5,6 +5,7 @@ module Api class Account < Resource belongs_to :stack + has_many :ai_tokens has_many :apps has_many :backups has_many :certificates diff --git a/lib/aptible/api/ai_token.rb b/lib/aptible/api/ai_token.rb new file mode 100644 index 0000000..b9bc564 --- /dev/null +++ b/lib/aptible/api/ai_token.rb @@ -0,0 +1,39 @@ +module Aptible + module Api + class AiToken < Resource + belongs_to :account + + field :id + field :name + field :created_at + field :updated_at + field :expires_at + field :last_used_at + field :revoked_at + field :gateway_url + # User (on whose behalf) details + field :created_by_user_id + field :created_by_user_name + field :created_by_user_email + # Actor (who performed) details + field :created_by_actor_id + field :created_by_actor_name + field :created_by_actor_email + # Revoked by user details + field :revoked_by_user_id + field :revoked_by_user_name + field :revoked_by_user_email + # Revoked by actor details + field :revoked_by_actor_id + field :revoked_by_actor_name + field :revoked_by_actor_email + + # Note: The 'token' field from API response is accessible via + # attributes['token'] to avoid conflict with aptible-resource's + # internal token handling (used for auth bearer token) + def api_key + attributes['token'] + end + end + end +end diff --git a/lib/aptible/api/resource.rb b/lib/aptible/api/resource.rb index f4add09..54cd30c 100644 --- a/lib/aptible/api/resource.rb +++ b/lib/aptible/api/resource.rb @@ -15,6 +15,7 @@ def root_url end require 'aptible/api/account' +require 'aptible/api/ai_token' require 'aptible/api/ami' require 'aptible/api/ami_release' require 'aptible/api/app'