class Fog::KeyVault::AzureRM::Vault

Vault model for KeyVault Service

Public Class Methods

parse(vault) click to toggle source
# File lib/fog/azurerm/models/key_vault/vault.rb, line 20
def self.parse(vault)
  vault_hash = get_hash_from_object(vault)
  vault_properties = vault.properties

  unless vault_properties.nil?
    vault_hash['vault_uri'] = vault_properties.vault_uri
    vault_hash['tenant_id'] = vault_properties.tenant_id

    unless vault_properties.sku.nil?
      vault_hash['sku_family'] = vault_properties.sku.family
      vault_hash['sku_name'] = vault_properties.sku.name
    end

    vault_hash['access_policies'] = []
    unless vault_properties.access_policies.nil?
      vault_properties.access_policies.each do |access_policy|
        access_policy_entry = Fog::KeyVault::AzureRM::AccessPolicyEntry.new
        vault_hash['access_policies'] << access_policy_entry.merge_attributes(Fog::KeyVault::AzureRM::AccessPolicyEntry.parse(access_policy))
      end
    end

    vault_hash['enabled_for_deployment'] = vault_properties.enabled_for_deployment
    vault_hash['enabled_for_disk_encryption'] = vault_properties.enabled_for_disk_encryption
    vault_hash['enabled_for_template_deployment'] = vault_properties.enabled_for_template_deployment

    vault_hash['resource_group'] = get_resource_group_from_id(vault.id)
  end

  vault_hash
end

Public Instance Methods

destroy() click to toggle source
# File lib/fog/azurerm/models/key_vault/vault.rb, line 57
def destroy
  service.delete_vault(resource_group, name)
end
save() click to toggle source
# File lib/fog/azurerm/models/key_vault/vault.rb, line 51
def save
  requires :name, :resource_group, :location, :tenant_id, :sku_family, :sku_name, :access_policies
  vault = service.create_or_update_vault(vault_hash)
  merge_attributes(Fog::KeyVault::AzureRM::Vault.parse(vault))
end

Private Instance Methods

vault_hash() click to toggle source
# File lib/fog/azurerm/models/key_vault/vault.rb, line 63
def vault_hash
  {
    resource_group: resource_group,
    name: name,
    location: location,
    tenant_id: tenant_id,
    sku_family: sku_family,
    sku_name: sku_name,
    access_policies: access_policies,
    tags: tags
  }
end