This library provides a simple and easy-to-use client for interacting with the Aliyun DNS API. With this library, you can manage your domain records programmatically, including adding, updating, deleting, and querying records.
To use the library, first create a new AliyunDns
instance, providing your access_key_id
and access_key_secret
:
use aliyun_dns::AliyunDns;
let access_key_id = "your_access_key_id";
let access_key_secret = "your_access_key_secret";
let aliyun_dns = AliyunDns::new(access_key_id.to_string(), access_key_secret.to_string());
To add a domain record, use the add_domain_record
method:
let domain_name = "example.com";
let sub_domain = "www";
let record_type = "A";
let record_value = "1.2.3.4";
let response = aliyun_dns.add_domain_record(domain_name, sub_domain, record_type, record_value).await?;
println!("Record ID: {}", response.record_id);
To update a domain record, use the update_domain_record
method:
let record_id = "your_record_id";
let sub_domain = "www";
let record_type = "A";
let new_value = "2.3.4.5";
let response = aliyun_dns.update_domain_record(record_id, sub_domain, record_type, new_value).await?;
println!("Updated Record ID: {}", response.record_id);
To delete a domain record, use the delete_domain_record
method:
let record_id = "your_record_id";
let response = aliyun_dns.delete_domain_record(record_id).await?;
println!("Deleted Record ID: {}", response.record_id);
To delete subdomain records, use the delete_subdomain_records
method:
let domain_name = "example.com";
let rr = "www";
let response = aliyun_dns.delete_subdomain_records(domain_name, rr).await?;
println!("Deleted RR: {}, Total Count: {}", response.rr, response.total_count);
To query domain records, use the query_domain_records
method:
let domain_name = "example.com";
let response = aliyun_dns.query_domain_records(domain_name).await?;
println!("Total Records: {}", response.total_count);
for record in response.domain_records.records {
println!(
"Record ID: {}, Type: {}, RR: {}, Value: {}",
record.record_id, record.record_type, record.rr, record.value
);
}
Here is an example program that demonstrates how to use the AliyunDns client:
use aliyun_dns::AliyunDns;
use anyhow::Result;
#[tokio::main]
async fn main() -> Result<()> {
let access_key_id = "your_access_key_id";
let access_key_secret = "your_access_key_secret";
let aliyun_dns = AliyunDns::new(access_key_id.to_string(), access_key_secret.to_string());
// Add a domain record
let domain_name = "example.com";
let sub_domain = "www";
let record_type = "A";
let record_value = "1.2.3.4";
let response = aliyun_dns.add_domain_record(domain_name, sub_domain, record_type, record_value).await?;
println!("Record ID: {}", response.record_id);
// Update a domain record
let record_id = &response.record_id;
let sub_domain = "www";
let record_type = "A";
let new_value = "2.3.4.5";
let update_response = aliyun_dns.update_domain_record(record_id, sub_domain, record_type, new_value).await?;
println!("Updated Record ID: {}", update_response.record_id);
// Query domain records
let query_response = aliyun_dns.query_domain_records(domain_name).await?;
println!("Total Records: {}", query_response.total_count);
for record in query_response.domain_records.records {
println!(
"Record ID: {}, Type: {}, RR: {}, Value: {}",
record.record_id, record.record_type, record.rr, record.value
);
}
// Delete a domain record
let delete_response = aliyun_dns.delete_domain_record(record_id).await?;
println!("Deleted Record ID: {}", delete_response.record_id);
// Delete subdomain records
let rr = "www";
let delete_subdomain_response = aliyun_dns.delete_subdomain_records(domain_name, rr).await?;
println!(
"Deleted RR: {}, Total Count: {}",
delete_subdomain_response.rr, delete_subdomain_response.total_count
);
Ok(())
}