class AwsKmsKey

def created_days_ago

def created_days_ago
  ((Time.now - creation_date)/(24*60*60)).to_i unless creation_date.nil?
end

def fetch_from_api

def fetch_from_api
  backend = BackendFactory.create(inspec_runner)
  query = { key_id: @key_id }
  catch_aws_errors do
    begin
      resp = backend.describe_key(query)
      @exists = true
      @key = resp.key_metadata.to_h
      @key_id = @key[:key_id]
      @arn = @key[:arn]
      @creation_date = @key[:creation_date]
      @enabled = @key[:enabled]
      @description = @key[:description]
      @key_usage = @key[:key_usage]
      @key_state = @key[:key_state]
      @deletion_date = @key[:deletion_date]
      @valid_to = @key[:valid_to]
      @external = @key[:origin] == 'EXTERNAL'
      @has_key_expiration = @key[:expiration_model] == 'KEY_MATERIAL_EXPIRES'
      @managed_by_aws = @key[:key_manager] == 'AWS'
      resp = backend.get_key_rotation_status(query)
      @has_rotation_enabled = resp.key_rotation_enabled unless resp.empty?
    rescue Aws::KMS::Errors::NotFoundException
      @exists = false
      return
    end
  end
end

def to_s

def to_s
  "KMS Key #{@key_id}"
end

def validate_params(raw_params)

def validate_params(raw_params)
  validated_params = check_resource_param_names(
    raw_params: raw_params,
    allowed_params: [:key_id],
    allowed_scalar_name: :key_id,
    allowed_scalar_type: String,
  )
  if validated_params.empty?
    raise ArgumentError, "You must provide the parameter 'key_id' to aws_kms_key."
  end
  validated_params
end