Class: Mongo::Crypt::KMS::MasterKeyDocument Private
- Inherits:
-
Object
- Object
- Mongo::Crypt::KMS::MasterKeyDocument
- Defined in:
- lib/mongo/crypt/kms/master_key_document.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
KMS master key document object contains KMS master key parameters that are used for creation of data keys.
Constant Summary collapse
- KMS_PROVIDERS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Known KMS provider types.
%w[aws azure gcp kmip local].freeze
Instance Method Summary collapse
-
#initialize(kms_provider, options) ⇒ MasterKeyDocument
constructor
private
Creates a master key document object from a parameters hash.
-
#to_document ⇒ BSON::Document
private
Convert master key document object to a BSON document in libmongocrypt format.
Constructor Details
#initialize(kms_provider, options) ⇒ MasterKeyDocument
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Creates a master key document object from a parameters hash.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/mongo/crypt/kms/master_key_document.rb', line 39 def initialize(kms_provider, ) raise ArgumentError.new('Key document options must not be nil') if .nil? @provider = kms_provider.to_s provider_type = KMS.provider_base_type(@provider) master_key = .fetch(:master_key, {}) @key_document = case provider_type when 'aws' then KMS::AWS::MasterKeyDocument.new(master_key) when 'azure' then KMS::Azure::MasterKeyDocument.new(master_key) when 'gcp' then KMS::GCP::MasterKeyDocument.new(master_key) when 'kmip' then KMS::KMIP::MasterKeyDocument.new(master_key) when 'local' then KMS::Local::MasterKeyDocument.new(master_key) else raise ArgumentError.new("KMS provider must be one of #{KMS_PROVIDERS}") end end |
Instance Method Details
#to_document ⇒ BSON::Document
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Convert master key document object to a BSON document in libmongocrypt format.
60 61 62 |
# File 'lib/mongo/crypt/kms/master_key_document.rb', line 60 def to_document @key_document.to_document.merge(provider: @provider) end |