class AwsPricing::DatabaseType

Constants

AURORA_MYSQL
AURORA_POSTGRESQL
MARIADB_MULTIAZ
MARIADB_STANDARD
MYSQL_MULTIAZ
MYSQL_STANDARD

Display Name, as seen in DBR/CUR

NEPTUNE_MULTIAZ
NEPTUNE_STANDARD
ORACLE_EE_BYOL_MULTIAZ
ORACLE_EE_BYOL_STANDARD
ORACLE_SE1_BYOL_MULTIAZ
ORACLE_SE1_BYOL_STANDARD
ORACLE_SE1_MULTIAZ
ORACLE_SE1_STANDARD
ORACLE_SE2_BYOL_MULTIAZ
ORACLE_SE2_BYOL_STANDARD
ORACLE_SE2_MULTIAZ
ORACLE_SE2_STANDARD
ORACLE_SE_BYOL_MULTIAZ
ORACLE_SE_BYOL_STANDARD
POSTGRESQL_MULTIAZ
POSTGRESQL_STANDARD
SQLSERVER_EE_BYOL_MULTIAZ
SQLSERVER_EE_BYOL_STANDARD
SQLSERVER_EE_MULTIAZ
SQLSERVER_EE_STANDARD
SQLSERVER_EX
SQLSERVER_SE_BYOL_MULTIAZ
SQLSERVER_SE_BYOL_STANDARD
SQLSERVER_SE_MULTIAZ
SQLSERVER_SE_STANDARD
SQLSERVER_WEB

Public Class Methods

database_multiaz?(display_name) click to toggle source

example: database_multiaz?('MySQL Community Edition (Multi-AZ)') returns true Returns BOOL if database string is RDS SF params:

    # File lib/amazon-pricing/definitions/database-type.rb
303 def self.database_multiaz?(display_name)
304   db = @@DB_ENGINE_MAP[display_name]
305   return false unless db            # unknown db is presumed non sf
306   db[:multiaz]
307 end
database_nf(display_name) click to toggle source

example: database_nf('MySQL Community Edition (Multi-AZ)') returns 2 Returns INT (nf factor) for given database string params:

    # File lib/amazon-pricing/definitions/database-type.rb
314 def self.database_nf(display_name)
315   db = @@DB_ENGINE_MAP[display_name]
316   return 1 unless db                # unknown db is presumed non sf
317   return 2 if db[:sizeflex] && db[:multiaz]
318 
319   1
320 end
database_sf?(display_name) click to toggle source

example: database_sf?('MySQL Community Edition (Multi-AZ)') returns true Returns BOOL if database string is RDS SF params:

    # File lib/amazon-pricing/definitions/database-type.rb
273 def self.database_sf?(display_name)
274   db = @@DB_ENGINE_MAP[display_name]
275   return false unless db            # unknown db is presumed non sf
276   db[:sizeflex]
277 end
database_sf_from_engine_name_and_license_type?(engine_name, is_byol) click to toggle source

example: database_sf_from_engine_name_and_license_type?('mysql', false) returns true Returns BOOL if database is RDS SF params:

  • engine_name: product description database name string

  • is_byol: true if the database is using a BYOL license

    # File lib/amazon-pricing/definitions/database-type.rb
252 def self.database_sf_from_engine_name_and_license_type?(engine_name, is_byol)
253   engine_name_sym = engine_name.gsub('-', '_').to_sym
254   if @@DB_Deploy_Types[engine_name_sym] && @@DB_Deploy_Types[engine_name_sym].include?(:byol)
255     product_name = is_byol ? "#{engine_name}(byol)" : "#{engine_name}(li)"
256   else
257     product_name = engine_name
258   end
259   database_sf_from_product_name?(product_name)
260 end
database_sf_from_product_name?(product_name) click to toggle source

example: database_sf_from_product_name?('oracle-ee(byol)') returns true Returns BOOL if database is RDS SF params:

  • product_name: product description database name string including license type

    # File lib/amazon-pricing/definitions/database-type.rb
265 def self.database_sf_from_product_name?(product_name)
266   # Just look up by single-az because deployment type doesn't affect size-flex eligibility
267   database_sf?(db_mapping(product_name, false))
268 end
databases_sf() click to toggle source

