-
Notifications
You must be signed in to change notification settings - Fork 4
/
zoneOperations.clj
118 lines (105 loc) · 4.36 KB
/
zoneOperations.clj
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
(ns happygapi.compute.zoneOperations
"Compute Engine API: zoneOperations.
Creates and runs virtual machines on Google Cloud Platform.
See: https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/zoneOperations"
(:require [cheshire.core :as json]
[clj-http.client :as http]
[happy.util :as util]))
(defn delete$
"https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/zoneOperations/delete
Required parameters: operation, project, zone
Optional parameters: none
Deletes the specified zone-specific Operations resource."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"
"https://www.googleapis.com/auth/compute"]}
[auth args]
{:pre [(util/has-keys? args #{:zone :operation :project})]}
(util/get-response
(http/delete
(util/get-url
"https://compute.googleapis.com/compute/v1/projects/"
"{project}/zones/{zone}/operations/{operation}"
#{:zone :operation :project}
args)
(merge-with
merge
{:throw-exceptions false,
:query-params args,
:accept :json,
:as :json}
auth))))
(defn get$
"https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/zoneOperations/get
Required parameters: operation, project, zone
Optional parameters: none
Retrieves the specified zone-specific Operations resource."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"
"https://www.googleapis.com/auth/compute"
"https://www.googleapis.com/auth/compute.readonly"]}
[auth args]
{:pre [(util/has-keys? args #{:zone :operation :project})]}
(util/get-response
(http/get
(util/get-url
"https://compute.googleapis.com/compute/v1/projects/"
"{project}/zones/{zone}/operations/{operation}"
#{:zone :operation :project}
args)
(merge-with
merge
{:throw-exceptions false,
:query-params args,
:accept :json,
:as :json}
auth))))
(defn list$
"https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/zoneOperations/list
Required parameters: project, zone
Optional parameters: filter, maxResults, orderBy, pageToken
Retrieves a list of Operation resources contained within the specified zone."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"
"https://www.googleapis.com/auth/compute"
"https://www.googleapis.com/auth/compute.readonly"]}
[auth args]
{:pre [(util/has-keys? args #{:zone :project})]}
(util/get-response
(http/get
(util/get-url
"https://compute.googleapis.com/compute/v1/projects/"
"{project}/zones/{zone}/operations"
#{:zone :project}
args)
(merge-with
merge
{:throw-exceptions false,
:query-params args,
:accept :json,
:as :json}
auth))))
(defn wait$
"https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/zoneOperations/wait
Required parameters: operation, project, zone
Optional parameters: none
Waits for the specified Operation resource to return as DONE or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the GET method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be DONE or still in progress.
This method is called on a best-effort basis. Specifically:
- In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds.
- If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not DONE."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"
"https://www.googleapis.com/auth/compute"
"https://www.googleapis.com/auth/compute.readonly"]}
[auth args]
{:pre [(util/has-keys? args #{:zone :operation :project})]}
(util/get-response
(http/post
(util/get-url
"https://compute.googleapis.com/compute/v1/projects/"
"{project}/zones/{zone}/operations/{operation}/wait"
#{:zone :operation :project}
args)
(merge-with
merge
{:throw-exceptions false,
:query-params args,
:accept :json,
:as :json}
auth))))