-
Notifications
You must be signed in to change notification settings - Fork 4
/
transferJobs.clj
154 lines (135 loc) · 4.16 KB
/
transferJobs.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
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
(ns happygapi.storagetransfer.transferJobs
"Storage Transfer API: transferJobs.
Transfers data from external data sources to a Google Cloud Storage bucket or between Google Cloud Storage buckets.
See: https://cloud.google.com/storage-transfer/docsapi/reference/rest/v1/transferJobs"
(:require [cheshire.core :as json]
[clj-http.client :as http]
[happy.util :as util]))
(defn create$
"https://cloud.google.com/storage-transfer/docsapi/reference/rest/v1/transferJobs/create
Required parameters: none
Optional parameters: none
Body:
{:creationTime string,
:description string,
:schedule {:scheduleEndDate Date,
:startTimeOfDay TimeOfDay,
:scheduleStartDate Date},
:name string,
:lastModificationTime string,
:deletionTime string,
:status string,
:projectId string,
:transferSpec {:awsS3DataSource AwsS3Data,
:httpDataSource HttpData,
:objectConditions ObjectConditions,
:gcsDataSink GcsData,
:gcsDataSource GcsData,
:transferOptions TransferOptions}}
Creates a transfer job that runs periodically."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"]}
[auth args body]
{:pre [(util/has-keys? args #{})]}
(util/get-response
(http/post
(util/get-url
"https://storagetransfer.googleapis.com/"
"v1/transferJobs"
#{}
args)
(merge-with
merge
{:content-type :json,
:body (json/generate-string body),
:throw-exceptions false,
:query-params args,
:accept :json,
:as :json}
auth))))
(defn patch$
"https://cloud.google.com/storage-transfer/docsapi/reference/rest/v1/transferJobs/patch
Required parameters: jobName
Optional parameters: none
Body:
{:transferJob {:creationTime string,
:description string,
:schedule Schedule,
:name string,
:lastModificationTime string,
:deletionTime string,
:status string,
:projectId string,
:transferSpec TransferSpec},
:projectId string,
:updateTransferJobFieldMask string}
Updates a transfer job. Updating a job's transfer spec does not affect
transfer operations that are running already. Updating a job's schedule
is not allowed.
**Note:** The job's status field can be modified
using this RPC (for example, to set a job's status to
DELETED,
DISABLED, or
ENABLED)."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"]}
[auth args body]
{:pre [(util/has-keys? args #{:jobName})]}
(util/get-response
(http/patch
(util/get-url
"https://storagetransfer.googleapis.com/"
"v1/{+jobName}"
#{:jobName}
args)
(merge-with
merge
{:content-type :json,
:body (json/generate-string body),
:throw-exceptions false,
:query-params args,
:accept :json,
:as :json}
auth))))
(defn get$
"https://cloud.google.com/storage-transfer/docsapi/reference/rest/v1/transferJobs/get
Required parameters: jobName
Optional parameters: projectId
Gets a transfer job."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"]}
[auth args]
{:pre [(util/has-keys? args #{:jobName})]}
(util/get-response
(http/get
(util/get-url
"https://storagetransfer.googleapis.com/"
"v1/{+jobName}"
#{:jobName}
args)
(merge-with
merge
{:throw-exceptions false,
:query-params args,
:accept :json,
:as :json}
auth))))
(defn list$
"https://cloud.google.com/storage-transfer/docsapi/reference/rest/v1/transferJobs/list
Required parameters: none
Optional parameters: filter, pageToken, pageSize
Lists transfer jobs."
{:scopes ["https://www.googleapis.com/auth/cloud-platform"]}
[auth args]
{:pre [(util/has-keys? args #{})]}
(util/get-response
(http/get
(util/get-url
"https://storagetransfer.googleapis.com/"
"v1/transferJobs"
#{}
args)
(merge-with
merge
{:throw-exceptions false,
:query-params args,
:accept :json,
:as :json}
auth))))