41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
|
|
require "providers/provider_account"
|
||
|
|
|
||
|
|
module Devops
|
||
|
|
module Model
|
||
|
|
class AwsProviderAccount < ProviderAccount
|
||
|
|
|
||
|
|
field :access_key_id, type: String
|
||
|
|
field :secret_access_key, type: String
|
||
|
|
field :use_iam_profile, type: Boolean
|
||
|
|
field :storage_bucket_name, type: String
|
||
|
|
|
||
|
|
|
||
|
|
default_scope ->{ where(provider: ::Provider::AwsConnector::PROVIDER) }
|
||
|
|
|
||
|
|
validates_presence_of :access_key_id, message: "'access_key_id' is undefined"
|
||
|
|
validates_length_of :access_key_id, minimum: 16, maximum: 32
|
||
|
|
validates_format_of :access_key_id, with: /\A[\w]+\z/, message: "invalid access_key_id"
|
||
|
|
|
||
|
|
validates_presence_of :secret_access_key, message: "'secret_access_key' is undefined"
|
||
|
|
validates_length_of :secret_access_key, maximum: 100
|
||
|
|
|
||
|
|
validates_presence_of :use_iam_profile, message: "'use_iam_profile' is undefined"
|
||
|
|
|
||
|
|
validates_presence_of :storage_bucket_name
|
||
|
|
|
||
|
|
attr_accessor :availability_zone
|
||
|
|
|
||
|
|
def to_hash
|
||
|
|
hash = super.to_hash
|
||
|
|
unless self.use_iam_profile
|
||
|
|
hash["access_key_id"] = "***"
|
||
|
|
hash["secret_access_key"] = "***"
|
||
|
|
end
|
||
|
|
hash
|
||
|
|
end
|
||
|
|
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|