def delete_async(resource_group_name, zone_name, if_match:nil, custom_headers:nil)
      # Send request
      promise = begin_delete_async(resource_group_name, zone_name, if_match:if_match, custom_headers:custom_headers)

      promise = promise.then do |response|
        # Defining deserialization method.
        deserialize_method = lambda do |parsed_response|
          result_mapper = Azure::Dns::Mgmt::V2016_04_01::Models::ZoneDeleteResult.mapper()
          parsed_response = @client.deserialize(result_mapper, parsed_response)
        end

        # Waiting for response.
        @client.get_long_running_operation_result(response, deserialize_method)
      end

      promise
    end
def delete_async(resource_group_name, zone_name, if_match:nil, custom_headers:nil)
      # Send request
      promise = begin_delete_async(resource_group_name, zone_name, if_match:if_match, custom_headers:custom_headers)

      promise = promise.then do |response|
        # Defining deserialization method.
        deserialize_method = lambda do |parsed_response|
          result_mapper = Azure::Dns::Mgmt::V2016_04_01::Models::ZoneDeleteResult.mapper()
          parsed_response = @client.deserialize(result_mapper, parsed_response)
        end

        # Waiting for response.
        @client.get_long_running_operation_result(response, deserialize_method)
      end

      promise
    end
@param resource_group_name [String] The name of the resource group. The name
 is case insensitive.
 @param zone_name [String] The name of the DNS zone (without a terminating
 dot).
 @param if_match [String] The etag of the DNS zone. Omit this value to always
 delete the current zone. Specify the last-seen etag value to prevent
 accidentally deleting any concurrent changes.
 @param custom_headers [Hash{String => String}] A hash of custom headers that
 will be added to the HTTP request.

 @return [Concurrent::Promise] promise which provides async access to http
 response.