123456789_123456789_123456789_123456789_123456789_

Class: Mongo::Crypt::KMS::KMIP::MasterKeyDocument Private

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
Inherits: Object
Defined in: lib/mongo/crypt/kms/kmip/master_document.rb

Overview

::Mongo::Crypt::KMS::KMIP KMS master key document object contains ::Mongo::Crypt::KMS master key parameters.

Constant Summary

Class Method Summary

Instance Attribute Summary

Instance Method Summary

::Mongo::Crypt::KMS::Validations - Included

#validate_param

Validate if a ::Mongo::Crypt::KMS parameter is valid.

#validate_tls_options

Validate KMS TLS options.

Instance Attribute Details

#delegatedtrue | false | nil (readonly)

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/kmip/master_document.rb', line 36

attr_reader :delegated

#endpointString | nil (readonly)

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/kmip/master_document.rb', line 32

attr_reader :endpoint

#key_idString | nil (readonly)

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/kmip/master_document.rb', line 29

attr_reader :key_id

Instance Method Details

#to_documentBSON::Document

Convert master key document object to a BSON document in libmongocrypt format.

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/kmip/master_document.rb', line 68

def to_document
  BSON::Document.new({
                       provider: 'kmip',
                     }).tap do |bson|
    bson.update({ endpoint: endpoint }) unless endpoint.nil?
    bson.update({ keyId: key_id }) unless key_id.nil?
    bson.update({ delegated: delegated }) unless delegated.nil?
  end
end

#validate_delegated(opts) ⇒ true | false | nil (private)

Validate the optional :delegated ::Mongo::Crypt::KMS::KMIP master key option.

Parameters:

  • opts (Hash)

    Master key options.

Returns:

  • (true | false | nil)

    The delegated value, or nil if absent.

Raises:

  • (ArgumentError)

    If delegated is present but not a boolean.

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/kmip/master_document.rb', line 87

def validate_delegated(opts)
  return nil unless opts.key?(:delegated)

  value = opts[:delegated]
  return value if value == true || value == false || value.nil?

  raise ArgumentError.new(
    "The delegated option must be a boolean; currently have #{value}"
  )
end