#DNS This document explains how to get started using Azure DNS Service with Fog. ## Usage First of all, you need to require the Fog library by executing: ```ruby require 'fog/azurerm' ``` ## Create Connection Next, create a connection to the DNS Service: ```ruby azure_dns_service = Fog::DNS::AzureRM.new( tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application client_id: '<Clientid>', # Client id of Azure Active Directory Application client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application subscription_id: '<Subscriptionid>', # Subscription id of an Azure Account :environment => '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud. ) ``` ## Check Zone Existence ```ruby azure_dns_service.zones.check_zone_exists(<Resource Group name>, <Zone name>) ``` ## Create Zone Create a new Zone ```ruby azure_dns_service.zones.create( name: '<Zone name>', resource_group: '<Resource Group name>', tags: { key: 'value' } 'Optional' ) ``` ## List Zones ```ruby azure_dns_service.zones.each do |zone| puts "#{zone.name}" puts "#{zone.resource_group}" end ``` ## Retrieve a single Zone Get a single record of Zone ```ruby zone = azure_dns_service .zones .get('<Resource Group name>', '<Zone name>') puts "#{zone.name}" ``` ## Destroy a single Zone Get Zone object from the get method(described above) and then destroy that Zone. ```ruby zone.destroy ``` ## Check Record Set Existence ```ruby azure_dns_service.record_sets.check_record_set_exists(<Resource Group name>, <Record Set name>, <Zone name>, <Record Type(A/CNAME)>) ``` ## Create Record Set Create a new Record Set ```ruby azure_dns_service.record_sets.create( name: '<Record Set name>', resource_group: '<Resource Group name>', zone_name: '<Zone Name>', records: <String array of Records>, type: '<Record Type(A/CNAME)>', ttl: <Time to live(Integer)> ) ``` ## List Record Sets ```ruby azure_dns_service.record_sets( resource_group: '<Resource Group Name>', zone_name: '<Zone Name>' ).each do |record_set| puts "#{record_set.name}" puts "#{record_set.resource_group}" end ``` ## Retrieve a single Record Set Get a single record of Record Set ```ruby record_set = azure_dns_service .record_sets .get('<Resource Group Name>', '<Record Set name>', '<Zone Name>', '<Record Type>') puts "#{record_set.name}" ``` ## Update TTL Get an object of record set and then update TTL ```ruby record_set.update_ttl( ttl: '<Time to live(Integer)>, ) ``` ## Add/Remove Record set in Existing Record sets Add a record by giving the value of record set in the form of string. ```ruby record_set.add_a_type_record('<Record>') ``` Remove record from existing records by giving its value in the form of string. ```ruby record_set.remove_a_type_record('<Record>') ``` ## Destroy a single Record Set Get Record Set object from the get method(described above) and then destroy that Record Set. ```ruby record_set.destroy ``` ## Support and Feedback Your feedback is appreciated! If you have specific issues with the fog ARM, you should file an issue via Github.