123456789_123456789_123456789_123456789_123456789_

Class: Mongo::Crypt::KMS::GCP::Credentials Private

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

Overview

::Mongo::Crypt::KMS::GCP Cloud Key Management Credentials object contains credentials for using ::Mongo::Crypt::KMS::GCP KMS provider.

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

#access_tokenString | nil (readonly)

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/gcp/credentials.rb', line 40

attr_reader :access_token

#emailString (readonly)

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/gcp/credentials.rb', line 31

attr_reader :email

#endpointString | nil (readonly)

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/gcp/credentials.rb', line 37

attr_reader :endpoint

#private_keyString (readonly)

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/gcp/credentials.rb', line 34

attr_reader :private_key

Instance Method Details

#to_documentBSON::Document

Convert credentials object to a BSON document in libmongocrypt format.

Returns:

[ GitHub ]

  
# File 'lib/mongo/crypt/kms/gcp/credentials.rb', line 108

def to_document
  return BSON::Document.new if empty?
  if access_token
    BSON::Document.new({ accessToken: access_token })
  else
    BSON::Document.new({
      email: email,
      privateKey: BSON::Binary.new(private_key, :generic),
    }).tap do |bson|
      unless endpoint.nil?
        bson.update({ endpoint: endpoint })
      end
    end
  end
end