/
regionOperations.clj
122 lines (105 loc) · 4.52 KB
/
regionOperations.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
119
120
121
122
(ns happygapi.compute.regionOperations
"Compute Engine API: regionOperations.
Creates and runs virtual machines on Google Cloud Platform.
See: https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/regionOperations"
(: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/regionOperations/delete
Required parameters: operation, project, region
Optional parameters: none
Deletes the specified region-specific Operations resource."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"
"https://www.googleapis.com/auth/compute"]}
[auth parameters]
{:pre [(util/has-keys? parameters #{:operation :region :project})]}
(util/get-response
(http/delete
(util/get-url
"https://compute.googleapis.com/compute/v1/projects/"
"{project}/regions/{region}/operations/{operation}"
#{:operation :region :project}
parameters)
(merge-with
merge
{:throw-exceptions false,
:query-params parameters,
:accept :json,
:as :json}
auth))))
(defn get$
"https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/regionOperations/get
Required parameters: operation, project, region
Optional parameters: none
Retrieves the specified region-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 parameters]
{:pre [(util/has-keys? parameters #{:operation :region :project})]}
(util/get-response
(http/get
(util/get-url
"https://compute.googleapis.com/compute/v1/projects/"
"{project}/regions/{region}/operations/{operation}"
#{:operation :region :project}
parameters)
(merge-with
merge
{:throw-exceptions false,
:query-params parameters,
:accept :json,
:as :json}
auth))))
(defn list$
"https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/regionOperations/list
Required parameters: project, region
Optional parameters: filter, maxResults, orderBy, pageToken
Retrieves a list of Operation resources contained within the specified region."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"
"https://www.googleapis.com/auth/compute"
"https://www.googleapis.com/auth/compute.readonly"]}
[auth parameters]
{:pre [(util/has-keys? parameters #{:region :project})]}
(util/get-response
(http/get
(util/get-url
"https://compute.googleapis.com/compute/v1/projects/"
"{project}/regions/{region}/operations"
#{:region :project}
parameters)
(merge-with
merge
{:throw-exceptions false,
:query-params parameters,
:accept :json,
:as :json}
auth))))
(defn wait$
"https://developers.google.com/compute/docs/reference/latest/api/reference/rest/v1/regionOperations/wait
Required parameters: operation, project, region
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 parameters]
{:pre [(util/has-keys? parameters #{:operation :region :project})]}
(util/get-response
(http/post
(util/get-url
"https://compute.googleapis.com/compute/v1/projects/"
"{project}/regions/{region}/operations/{operation}/wait"
#{:operation :region :project}
parameters)
(merge-with
merge
{:throw-exceptions false,
:query-params parameters,
:accept :json,
:as :json}
auth))))