1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
use crate::Client;
use crate::ClientResult;

pub struct IpWarmup {
    pub client: Client,
}

impl IpWarmup {
    #[doc(hidden)]
    pub fn new(client: Client) -> Self {
        IpWarmup { client }
    }

    /**
     * Retrieve all IPs currently in warmup.
     *
     * This function performs a `GET` to the `/ips/warmup` endpoint.
     *
     * **This endpoint allows you to retrieve all of your IP addresses that are currently warming up.**
     */
    pub async fn get_ips_warmup(
        &self,
    ) -> ClientResult<crate::Response<Vec<crate::types::IpWarmupResponse>>> {
        let url = self.client.url("/ips/warmup", None);
        self.client
            .get(
                &url,
                crate::Message {
                    body: None,
                    content_type: None,
                },
            )
            .await
    }
    /**
     * Retrieve all IPs currently in warmup.
     *
     * This function performs a `GET` to the `/ips/warmup` endpoint.
     *
     * As opposed to `get_ips_warmup`, this function returns all the pages of the request at once.
     *
     * **This endpoint allows you to retrieve all of your IP addresses that are currently warming up.**
     */
    pub async fn get_all_ips_warmup(
        &self,
    ) -> ClientResult<crate::Response<Vec<crate::types::IpWarmupResponse>>> {
        let url = self.client.url("/ips/warmup", None);
        self.client
            .get_all_pages(
                &url,
                crate::Message {
                    body: None,
                    content_type: None,
                },
            )
            .await
    }
    /**
     * Start warming up an IP address.
     *
     * This function performs a `POST` to the `/ips/warmup` endpoint.
     *
     * **This endpoint allows you to put an IP address into warmup mode.**
     */
    pub async fn post_ips_warmup(
        &self,
        body: &crate::types::PostIpsWarmupRequest,
    ) -> ClientResult<crate::Response<Vec<crate::types::IpWarmupResponse>>> {
        let url = self.client.url("/ips/warmup", None);
        self.client
            .post(
                &url,
                crate::Message {
                    body: Some(reqwest::Body::from(serde_json::to_vec(body)?)),
                    content_type: Some("application/json".to_string()),
                },
            )
            .await
    }
    /**
     * Retrieve the warmup status for a specific IP address.
     *
     * This function performs a `GET` to the `/ips/warmup/{ip_address}` endpoint.
     *
     * **This endpoint allows you to retrieve the warmup status for a specific IP address.**
     *
     * You can retrieve all of your warming IPs using the "Retrieve all IPs currently in warmup" endpoint.
     */
    pub async fn get_ips_warmup_ip_address(
        &self,
        ip_address: &str,
    ) -> ClientResult<crate::Response<Vec<crate::types::IpWarmupResponse>>> {
        let url = self.client.url(
            &format!(
                "/ips/warmup/{}",
                crate::progenitor_support::encode_path(ip_address),
            ),
            None,
        );
        self.client
            .get(
                &url,
                crate::Message {
                    body: None,
                    content_type: None,
                },
            )
            .await
    }
    /**
     * Retrieve the warmup status for a specific IP address.
     *
     * This function performs a `GET` to the `/ips/warmup/{ip_address}` endpoint.
     *
     * As opposed to `get_ips_warmup_ip_address`, this function returns all the pages of the request at once.
     *
     * **This endpoint allows you to retrieve the warmup status for a specific IP address.**
     *
     * You can retrieve all of your warming IPs using the "Retrieve all IPs currently in warmup" endpoint.
     */
    pub async fn get_all_ips_warmup_ip_address(
        &self,
        ip_address: &str,
    ) -> ClientResult<crate::Response<Vec<crate::types::IpWarmupResponse>>> {
        let url = self.client.url(
            &format!(
                "/ips/warmup/{}",
                crate::progenitor_support::encode_path(ip_address),
            ),
            None,
        );
        self.client
            .get_all_pages(
                &url,
                crate::Message {
                    body: None,
                    content_type: None,
                },
            )
            .await
    }
    /**
     * Stop warming up an IP address.
     *
     * This function performs a `DELETE` to the `/ips/warmup/{ip_address}` endpoint.
     *
     * **This endpoint allows you to remove an IP address from warmup mode.**
     *
     * Your request will return a 204 status code if the specified IP was successfully removed from warmup mode. To retrieve details of the IP’s warmup status *before* removing it from warmup mode, call the  "Retrieve the warmpup status for a specific IP address" endpoint.
     */
    pub async fn delete_ips_warmup_ip_address(
        &self,
        ip_address: &str,
    ) -> ClientResult<crate::Response<crate::types::Help>> {
        let url = self.client.url(
            &format!(
                "/ips/warmup/{}",
                crate::progenitor_support::encode_path(ip_address),
            ),
            None,
        );
        self.client
            .delete(
                &url,
                crate::Message {
                    body: None,
                    content_type: None,
                },
            )
            .await
    }
}