example: databases_sf() returns [MYSQL_STANDARD, … ] Returns BOOL if operation string is RDS SF params: none

    # File lib/amazon-pricing/definitions/database-type.rb
291 def self.databases_sf
292   dbs = []
293   @@DB_ENGINE_MAP.each do |key,value|
294     dbs << key if value[:sizeflex]
295   end
296   dbs
297 end
db_mapping(product, is_multi_az) click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
215     def self.db_mapping(product, is_multi_az)
216   product = product.gsub(/\s+/,"")  # remove extraneous spaces, e.g. sometimes AWS adds a SP before '(byol)'
217   if is_multi_az
218     display_name(@@ProductDescription["#{product}_multiaz"])
219   else
220     display_name(@@ProductDescription["#{product}"])
221         end
222 end
display_name(name) click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
200 def self.display_name(name)
201     @@Database_Name_Lookup[name]
202 end
display_name_is_byol?(display_name) click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
242 def self.display_name_is_byol?(display_name)
243   database_name = self.display_name_to_qualified_database_name(display_name)
244   database_name.include? 'byol'
245 end
display_name_is_multi_az?(display_name) click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
237 def self.display_name_is_multi_az?(display_name)
238   database_name = self.display_name_to_qualified_database_name(display_name)
239   database_name.include? 'multiaz'
240 end
display_name_to_database_name(display_name) click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
232 def self.display_name_to_database_name(display_name)
233   database_name = self.display_name_to_qualified_database_name(display_name)
234   database_name.gsub('_standard', '').gsub('_multiaz', '').gsub('_byol', '')
235 end
display_name_to_qualified_database_name(display_name) click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
224 def self.display_name_to_qualified_database_name(display_name)
225   database_name = @@Display_Name_To_Qualified_Database_Name[display_name]
226   if database_name.nil?
227     raise "Unknown display_name '#{display_name}'.  Valid names are #{@@Display_Name_To_Qualified_Database_Name.keys.join(', ')}"
228   end
229   database_name
230 end
get_available_types(db) click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
211 def self.get_available_types(db)
212   @@DB_Deploy_Types[db]
213 end
get_database_name() click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
204   def self.get_database_name
205 [:mysql, :postgresql, :oracle_se1, :oracle_se, :oracle_ee, :sqlserver_ex, :sqlserver_web,
206   :sqlserver_se, :sqlserver_ee, :aurora, :aurora_postgresql, :mariadb, :neptune,
207   :oracle_se2 # oracle_se2 license included prices are collected, and BYOL prices are copied from oracle_se
208 ]
209   end
operation_nf(operation_name, multiaz) click to toggle source

example: database_nf('MySQL Community Edition (Multi-AZ)',true) returns 2 i.e. inst_nf = RDS_NF * operation_nf(operation_name,multiaz) Returns INT (nf factor) for given operation string and multiaz params:

    # File lib/amazon-pricing/definitions/database-type.rb
327 def self.operation_nf(operation_name, multiaz)
328   display_name = @@DB_OPERATION_TO_DESCRIPTION[operation_name]
329   return 1 unless display_name  # unknown operation is presumed non sf
330   return 2 if self.operation_sf?(operation_name,multiaz) && multiaz
331 
332   1
333 end
operation_sf?(operation_name,multiaz=false) click to toggle source

example: operation_sf?('CreateDBInstance:0016',true) returns true Returns BOOL if operation string is RDS SF params:

  • operation_name: fully qualified operation string

  • multiaz: if operation is multi-az (api for consistency purposes)

    # File lib/amazon-pricing/definitions/database-type.rb
283 def self.operation_sf?(operation_name,multiaz=false)
284   display_name = @@DB_OPERATION_TO_DESCRIPTION[operation_name]
285   return false unless display_name  # unknown operation is presumed non sf
286   self.database_sf?(display_name)
287 end

Public Instance Methods

display_name() click to toggle source
    # File lib/amazon-pricing/definitions/database-type.rb
335 def display_name
336         self.class.display_name(name)
337       end