Class: Mongo::Crypt::KMS::GCP::MasterKeyDocument Private
- Inherits:
-
Object
- Object
- Mongo::Crypt::KMS::GCP::MasterKeyDocument
- Includes:
- Validations
- Defined in:
- lib/mongo/crypt/kms/gcp.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.
GCP KMS master key document object contains KMS master key parameters.
Constant Summary collapse
- FORMAT_HINT =
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.
"GCP key document must be in the format: " + "{ project_id: 'PROJECT_ID', location: 'LOCATION', " + "key_ring: 'KEY-RING', key_name: 'KEY-NAME' }"
Instance Attribute Summary collapse
-
#endpoint ⇒ String | nil
readonly
private
GCP KMS endpoint.
-
#key_name ⇒ String
readonly
private
GCP KMS key name.
-
#key_ring ⇒ String
readonly
private
GCP KMS key ring.
-
#key_version ⇒ String | nil
readonly
private
GCP KMS key version.
-
#location ⇒ String
readonly
private
GCP location.
-
#project_id ⇒ String
readonly
private
GCP project id.
Instance Method Summary collapse
-
#initialize(opts) ⇒ MasterKeyDocument
constructor
private
Creates a master key document object form a parameters hash.
-
#to_document ⇒ BSON::Document
private
Convert master key document object to a BSON document in libmongocrypt format.
Methods included from Validations
#validate_param, validate_tls_options
Constructor Details
#initialize(opts) ⇒ 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 form a parameters hash.
152 153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/mongo/crypt/kms/gcp.rb', line 152 def initialize(opts) if opts.empty? @empty = true return end @project_id = validate_param(:project_id, opts, FORMAT_HINT) @location = validate_param(:location, opts, FORMAT_HINT) @key_ring = validate_param(:key_ring, opts, FORMAT_HINT) @key_name = validate_param(:key_name, opts, FORMAT_HINT) @key_version = validate_param(:key_version, opts, FORMAT_HINT, required: false) @endpoint = validate_param(:endpoint, opts, FORMAT_HINT, required: false) end |
Instance Attribute Details
#endpoint ⇒ String | nil (readonly)
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.
Returns GCP KMS endpoint.
134 135 136 |
# File 'lib/mongo/crypt/kms/gcp.rb', line 134 def endpoint @endpoint end |
#key_name ⇒ String (readonly)
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.
Returns GCP KMS key name.
128 129 130 |
# File 'lib/mongo/crypt/kms/gcp.rb', line 128 def key_name @key_name end |
#key_ring ⇒ String (readonly)
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.
Returns GCP KMS key ring.
125 126 127 |
# File 'lib/mongo/crypt/kms/gcp.rb', line 125 def key_ring @key_ring end |
#key_version ⇒ String | nil (readonly)
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.
Returns GCP KMS key version.
131 132 133 |
# File 'lib/mongo/crypt/kms/gcp.rb', line 131 def key_version @key_version end |
#location ⇒ String (readonly)
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.
Returns GCP location.
122 123 124 |
# File 'lib/mongo/crypt/kms/gcp.rb', line 122 def location @location end |
#project_id ⇒ String (readonly)
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.
Returns GCP project id.
119 120 121 |
# File 'lib/mongo/crypt/kms/gcp.rb', line 119 def project_id @project_id 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.
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
# File 'lib/mongo/crypt/kms/gcp.rb', line 168 def to_document return BSON::Document.new({}) if @empty BSON::Document.new({ provider: 'gcp', projectId: project_id, location: location, keyRing: key_ring, keyName: key_name }).tap do |bson| unless key_version.nil? bson.update({ keyVersion: key_version }) end unless endpoint.nil? bson.update({ endpoint: endpoint }) end end end |