Aliyun DNS API Client

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.

Usage

To use the library, first create a new AliyunDns instance, providing your access_key_id and access_key_secret:

```rust use aliyun_dns::AliyunDns;

let accesskeyid = "youraccesskeyid"; let accesskeysecret = "youraccesskeysecret"; let aliyundns = AliyunDns::new(accesskeyid.tostring(), accesskeysecret.to_string()); ```

Add a Domain Record

To add a domain record, use the add_domain_record method:

rust 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

To update a domain record, use the update_domain_record method:

rust 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);

Delete a Domain Record

To delete a domain record, use the delete_domain_record method:

rust let record_id = "your_record_id"; let response = aliyun_dns.delete_domain_record(record_id).await?; println!("Deleted Record ID: {}", response.record_id);

Delete Subdomain Records

To delete subdomain records, use the delete_subdomain_records method:

rust 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);

Query Domain Records

To query domain records, use the query_domain_records method:

```rust let domainname = "example.com"; let response = aliyundns.querydomainrecords(domainname).await?; println!("Total Records: {}", response.totalcount);

for record in response.domainrecords.records { println!( "Record ID: {}, Type: {}, RR: {}, Value: {}", record.recordid, record.record_type, record.rr, record.value ); } ```

Example Program

Here is an example program that demonstrates how to use the AliyunDns client:

```rust use aliyun_dns::AliyunDns; use anyhow::Result;

[tokio::main]

async fn main() -> Result<()> { let accesskeyid = "youraccesskeyid"; let accesskeysecret = "youraccesskeysecret"; let aliyundns = AliyunDns::new(accesskeyid.tostring(), accesskeysecret.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(())

} ```