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 | ||
|  | 
 |