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