speakeasy_client_sdk_ruby 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/sdk/apiendpoints.rb +338 -0
- data/lib/sdk/apis.rb +264 -0
- data/lib/sdk/embeds.rb +128 -0
- data/lib/sdk/metadata.rb +144 -0
- data/lib/sdk/models/operations/deleteapi.rb +52 -0
- data/lib/sdk/models/operations/deleteapiendpoint.rb +55 -0
- data/lib/sdk/models/operations/deleteschema.rb +55 -0
- data/lib/sdk/models/operations/deleteversionmetadata.rb +58 -0
- data/lib/sdk/models/operations/downloadschema.rb +55 -0
- data/lib/sdk/models/operations/downloadschemarevision.rb +58 -0
- data/lib/sdk/models/operations/findapiendpoint.rb +59 -0
- data/lib/sdk/models/operations/generateopenapispec.rb +56 -0
- data/lib/sdk/models/operations/generateopenapispecforapiendpoint.rb +59 -0
- data/lib/sdk/models/operations/generatepostmancollection.rb +55 -0
- data/lib/sdk/models/operations/generatepostmancollectionforapiendpoint.rb +58 -0
- data/lib/sdk/models/operations/generaterequestpostmancollection.rb +52 -0
- data/lib/sdk/models/operations/getallapiendpoints.rb +52 -0
- data/lib/sdk/models/operations/getallapiversions.rb +72 -0
- data/lib/sdk/models/operations/getallforversionapiendpoints.rb +55 -0
- data/lib/sdk/models/operations/getapiendpoint.rb +59 -0
- data/lib/sdk/models/operations/getapis.rb +69 -0
- data/lib/sdk/models/operations/getembedaccesstoken.rb +60 -0
- data/lib/sdk/models/operations/getplugins.rb +38 -0
- data/lib/sdk/models/operations/getrequestfromeventlog.rb +53 -0
- data/lib/sdk/models/operations/getschema.rb +56 -0
- data/lib/sdk/models/operations/getschemadiff.rb +62 -0
- data/lib/sdk/models/operations/getschemarevision.rb +59 -0
- data/lib/sdk/models/operations/getschemas.rb +55 -0
- data/lib/sdk/models/operations/getvalidembedaccesstokens.rb +38 -0
- data/lib/sdk/models/operations/getversionmetadata.rb +55 -0
- data/lib/sdk/models/operations/insertversionmetadata.rb +60 -0
- data/lib/sdk/models/operations/queryeventlog.rb +53 -0
- data/lib/sdk/models/operations/registerschema.rb +86 -0
- data/lib/sdk/models/operations/revokeembedaccesstoken.rb +49 -0
- data/lib/sdk/models/operations/runplugin.rb +56 -0
- data/lib/sdk/models/operations/upsertapi.rb +57 -0
- data/lib/sdk/models/operations/upsertapiendpoint.rb +63 -0
- data/lib/sdk/models/operations/upsertplugin.rb +39 -0
- data/lib/sdk/models/operations/validateapikey.rb +35 -0
- data/lib/sdk/models/shared/api.rb +69 -0
- data/lib/sdk/models/shared/apiendpoint.rb +84 -0
- data/lib/sdk/models/shared/boundedrequest.rb +64 -0
- data/lib/sdk/models/shared/embedaccesstokenresponse.rb +25 -0
- data/lib/sdk/models/shared/embedtoken.rb +52 -0
- data/lib/sdk/models/shared/error.rb +28 -0
- data/lib/sdk/models/shared/filter.rb +31 -0
- data/lib/sdk/models/shared/filters.rb +34 -0
- data/lib/sdk/models/shared/generateopenapispecdiff.rb +28 -0
- data/lib/sdk/models/shared/plugin.rb +43 -0
- data/lib/sdk/models/shared/requestmetadata.rb +28 -0
- data/lib/sdk/models/shared/schema.rb +40 -0
- data/lib/sdk/models/shared/schemadiff.rb +48 -0
- data/lib/sdk/models/shared/security.rb +25 -0
- data/lib/sdk/models/shared/unboundedrequest.rb +37 -0
- data/lib/sdk/models/shared/versionmetadata.rb +57 -0
- data/lib/sdk/plugins.rb +140 -0
- data/lib/sdk/requests.rb +136 -0
- data/lib/sdk/schemas.rb +334 -0
- data/lib/sdk/sdk.rb +173 -0
- data/lib/sdk/utils/metadata_fields.rb +154 -0
- data/lib/sdk/utils/retries.rb +130 -0
- data/lib/sdk/utils/utils.rb +769 -0
- data/lib/speakeasy_client_sdk_ruby.rb +70 -0
- metadata +206 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 11960b630a210166a8ce951fb1ee0b11c7656928c09f0cc67f39eb1f19f9a250
|
4
|
+
data.tar.gz: 95a58d22504700eef1e268c82bddac5fc17738a64a98572b49b26d2a6f26bfa1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e11ac96978766bd368a33fbf768c2928038d688465663c613f64cd72b8edb64fe0aa966b54159138fee9313e771a0ac4e25489b88ef659bab235745c267a0cc9
|
7
|
+
data.tar.gz: 7069fb52eaae25736d2b99928b0e812ee6019a77f9e226545f78dfee8c3f49ff56213e8fc2b0eac1570c74c3de620b22f44ea6002ec21b9d20d13ab98f8e7d57
|
@@ -0,0 +1,338 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'faraday'
|
7
|
+
require 'faraday/multipart'
|
8
|
+
require 'sorbet-runtime'
|
9
|
+
|
10
|
+
module SpeakeasyClientSDK
|
11
|
+
extend T::Sig
|
12
|
+
class ApiEndpoints
|
13
|
+
extend T::Sig
|
14
|
+
sig { params(sdk: SpeakeasyClientSDK::SDK, client: Faraday::Connection, server_url: String, language: String, sdk_version: String, gen_version: String).void }
|
15
|
+
def initialize(sdk, client, server_url, language, sdk_version, gen_version)
|
16
|
+
@sdk = sdk
|
17
|
+
@client = client
|
18
|
+
@server_url = server_url
|
19
|
+
@language = language
|
20
|
+
@sdk_version = sdk_version
|
21
|
+
@gen_version = gen_version
|
22
|
+
end
|
23
|
+
|
24
|
+
sig { params(request: Operations::DeleteApiEndpointRequest).returns(Utils::FieldAugmented) }
|
25
|
+
def delete_api_endpoint(request)
|
26
|
+
# delete_api_endpoint - Delete an ApiEndpoint.
|
27
|
+
# Delete an ApiEndpoint. This will also delete all associated Request Logs (if using a Postgres datastore).
|
28
|
+
base_url = @server_url
|
29
|
+
url = Utils.generate_url(
|
30
|
+
Operations::DeleteApiEndpointRequest,
|
31
|
+
base_url,
|
32
|
+
'/v1/apis/{apiID}/version/{versionID}/api_endpoints/{apiEndpointID}',
|
33
|
+
request
|
34
|
+
)
|
35
|
+
headers = {}
|
36
|
+
headers['Accept'] = 'application/json'
|
37
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
38
|
+
|
39
|
+
r = @client.delete(url) do |req|
|
40
|
+
req.headers = headers
|
41
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
42
|
+
end
|
43
|
+
|
44
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
45
|
+
|
46
|
+
res = Operations::DeleteApiEndpointResponse.new(
|
47
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
48
|
+
)
|
49
|
+
if r.status == 200
|
50
|
+
else
|
51
|
+
if Utils.match_content_type(content_type, 'application/json')
|
52
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
53
|
+
res.error = out
|
54
|
+
end
|
55
|
+
end
|
56
|
+
res
|
57
|
+
end
|
58
|
+
|
59
|
+
sig { params(request: Operations::FindApiEndpointRequest).returns(Utils::FieldAugmented) }
|
60
|
+
def find_api_endpoint(request)
|
61
|
+
# find_api_endpoint - Find an ApiEndpoint via its displayName.
|
62
|
+
# Find an ApiEndpoint via its displayName (set by operationId from a registered OpenAPI schema).
|
63
|
+
# This is useful for finding the ID of an ApiEndpoint to use in the /v1/apis/{apiID}/version/{versionID}/api_endpoints/{apiEndpointID} endpoints.
|
64
|
+
base_url = @server_url
|
65
|
+
url = Utils.generate_url(
|
66
|
+
Operations::FindApiEndpointRequest,
|
67
|
+
base_url,
|
68
|
+
'/v1/apis/{apiID}/version/{versionID}/api_endpoints/find/{displayName}',
|
69
|
+
request
|
70
|
+
)
|
71
|
+
headers = {}
|
72
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
73
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
74
|
+
|
75
|
+
r = @client.get(url) do |req|
|
76
|
+
req.headers = headers
|
77
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
78
|
+
end
|
79
|
+
|
80
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
81
|
+
|
82
|
+
res = Operations::FindApiEndpointResponse.new(
|
83
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
84
|
+
)
|
85
|
+
if r.status == 200
|
86
|
+
if Utils.match_content_type(content_type, 'application/json')
|
87
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::ApiEndpoint)
|
88
|
+
res.api_endpoint = out
|
89
|
+
end
|
90
|
+
else
|
91
|
+
if Utils.match_content_type(content_type, 'application/json')
|
92
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
93
|
+
res.error = out
|
94
|
+
end
|
95
|
+
end
|
96
|
+
res
|
97
|
+
end
|
98
|
+
|
99
|
+
sig { params(request: Operations::GenerateOpenApiSpecForApiEndpointRequest).returns(Utils::FieldAugmented) }
|
100
|
+
def generate_open_api_spec_for_api_endpoint(request)
|
101
|
+
# generate_open_api_spec_for_api_endpoint - Generate an OpenAPI specification for a particular ApiEndpoint.
|
102
|
+
# This endpoint will generate a new operation in any registered OpenAPI document if the operation does not already exist in the document.
|
103
|
+
# Returns the original document and the newly generated document allowing a diff to be performed to see what has changed.
|
104
|
+
base_url = @server_url
|
105
|
+
url = Utils.generate_url(
|
106
|
+
Operations::GenerateOpenApiSpecForApiEndpointRequest,
|
107
|
+
base_url,
|
108
|
+
'/v1/apis/{apiID}/version/{versionID}/api_endpoints/{apiEndpointID}/generate/openapi',
|
109
|
+
request
|
110
|
+
)
|
111
|
+
headers = {}
|
112
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
113
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
114
|
+
|
115
|
+
r = @client.get(url) do |req|
|
116
|
+
req.headers = headers
|
117
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
118
|
+
end
|
119
|
+
|
120
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
121
|
+
|
122
|
+
res = Operations::GenerateOpenApiSpecForApiEndpointResponse.new(
|
123
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
124
|
+
)
|
125
|
+
if r.status == 200
|
126
|
+
if Utils.match_content_type(content_type, 'application/json')
|
127
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::GenerateOpenApiSpecDiff)
|
128
|
+
res.generate_open_api_spec_diff = out
|
129
|
+
end
|
130
|
+
else
|
131
|
+
if Utils.match_content_type(content_type, 'application/json')
|
132
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
133
|
+
res.error = out
|
134
|
+
end
|
135
|
+
end
|
136
|
+
res
|
137
|
+
end
|
138
|
+
|
139
|
+
sig { params(request: Operations::GeneratePostmanCollectionForApiEndpointRequest).returns(Utils::FieldAugmented) }
|
140
|
+
def generate_postman_collection_for_api_endpoint(request)
|
141
|
+
# generate_postman_collection_for_api_endpoint - Generate a Postman collection for a particular ApiEndpoint.
|
142
|
+
# Generates a postman collection that allows the endpoint to be called from postman variables produced for any path/query/header parameters included in the OpenAPI document.
|
143
|
+
base_url = @server_url
|
144
|
+
url = Utils.generate_url(
|
145
|
+
Operations::GeneratePostmanCollectionForApiEndpointRequest,
|
146
|
+
base_url,
|
147
|
+
'/v1/apis/{apiID}/version/{versionID}/api_endpoints/{apiEndpointID}/generate/postman',
|
148
|
+
request
|
149
|
+
)
|
150
|
+
headers = {}
|
151
|
+
headers['Accept'] = 'application/json;q=1, application/octet-stream;q=0'
|
152
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
153
|
+
|
154
|
+
r = @client.get(url) do |req|
|
155
|
+
req.headers = headers
|
156
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
157
|
+
end
|
158
|
+
|
159
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
160
|
+
|
161
|
+
res = Operations::GeneratePostmanCollectionForApiEndpointResponse.new(
|
162
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
163
|
+
)
|
164
|
+
if r.status == 200
|
165
|
+
res.postman_collection = r.env.response_body if Utils.match_content_type(content_type, 'application/octet-stream')
|
166
|
+
else
|
167
|
+
if Utils.match_content_type(content_type, 'application/json')
|
168
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
169
|
+
res.error = out
|
170
|
+
end
|
171
|
+
end
|
172
|
+
res
|
173
|
+
end
|
174
|
+
|
175
|
+
sig { params(request: Operations::GetAllApiEndpointsRequest).returns(Utils::FieldAugmented) }
|
176
|
+
def get_all_api_endpoints(request)
|
177
|
+
# get_all_api_endpoints - Get all Api endpoints for a particular apiID.
|
178
|
+
base_url = @server_url
|
179
|
+
url = Utils.generate_url(
|
180
|
+
Operations::GetAllApiEndpointsRequest,
|
181
|
+
base_url,
|
182
|
+
'/v1/apis/{apiID}/api_endpoints',
|
183
|
+
request
|
184
|
+
)
|
185
|
+
headers = {}
|
186
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
187
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
188
|
+
|
189
|
+
r = @client.get(url) do |req|
|
190
|
+
req.headers = headers
|
191
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
192
|
+
end
|
193
|
+
|
194
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
195
|
+
|
196
|
+
res = Operations::GetAllApiEndpointsResponse.new(
|
197
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
198
|
+
)
|
199
|
+
if r.status == 200
|
200
|
+
if Utils.match_content_type(content_type, 'application/json')
|
201
|
+
out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::ApiEndpoint])
|
202
|
+
res.api_endpoints = out
|
203
|
+
end
|
204
|
+
else
|
205
|
+
if Utils.match_content_type(content_type, 'application/json')
|
206
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
207
|
+
res.error = out
|
208
|
+
end
|
209
|
+
end
|
210
|
+
res
|
211
|
+
end
|
212
|
+
|
213
|
+
sig { params(request: Operations::GetAllForVersionApiEndpointsRequest).returns(Utils::FieldAugmented) }
|
214
|
+
def get_all_for_version_api_endpoints(request)
|
215
|
+
# get_all_for_version_api_endpoints - Get all ApiEndpoints for a particular apiID and versionID.
|
216
|
+
base_url = @server_url
|
217
|
+
url = Utils.generate_url(
|
218
|
+
Operations::GetAllForVersionApiEndpointsRequest,
|
219
|
+
base_url,
|
220
|
+
'/v1/apis/{apiID}/version/{versionID}/api_endpoints',
|
221
|
+
request
|
222
|
+
)
|
223
|
+
headers = {}
|
224
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
225
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
226
|
+
|
227
|
+
r = @client.get(url) do |req|
|
228
|
+
req.headers = headers
|
229
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
230
|
+
end
|
231
|
+
|
232
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
233
|
+
|
234
|
+
res = Operations::GetAllForVersionApiEndpointsResponse.new(
|
235
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
236
|
+
)
|
237
|
+
if r.status == 200
|
238
|
+
if Utils.match_content_type(content_type, 'application/json')
|
239
|
+
out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::ApiEndpoint])
|
240
|
+
res.api_endpoints = out
|
241
|
+
end
|
242
|
+
else
|
243
|
+
if Utils.match_content_type(content_type, 'application/json')
|
244
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
245
|
+
res.error = out
|
246
|
+
end
|
247
|
+
end
|
248
|
+
res
|
249
|
+
end
|
250
|
+
|
251
|
+
sig { params(request: Operations::GetApiEndpointRequest).returns(Utils::FieldAugmented) }
|
252
|
+
def get_api_endpoint(request)
|
253
|
+
# get_api_endpoint - Get an ApiEndpoint.
|
254
|
+
base_url = @server_url
|
255
|
+
url = Utils.generate_url(
|
256
|
+
Operations::GetApiEndpointRequest,
|
257
|
+
base_url,
|
258
|
+
'/v1/apis/{apiID}/version/{versionID}/api_endpoints/{apiEndpointID}',
|
259
|
+
request
|
260
|
+
)
|
261
|
+
headers = {}
|
262
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
263
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
264
|
+
|
265
|
+
r = @client.get(url) do |req|
|
266
|
+
req.headers = headers
|
267
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
268
|
+
end
|
269
|
+
|
270
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
271
|
+
|
272
|
+
res = Operations::GetApiEndpointResponse.new(
|
273
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
274
|
+
)
|
275
|
+
if r.status == 200
|
276
|
+
if Utils.match_content_type(content_type, 'application/json')
|
277
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::ApiEndpoint)
|
278
|
+
res.api_endpoint = out
|
279
|
+
end
|
280
|
+
else
|
281
|
+
if Utils.match_content_type(content_type, 'application/json')
|
282
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
283
|
+
res.error = out
|
284
|
+
end
|
285
|
+
end
|
286
|
+
res
|
287
|
+
end
|
288
|
+
|
289
|
+
sig { params(request: Operations::UpsertApiEndpointRequest).returns(Utils::FieldAugmented) }
|
290
|
+
def upsert_api_endpoint(request)
|
291
|
+
# upsert_api_endpoint - Upsert an ApiEndpoint.
|
292
|
+
# Upsert an ApiEndpoint. If the ApiEndpoint does not exist it will be created, otherwise it will be updated.
|
293
|
+
base_url = @server_url
|
294
|
+
url = Utils.generate_url(
|
295
|
+
Operations::UpsertApiEndpointRequest,
|
296
|
+
base_url,
|
297
|
+
'/v1/apis/{apiID}/version/{versionID}/api_endpoints/{apiEndpointID}',
|
298
|
+
request
|
299
|
+
)
|
300
|
+
headers = {}
|
301
|
+
req_content_type, data, form = Utils.serialize_request_body(request, :api_endpoint_input, :json)
|
302
|
+
headers['content-type'] = req_content_type
|
303
|
+
raise StandardError, 'request body is required' if data.nil? && form.nil?
|
304
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
305
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
306
|
+
|
307
|
+
r = @client.put(url) do |req|
|
308
|
+
req.headers = headers
|
309
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
310
|
+
if form
|
311
|
+
req.body = Utils.encode_form(form)
|
312
|
+
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
|
313
|
+
req.body = URI.encode_www_form(data)
|
314
|
+
else
|
315
|
+
req.body = data
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
320
|
+
|
321
|
+
res = Operations::UpsertApiEndpointResponse.new(
|
322
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
323
|
+
)
|
324
|
+
if r.status == 200
|
325
|
+
if Utils.match_content_type(content_type, 'application/json')
|
326
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::ApiEndpoint)
|
327
|
+
res.api_endpoint = out
|
328
|
+
end
|
329
|
+
else
|
330
|
+
if Utils.match_content_type(content_type, 'application/json')
|
331
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
332
|
+
res.error = out
|
333
|
+
end
|
334
|
+
end
|
335
|
+
res
|
336
|
+
end
|
337
|
+
end
|
338
|
+
end
|
data/lib/sdk/apis.rb
ADDED
@@ -0,0 +1,264 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'faraday'
|
7
|
+
require 'faraday/multipart'
|
8
|
+
require 'sorbet-runtime'
|
9
|
+
|
10
|
+
module SpeakeasyClientSDK
|
11
|
+
extend T::Sig
|
12
|
+
class Apis
|
13
|
+
extend T::Sig
|
14
|
+
sig { params(sdk: SpeakeasyClientSDK::SDK, client: Faraday::Connection, server_url: String, language: String, sdk_version: String, gen_version: String).void }
|
15
|
+
def initialize(sdk, client, server_url, language, sdk_version, gen_version)
|
16
|
+
@sdk = sdk
|
17
|
+
@client = client
|
18
|
+
@server_url = server_url
|
19
|
+
@language = language
|
20
|
+
@sdk_version = sdk_version
|
21
|
+
@gen_version = gen_version
|
22
|
+
end
|
23
|
+
|
24
|
+
sig { params(request: Operations::DeleteApiRequest).returns(Utils::FieldAugmented) }
|
25
|
+
def delete_api(request)
|
26
|
+
# delete_api - Delete an Api.
|
27
|
+
# Delete a particular version of an Api. The will also delete all associated ApiEndpoints, Metadata, Schemas & Request Logs (if using a Postgres datastore).
|
28
|
+
base_url = @server_url
|
29
|
+
url = Utils.generate_url(
|
30
|
+
Operations::DeleteApiRequest,
|
31
|
+
base_url,
|
32
|
+
'/v1/apis/{apiID}/version/{versionID}',
|
33
|
+
request
|
34
|
+
)
|
35
|
+
headers = {}
|
36
|
+
headers['Accept'] = 'application/json'
|
37
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
38
|
+
|
39
|
+
r = @client.delete(url) do |req|
|
40
|
+
req.headers = headers
|
41
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
42
|
+
end
|
43
|
+
|
44
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
45
|
+
|
46
|
+
res = Operations::DeleteApiResponse.new(
|
47
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
48
|
+
)
|
49
|
+
if r.status == 200
|
50
|
+
else
|
51
|
+
if Utils.match_content_type(content_type, 'application/json')
|
52
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
53
|
+
res.error = out
|
54
|
+
end
|
55
|
+
end
|
56
|
+
res
|
57
|
+
end
|
58
|
+
|
59
|
+
sig { params(request: Operations::GenerateOpenApiSpecRequest).returns(Utils::FieldAugmented) }
|
60
|
+
def generate_open_api_spec(request)
|
61
|
+
# generate_open_api_spec - Generate an OpenAPI specification for a particular Api.
|
62
|
+
# This endpoint will generate any missing operations in any registered OpenAPI document if the operation does not already exist in the document.
|
63
|
+
# Returns the original document and the newly generated document allowing a diff to be performed to see what has changed.
|
64
|
+
base_url = @server_url
|
65
|
+
url = Utils.generate_url(
|
66
|
+
Operations::GenerateOpenApiSpecRequest,
|
67
|
+
base_url,
|
68
|
+
'/v1/apis/{apiID}/version/{versionID}/generate/openapi',
|
69
|
+
request
|
70
|
+
)
|
71
|
+
headers = {}
|
72
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
73
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
74
|
+
|
75
|
+
r = @client.get(url) do |req|
|
76
|
+
req.headers = headers
|
77
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
78
|
+
end
|
79
|
+
|
80
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
81
|
+
|
82
|
+
res = Operations::GenerateOpenApiSpecResponse.new(
|
83
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
84
|
+
)
|
85
|
+
if r.status == 200
|
86
|
+
if Utils.match_content_type(content_type, 'application/json')
|
87
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::GenerateOpenApiSpecDiff)
|
88
|
+
res.generate_open_api_spec_diff = out
|
89
|
+
end
|
90
|
+
else
|
91
|
+
if Utils.match_content_type(content_type, 'application/json')
|
92
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
93
|
+
res.error = out
|
94
|
+
end
|
95
|
+
end
|
96
|
+
res
|
97
|
+
end
|
98
|
+
|
99
|
+
sig { params(request: Operations::GeneratePostmanCollectionRequest).returns(Utils::FieldAugmented) }
|
100
|
+
def generate_postman_collection(request)
|
101
|
+
# generate_postman_collection - Generate a Postman collection for a particular Api.
|
102
|
+
# Generates a postman collection containing all endpoints for a particular API. Includes variables produced for any path/query/header parameters included in the OpenAPI document.
|
103
|
+
base_url = @server_url
|
104
|
+
url = Utils.generate_url(
|
105
|
+
Operations::GeneratePostmanCollectionRequest,
|
106
|
+
base_url,
|
107
|
+
'/v1/apis/{apiID}/version/{versionID}/generate/postman',
|
108
|
+
request
|
109
|
+
)
|
110
|
+
headers = {}
|
111
|
+
headers['Accept'] = 'application/json;q=1, application/octet-stream;q=0'
|
112
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
113
|
+
|
114
|
+
r = @client.get(url) do |req|
|
115
|
+
req.headers = headers
|
116
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
117
|
+
end
|
118
|
+
|
119
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
120
|
+
|
121
|
+
res = Operations::GeneratePostmanCollectionResponse.new(
|
122
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
123
|
+
)
|
124
|
+
if r.status == 200
|
125
|
+
res.postman_collection = r.env.response_body if Utils.match_content_type(content_type, 'application/octet-stream')
|
126
|
+
else
|
127
|
+
if Utils.match_content_type(content_type, 'application/json')
|
128
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
129
|
+
res.error = out
|
130
|
+
end
|
131
|
+
end
|
132
|
+
res
|
133
|
+
end
|
134
|
+
|
135
|
+
sig { params(request: Operations::GetAllApiVersionsRequest).returns(Utils::FieldAugmented) }
|
136
|
+
def get_all_api_versions(request)
|
137
|
+
# get_all_api_versions - Get all Api versions for a particular ApiEndpoint.
|
138
|
+
# Get all Api versions for a particular ApiEndpoint.
|
139
|
+
# Supports filtering the versions based on metadata attributes.
|
140
|
+
base_url = @server_url
|
141
|
+
url = Utils.generate_url(
|
142
|
+
Operations::GetAllApiVersionsRequest,
|
143
|
+
base_url,
|
144
|
+
'/v1/apis/{apiID}',
|
145
|
+
request
|
146
|
+
)
|
147
|
+
headers = {}
|
148
|
+
query_params = Utils.get_query_params(Operations::GetAllApiVersionsRequest, request)
|
149
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
150
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
151
|
+
|
152
|
+
r = @client.get(url) do |req|
|
153
|
+
req.headers = headers
|
154
|
+
req.params = query_params
|
155
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
156
|
+
end
|
157
|
+
|
158
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
159
|
+
|
160
|
+
res = Operations::GetAllApiVersionsResponse.new(
|
161
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
162
|
+
)
|
163
|
+
if r.status == 200
|
164
|
+
if Utils.match_content_type(content_type, 'application/json')
|
165
|
+
out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::Api])
|
166
|
+
res.apis = out
|
167
|
+
end
|
168
|
+
else
|
169
|
+
if Utils.match_content_type(content_type, 'application/json')
|
170
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
171
|
+
res.error = out
|
172
|
+
end
|
173
|
+
end
|
174
|
+
res
|
175
|
+
end
|
176
|
+
|
177
|
+
sig { params(request: Operations::GetApisRequest).returns(Utils::FieldAugmented) }
|
178
|
+
def get_apis(request)
|
179
|
+
# get_apis - Get a list of Apis for a given workspace
|
180
|
+
# Get a list of all Apis and their versions for a given workspace.
|
181
|
+
# Supports filtering the APIs based on metadata attributes.
|
182
|
+
base_url = @server_url
|
183
|
+
url = "#{base_url.delete_suffix('/')}/v1/apis"
|
184
|
+
headers = {}
|
185
|
+
query_params = Utils.get_query_params(Operations::GetApisRequest, request)
|
186
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
187
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
188
|
+
|
189
|
+
r = @client.get(url) do |req|
|
190
|
+
req.headers = headers
|
191
|
+
req.params = query_params
|
192
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
193
|
+
end
|
194
|
+
|
195
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
196
|
+
|
197
|
+
res = Operations::GetApisResponse.new(
|
198
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
199
|
+
)
|
200
|
+
if r.status == 200
|
201
|
+
if Utils.match_content_type(content_type, 'application/json')
|
202
|
+
out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::Api])
|
203
|
+
res.apis = out
|
204
|
+
end
|
205
|
+
else
|
206
|
+
if Utils.match_content_type(content_type, 'application/json')
|
207
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
208
|
+
res.error = out
|
209
|
+
end
|
210
|
+
end
|
211
|
+
res
|
212
|
+
end
|
213
|
+
|
214
|
+
sig { params(request: Operations::UpsertApiRequest).returns(Utils::FieldAugmented) }
|
215
|
+
def upsert_api(request)
|
216
|
+
# upsert_api - Upsert an Api
|
217
|
+
# Upsert an Api. If the Api does not exist, it will be created.
|
218
|
+
# If the Api exists, it will be updated.
|
219
|
+
base_url = @server_url
|
220
|
+
url = Utils.generate_url(
|
221
|
+
Operations::UpsertApiRequest,
|
222
|
+
base_url,
|
223
|
+
'/v1/apis/{apiID}',
|
224
|
+
request
|
225
|
+
)
|
226
|
+
headers = {}
|
227
|
+
req_content_type, data, form = Utils.serialize_request_body(request, :api_input, :json)
|
228
|
+
headers['content-type'] = req_content_type
|
229
|
+
raise StandardError, 'request body is required' if data.nil? && form.nil?
|
230
|
+
headers['Accept'] = 'application/json;q=1, application/json;q=0'
|
231
|
+
headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
|
232
|
+
|
233
|
+
r = @client.put(url) do |req|
|
234
|
+
req.headers = headers
|
235
|
+
Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
|
236
|
+
if form
|
237
|
+
req.body = Utils.encode_form(form)
|
238
|
+
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
|
239
|
+
req.body = URI.encode_www_form(data)
|
240
|
+
else
|
241
|
+
req.body = data
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
246
|
+
|
247
|
+
res = Operations::UpsertApiResponse.new(
|
248
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
249
|
+
)
|
250
|
+
if r.status == 200
|
251
|
+
if Utils.match_content_type(content_type, 'application/json')
|
252
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Api)
|
253
|
+
res.api = out
|
254
|
+
end
|
255
|
+
else
|
256
|
+
if Utils.match_content_type(content_type, 'application/json')
|
257
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
258
|
+
res.error = out
|
259
|
+
end
|
260
|
+
end
|
261
|
+
res
|
262
|
+
end
|
263
|
+
end
|
264
|
+
end
|