Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f460caf

Browse files
Merge pull request #88 from Wei18/dependabot/submodules/Submodule/github/rest-api-description-b2ff88e
Bump Submodule/github/rest-api-description from `a0508ce` to `b2ff88e`
2 parents aa5ddc6 + c14fd67 commit f460caf

File tree

5 files changed

+942
-66
lines changed

5 files changed

+942
-66
lines changed

‎Sources/billing/Client.swift

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,197 @@ public struct Client: APIProtocol {
3838
private var converter: Converter {
3939
client.converter
4040
}
41+
/// Get billing usage report for an organization
42+
///
43+
/// Gets a report of the total usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account.
44+
///
45+
/// **Note:** This endpoint is only available to organizations with access to the enhanced billing platform. For more information, see "[About the enhanced billing platform](https://docs.github.com/billing/using-the-new-billing-platform)."
46+
///
47+
/// - Remark: HTTP `GET /organizations/{org}/settings/billing/usage`.
48+
/// - Remark: Generated from `#/paths//organizations/{org}/settings/billing/usage/get(billing/get-github-billing-usage-report-org)`.
49+
public func billing_sol_get_hyphen_github_hyphen_billing_hyphen_usage_hyphen_report_hyphen_org(_ input: Operations.billing_sol_get_hyphen_github_hyphen_billing_hyphen_usage_hyphen_report_hyphen_org.Input) async throws -> Operations.billing_sol_get_hyphen_github_hyphen_billing_hyphen_usage_hyphen_report_hyphen_org.Output {
50+
try await client.send(
51+
input: input,
52+
forOperation: Operations.billing_sol_get_hyphen_github_hyphen_billing_hyphen_usage_hyphen_report_hyphen_org.id,
53+
serializer: { input in
54+
let path = try converter.renderedPath(
55+
template: "/organizations/{}/settings/billing/usage",
56+
parameters: [
57+
input.path.org
58+
]
59+
)
60+
var request: HTTPTypes.HTTPRequest = .init(
61+
soar_path: path,
62+
method: .get
63+
)
64+
suppressMutabilityWarning(&request)
65+
try converter.setQueryItemAsURI(
66+
in: &request,
67+
style: .form,
68+
explode: true,
69+
name: "year",
70+
value: input.query.year
71+
)
72+
try converter.setQueryItemAsURI(
73+
in: &request,
74+
style: .form,
75+
explode: true,
76+
name: "month",
77+
value: input.query.month
78+
)
79+
try converter.setQueryItemAsURI(
80+
in: &request,
81+
style: .form,
82+
explode: true,
83+
name: "day",
84+
value: input.query.day
85+
)
86+
try converter.setQueryItemAsURI(
87+
in: &request,
88+
style: .form,
89+
explode: true,
90+
name: "hour",
91+
value: input.query.hour
92+
)
93+
converter.setAcceptHeader(
94+
in: &request.headerFields,
95+
contentTypes: input.headers.accept
96+
)
97+
return (request, nil)
98+
},
99+
deserializer: { response, responseBody in
100+
switch response.status.code {
101+
case 200:
102+
let contentType = converter.extractContentTypeIfPresent(in: response.headerFields)
103+
let body: Components.Responses.billing_usage_report_org.Body
104+
let chosenContentType = try converter.bestContentType(
105+
received: contentType,
106+
options: [
107+
"application/json"
108+
]
109+
)
110+
switch chosenContentType {
111+
case "application/json":
112+
body = try await converter.getResponseBodyAsJSON(
113+
Components.Schemas.billing_hyphen_usage_hyphen_report.self,
114+
from: responseBody,
115+
transforming: { value in
116+
.json(value)
117+
}
118+
)
119+
default:
120+
preconditionFailure("bestContentType chose an invalid content type.")
121+
}
122+
return .ok(.init(body: body))
123+
case 400:
124+
let contentType = converter.extractContentTypeIfPresent(in: response.headerFields)
125+
let body: Components.Responses.bad_request.Body
126+
let chosenContentType = try converter.bestContentType(
127+
received: contentType,
128+
options: [
129+
"application/json",
130+
"application/scim+json"
131+
]
132+
)
133+
switch chosenContentType {
134+
case "application/json":
135+
body = try await converter.getResponseBodyAsJSON(
136+
Components.Schemas.basic_hyphen_error.self,
137+
from: responseBody,
138+
transforming: { value in
139+
.json(value)
140+
}
141+
)
142+
case "application/scim+json":
143+
body = try await converter.getResponseBodyAsJSON(
144+
Components.Schemas.scim_hyphen_error.self,
145+
from: responseBody,
146+
transforming: { value in
147+
.application_scim_plus_json(value)
148+
}
149+
)
150+
default:
151+
preconditionFailure("bestContentType chose an invalid content type.")
152+
}
153+
return .badRequest(.init(body: body))
154+
case 403:
155+
let contentType = converter.extractContentTypeIfPresent(in: response.headerFields)
156+
let body: Components.Responses.forbidden.Body
157+
let chosenContentType = try converter.bestContentType(
158+
received: contentType,
159+
options: [
160+
"application/json"
161+
]
162+
)
163+
switch chosenContentType {
164+
case "application/json":
165+
body = try await converter.getResponseBodyAsJSON(
166+
Components.Schemas.basic_hyphen_error.self,
167+
from: responseBody,
168+
transforming: { value in
169+
.json(value)
170+
}
171+
)
172+
default:
173+
preconditionFailure("bestContentType chose an invalid content type.")
174+
}
175+
return .forbidden(.init(body: body))
176+
case 500:
177+
let contentType = converter.extractContentTypeIfPresent(in: response.headerFields)
178+
let body: Components.Responses.internal_error.Body
179+
let chosenContentType = try converter.bestContentType(
180+
received: contentType,
181+
options: [
182+
"application/json"
183+
]
184+
)
185+
switch chosenContentType {
186+
case "application/json":
187+
body = try await converter.getResponseBodyAsJSON(
188+
Components.Schemas.basic_hyphen_error.self,
189+
from: responseBody,
190+
transforming: { value in
191+
.json(value)
192+
}
193+
)
194+
default:
195+
preconditionFailure("bestContentType chose an invalid content type.")
196+
}
197+
return .internalServerError(.init(body: body))
198+
case 503:
199+
let contentType = converter.extractContentTypeIfPresent(in: response.headerFields)
200+
let body: Components.Responses.service_unavailable.Body
201+
let chosenContentType = try converter.bestContentType(
202+
received: contentType,
203+
options: [
204+
"application/json"
205+
]
206+
)
207+
switch chosenContentType {
208+
case "application/json":
209+
body = try await converter.getResponseBodyAsJSON(
210+
Components.Responses.service_unavailable.Body.jsonPayload.self,
211+
from: responseBody,
212+
transforming: { value in
213+
.json(value)
214+
}
215+
)
216+
default:
217+
preconditionFailure("bestContentType chose an invalid content type.")
218+
}
219+
return .serviceUnavailable(.init(body: body))
220+
default:
221+
return .undocumented(
222+
statusCode: response.status.code,
223+
.init(
224+
headerFields: response.headerFields,
225+
body: responseBody
226+
)
227+
)
228+
}
229+
}
230+
)
231+
}
41232
/// Get GitHub Actions billing for an organization
42233
///
43234
/// Gets the summary of the free and paid GitHub Actions minutes used.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /