cloud_dns/api/
projects.rs1use serde::{Deserialize, Serialize};
2
3use crate::{DnsClient, Result};
4
5#[derive(Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct Project {
8 pub kind: String, pub number: u64,
10 pub id: String,
11 pub quota: Quota,
12}
13
14#[derive(Serialize, Deserialize)]
15#[serde(rename_all = "camelCase")]
16pub struct Quota {
17 pub kind: String, pub managed_zones: i64,
19 pub rrsets_per_managed_zone: i64,
20 pub rrset_additions_per_change: i64,
21 pub rrset_deletions_per_change: i64,
22 pub total_rrdata_size_per_change: i64,
23 pub resource_records_per_rrset: i64,
24 pub dns_keys_per_managed_zone: i64,
25 pub whitelisted_key_specs: Vec<WhitelistedKeySpec>,
26 pub networks_per_managed_zone: i64,
27 pub managed_zones_per_network: i64,
28 pub policies: i64,
29 pub networks_per_policy: i64,
30 pub target_name_servers_per_policy: i64,
31 pub target_name_servers_per_managed_zone: i64,
32}
33
34#[derive(Serialize, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct WhitelistedKeySpec {
37 pub kind: String, pub key_type: String,
39 pub algorithm: String,
40 pub key_length: u64,
41}
42
43pub struct ProjectsHandler<'client> {
44 client: &'client DnsClient,
45}
46
47impl<'client> ProjectsHandler<'client> {
48 pub(crate) fn new(client: &'client DnsClient) -> Self {
49 Self { client }
50 }
51
52 pub async fn get(&self) -> Result<Project> {
53 self.client.get("/").await
54 }
55}