Class: Mongo::Crypt::KMS::MasterKeyDocument Private
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | lib/mongo/crypt/kms/master_key_document.rb |
Overview
::Mongo::Crypt::KMS master key document object contains ::Mongo::Crypt::KMS master key parameters
that are used for creation of data keys.
Constant Summary
-
KMS_PROVIDERS =
# File 'lib/mongo/crypt/kms/master_key_document.rb', line 26
Known KMS provider types.
%w[aws azure gcp kmip local].freeze
Class Method Summary
-
.new(kms_provider, options) ⇒ MasterKeyDocument
constructor
Internal use only
Creates a master key document object from a parameters hash.
Instance Method Summary
-
#to_document ⇒ BSON::Document
Internal use only
Convert master key document object to a BSON document in libmongocrypt format.
Constructor Details
.new(kms_provider, options) ⇒ MasterKeyDocument
Creates a master key document object from a parameters hash.
# 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
Convert master key document object to a BSON document in libmongocrypt format.
# File 'lib/mongo/crypt/kms/master_key_document.rb', line 60
def to_document @key_document.to_document.merge(provider: @provider) end