1# frozen_string_literal: true 2 3module Aws 4 class Role < ApplicationRecord 5 self.table_name = 'aws_roles' 6 7 belongs_to :user, inverse_of: :aws_role 8 9 validates :role_external_id, uniqueness: true, length: { in: 1..64 } 10 validates :role_arn, 11 length: 1..2048, 12 allow_nil: true, 13 format: { 14 with: Gitlab::Regex.aws_arn_regex, 15 message: Gitlab::Regex.aws_arn_regex_message 16 } 17 18 before_validation :ensure_role_external_id!, on: :create 19 20 def ensure_role_external_id! 21 self.role_external_id ||= SecureRandom.hex(20) 22 end 23 end 24end 25