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.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/lib/sdk/apiendpoints.rb +338 -0
  3. data/lib/sdk/apis.rb +264 -0
  4. data/lib/sdk/embeds.rb +128 -0
  5. data/lib/sdk/metadata.rb +144 -0
  6. data/lib/sdk/models/operations/deleteapi.rb +52 -0
  7. data/lib/sdk/models/operations/deleteapiendpoint.rb +55 -0
  8. data/lib/sdk/models/operations/deleteschema.rb +55 -0
  9. data/lib/sdk/models/operations/deleteversionmetadata.rb +58 -0
  10. data/lib/sdk/models/operations/downloadschema.rb +55 -0
  11. data/lib/sdk/models/operations/downloadschemarevision.rb +58 -0
  12. data/lib/sdk/models/operations/findapiendpoint.rb +59 -0
  13. data/lib/sdk/models/operations/generateopenapispec.rb +56 -0
  14. data/lib/sdk/models/operations/generateopenapispecforapiendpoint.rb +59 -0
  15. data/lib/sdk/models/operations/generatepostmancollection.rb +55 -0
  16. data/lib/sdk/models/operations/generatepostmancollectionforapiendpoint.rb +58 -0
  17. data/lib/sdk/models/operations/generaterequestpostmancollection.rb +52 -0
  18. data/lib/sdk/models/operations/getallapiendpoints.rb +52 -0
  19. data/lib/sdk/models/operations/getallapiversions.rb +72 -0
  20. data/lib/sdk/models/operations/getallforversionapiendpoints.rb +55 -0
  21. data/lib/sdk/models/operations/getapiendpoint.rb +59 -0
  22. data/lib/sdk/models/operations/getapis.rb +69 -0
  23. data/lib/sdk/models/operations/getembedaccesstoken.rb +60 -0
  24. data/lib/sdk/models/operations/getplugins.rb +38 -0
  25. data/lib/sdk/models/operations/getrequestfromeventlog.rb +53 -0
  26. data/lib/sdk/models/operations/getschema.rb +56 -0
  27. data/lib/sdk/models/operations/getschemadiff.rb +62 -0
  28. data/lib/sdk/models/operations/getschemarevision.rb +59 -0
  29. data/lib/sdk/models/operations/getschemas.rb +55 -0
  30. data/lib/sdk/models/operations/getvalidembedaccesstokens.rb +38 -0
  31. data/lib/sdk/models/operations/getversionmetadata.rb +55 -0
  32. data/lib/sdk/models/operations/insertversionmetadata.rb +60 -0
  33. data/lib/sdk/models/operations/queryeventlog.rb +53 -0
  34. data/lib/sdk/models/operations/registerschema.rb +86 -0
  35. data/lib/sdk/models/operations/revokeembedaccesstoken.rb +49 -0
  36. data/lib/sdk/models/operations/runplugin.rb +56 -0
  37. data/lib/sdk/models/operations/upsertapi.rb +57 -0
  38. data/lib/sdk/models/operations/upsertapiendpoint.rb +63 -0
  39. data/lib/sdk/models/operations/upsertplugin.rb +39 -0
  40. data/lib/sdk/models/operations/validateapikey.rb +35 -0
  41. data/lib/sdk/models/shared/api.rb +69 -0
  42. data/lib/sdk/models/shared/apiendpoint.rb +84 -0
  43. data/lib/sdk/models/shared/boundedrequest.rb +64 -0
  44. data/lib/sdk/models/shared/embedaccesstokenresponse.rb +25 -0
  45. data/lib/sdk/models/shared/embedtoken.rb +52 -0
  46. data/lib/sdk/models/shared/error.rb +28 -0
  47. data/lib/sdk/models/shared/filter.rb +31 -0
  48. data/lib/sdk/models/shared/filters.rb +34 -0
  49. data/lib/sdk/models/shared/generateopenapispecdiff.rb +28 -0
  50. data/lib/sdk/models/shared/plugin.rb +43 -0
  51. data/lib/sdk/models/shared/requestmetadata.rb +28 -0
  52. data/lib/sdk/models/shared/schema.rb +40 -0
  53. data/lib/sdk/models/shared/schemadiff.rb +48 -0
  54. data/lib/sdk/models/shared/security.rb +25 -0
  55. data/lib/sdk/models/shared/unboundedrequest.rb +37 -0
  56. data/lib/sdk/models/shared/versionmetadata.rb +57 -0
  57. data/lib/sdk/plugins.rb +140 -0
  58. data/lib/sdk/requests.rb +136 -0
  59. data/lib/sdk/schemas.rb +334 -0
  60. data/lib/sdk/sdk.rb +173 -0
  61. data/lib/sdk/utils/metadata_fields.rb +154 -0
  62. data/lib/sdk/utils/retries.rb +130 -0
  63. data/lib/sdk/utils/utils.rb +769 -0
  64. data/lib/speakeasy_client_sdk_ruby.rb +70 -0
  65. metadata +206 -0
@@ -0,0 +1,28 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module SpeakeasyClientSDK
10
+ module Shared
11
+ # OK
12
+ class GenerateOpenApiSpecDiff < SpeakeasyClientSDK::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :current_schema, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('current_schema') } }
17
+
18
+ field :new_schema, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('new_schema') } }
19
+
20
+
21
+ sig { params(current_schema: String, new_schema: String).void }
22
+ def initialize(current_schema: nil, new_schema: nil)
23
+ @current_schema = current_schema
24
+ @new_schema = new_schema
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,43 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module SpeakeasyClientSDK
10
+ module Shared
11
+ # A plugin is a short script that is run against ingested requests
12
+ class Plugin < SpeakeasyClientSDK::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :code, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('code') } }
17
+
18
+ field :plugin_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('plugin_id') } }
19
+
20
+ field :title, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('title') } }
21
+
22
+ field :workspace_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('workspace_id') } }
23
+
24
+ field :created_at, T.nilable(DateTime), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('created_at'), 'decoder': Utils.datetime_from_iso_format(true) } }
25
+
26
+ field :eval_hash, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('eval_hash') } }
27
+
28
+ field :updated_at, T.nilable(DateTime), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('updated_at'), 'decoder': Utils.datetime_from_iso_format(true) } }
29
+
30
+
31
+ sig { params(code: String, plugin_id: String, title: String, workspace_id: String, created_at: T.nilable(DateTime), eval_hash: T.nilable(String), updated_at: T.nilable(DateTime)).void }
32
+ def initialize(code: nil, plugin_id: nil, title: nil, workspace_id: nil, created_at: nil, eval_hash: nil, updated_at: nil)
33
+ @code = code
34
+ @plugin_id = plugin_id
35
+ @title = title
36
+ @workspace_id = workspace_id
37
+ @created_at = created_at
38
+ @eval_hash = eval_hash
39
+ @updated_at = updated_at
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,28 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module SpeakeasyClientSDK
10
+ module Shared
11
+ # Key-Value pairs associated with a request
12
+ class RequestMetadata < SpeakeasyClientSDK::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('key') } }
17
+
18
+ field :value, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('value') } }
19
+
20
+
21
+ sig { params(key: T.nilable(String), value: T.nilable(String)).void }
22
+ def initialize(key: nil, value: nil)
23
+ @key = key
24
+ @value = value
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module SpeakeasyClientSDK
10
+ module Shared
11
+ # A Schema represents an API schema for a particular Api and Version.
12
+ class Schema < SpeakeasyClientSDK::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # The ID of the Api this Schema belongs to.
16
+ field :api_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('api_id') } }
17
+ # Creation timestamp.
18
+ field :created_at, DateTime, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('created_at'), 'decoder': Utils.datetime_from_iso_format(false) } }
19
+ # A detailed description of the Schema.
20
+ field :description, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('description') } }
21
+ # An ID referencing this particular revision of the Schema.
22
+ field :revision_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('revision_id') } }
23
+ # The version ID of the Api this Schema belongs to.
24
+ field :version_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('version_id') } }
25
+ # The workspace ID this Schema belongs to.
26
+ field :workspace_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('workspace_id') } }
27
+
28
+
29
+ sig { params(api_id: String, created_at: DateTime, description: String, revision_id: String, version_id: String, workspace_id: String).void }
30
+ def initialize(api_id: nil, created_at: nil, description: nil, revision_id: nil, version_id: nil, workspace_id: nil)
31
+ @api_id = api_id
32
+ @created_at = created_at
33
+ @description = description
34
+ @revision_id = revision_id
35
+ @version_id = version_id
36
+ @workspace_id = workspace_id
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,48 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module SpeakeasyClientSDK
10
+ module Shared
11
+
12
+ class SchemaDiffValueChange < SpeakeasyClientSDK::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Represents the previous value of the element.
16
+ field :from, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('From') } }
17
+ # Represents the current value of the element.
18
+ field :to, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('To') } }
19
+
20
+
21
+ sig { params(from: String, to: String).void }
22
+ def initialize(from: nil, to: nil)
23
+ @from = from
24
+ @to = to
25
+ end
26
+ end
27
+
28
+ # A SchemaDiff represents a diff of two Schemas.
29
+ class SchemaDiff < SpeakeasyClientSDK::Utils::FieldAugmented
30
+ extend T::Sig
31
+
32
+ # Holds every addition change in the diff.
33
+ field :additions, T::Array[String], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('additions') } }
34
+ # Holds every deletion change in the diff.
35
+ field :deletions, T::Array[String], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('deletions') } }
36
+ # Holds every modification change in the diff.
37
+ field :modifications, T::Hash[Symbol, Shared::SchemaDiffValueChange], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('modifications') } }
38
+
39
+
40
+ sig { params(additions: T::Array[String], deletions: T::Array[String], modifications: T::Hash[Symbol, Shared::SchemaDiffValueChange]).void }
41
+ def initialize(additions: nil, deletions: nil, modifications: nil)
42
+ @additions = additions
43
+ @deletions = deletions
44
+ @modifications = modifications
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,25 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module SpeakeasyClientSDK
10
+ module Shared
11
+
12
+ class Security < SpeakeasyClientSDK::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :api_key, String, { 'security': { 'scheme': true, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'x-api-key' } }
17
+
18
+
19
+ sig { params(api_key: String).void }
20
+ def initialize(api_key: nil)
21
+ @api_key = api_key
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,37 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module SpeakeasyClientSDK
10
+ module Shared
11
+ # An UnboundedRequest represents the HAR content capture by Speakeasy when logging a request.
12
+ class UnboundedRequest < SpeakeasyClientSDK::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Creation timestamp.
16
+ field :created_at, DateTime, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('created_at'), 'decoder': Utils.datetime_from_iso_format(false) } }
17
+ # The HAR content of the request.
18
+ field :har, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('har') } }
19
+ # The size of the HAR content in bytes.
20
+ field :har_size_bytes, Integer, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('har_size_bytes') } }
21
+ # The ID of this request.
22
+ field :request_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('request_id') } }
23
+ # The workspace ID this request was made to.
24
+ field :workspace_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('workspace_id') } }
25
+
26
+
27
+ sig { params(created_at: DateTime, har: String, har_size_bytes: Integer, request_id: String, workspace_id: String).void }
28
+ def initialize(created_at: nil, har: nil, har_size_bytes: nil, request_id: nil, workspace_id: nil)
29
+ @created_at = created_at
30
+ @har = har
31
+ @har_size_bytes = har_size_bytes
32
+ @request_id = request_id
33
+ @workspace_id = workspace_id
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,57 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module SpeakeasyClientSDK
10
+ module Shared
11
+ # A set of keys and associated values, attached to a particular version of an Api.
12
+ class VersionMetadataInput < SpeakeasyClientSDK::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # The key for this metadata.
16
+ field :meta_key, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('meta_key') } }
17
+ # One of the values for this metadata.
18
+ field :meta_value, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('meta_value') } }
19
+
20
+
21
+ sig { params(meta_key: String, meta_value: String).void }
22
+ def initialize(meta_key: nil, meta_value: nil)
23
+ @meta_key = meta_key
24
+ @meta_value = meta_value
25
+ end
26
+ end
27
+
28
+ # A set of keys and associated values, attached to a particular version of an Api.
29
+ class VersionMetadata < SpeakeasyClientSDK::Utils::FieldAugmented
30
+ extend T::Sig
31
+
32
+ # The ID of the Api this Metadata belongs to.
33
+ field :api_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('api_id') } }
34
+ # Creation timestamp.
35
+ field :created_at, DateTime, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('created_at'), 'decoder': Utils.datetime_from_iso_format(false) } }
36
+ # The key for this metadata.
37
+ field :meta_key, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('meta_key') } }
38
+ # One of the values for this metadata.
39
+ field :meta_value, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('meta_value') } }
40
+ # The version ID of the Api this Metadata belongs to.
41
+ field :version_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('version_id') } }
42
+ # The workspace ID this Metadata belongs to.
43
+ field :workspace_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('workspace_id') } }
44
+
45
+
46
+ sig { params(api_id: String, created_at: DateTime, meta_key: String, meta_value: String, version_id: String, workspace_id: String).void }
47
+ def initialize(api_id: nil, created_at: nil, meta_key: nil, meta_value: nil, version_id: nil, workspace_id: nil)
48
+ @api_id = api_id
49
+ @created_at = created_at
50
+ @meta_key = meta_key
51
+ @meta_value = meta_value
52
+ @version_id = version_id
53
+ @workspace_id = workspace_id
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,140 @@
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 Plugins
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 { returns(Utils::FieldAugmented) }
25
+ def get_plugins
26
+ # get_plugins - Get all plugins for the current workspace.
27
+ base_url = @server_url
28
+ url = "#{base_url.delete_suffix('/')}/v1/plugins"
29
+ headers = {}
30
+ headers['Accept'] = 'application/json;q=1, application/json;q=0'
31
+ headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
32
+
33
+ r = @client.get(url) do |req|
34
+ req.headers = headers
35
+ Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
36
+ end
37
+
38
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
39
+
40
+ res = Operations::GetPluginsResponse.new(
41
+ status_code: r.status, content_type: content_type, raw_response: r
42
+ )
43
+ if r.status == 200
44
+ if Utils.match_content_type(content_type, 'application/json')
45
+ out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::Plugin])
46
+ res.plugins = out
47
+ end
48
+ else
49
+ if Utils.match_content_type(content_type, 'application/json')
50
+ out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
51
+ res.error = out
52
+ end
53
+ end
54
+ res
55
+ end
56
+
57
+ sig { params(request: Operations::RunPluginRequest).returns(Utils::FieldAugmented) }
58
+ def run_plugin(request)
59
+ # run_plugin - Run a plugin
60
+ base_url = @server_url
61
+ url = Utils.generate_url(
62
+ Operations::RunPluginRequest,
63
+ base_url,
64
+ '/v1/plugins/{pluginID}',
65
+ request
66
+ )
67
+ headers = {}
68
+ query_params = Utils.get_query_params(Operations::RunPluginRequest, request)
69
+ headers['Accept'] = 'application/json;q=1, application/json;q=0'
70
+ headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
71
+
72
+ r = @client.post(url) do |req|
73
+ req.headers = headers
74
+ req.params = query_params
75
+ Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
76
+ end
77
+
78
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
79
+
80
+ res = Operations::RunPluginResponse.new(
81
+ status_code: r.status, content_type: content_type, raw_response: r
82
+ )
83
+ if r.status == 200
84
+ if Utils.match_content_type(content_type, 'application/json')
85
+ out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::BoundedRequest])
86
+ res.bounded_requests = out
87
+ end
88
+ else
89
+ if Utils.match_content_type(content_type, 'application/json')
90
+ out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
91
+ res.error = out
92
+ end
93
+ end
94
+ res
95
+ end
96
+
97
+ sig { params(request: Shared::Plugin).returns(Utils::FieldAugmented) }
98
+ def upsert_plugin(request)
99
+ # upsert_plugin - Upsert a plugin
100
+ base_url = @server_url
101
+ url = "#{base_url.delete_suffix('/')}/v1/plugins"
102
+ headers = {}
103
+ req_content_type, data, form = Utils.serialize_request_body(request, :request, :json)
104
+ headers['content-type'] = req_content_type
105
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
106
+ headers['Accept'] = 'application/json;q=1, application/json;q=0'
107
+ headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
108
+
109
+ r = @client.put(url) do |req|
110
+ req.headers = headers
111
+ Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
112
+ if form
113
+ req.body = Utils.encode_form(form)
114
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
115
+ req.body = URI.encode_www_form(data)
116
+ else
117
+ req.body = data
118
+ end
119
+ end
120
+
121
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
122
+
123
+ res = Operations::UpsertPluginResponse.new(
124
+ status_code: r.status, content_type: content_type, raw_response: r
125
+ )
126
+ if r.status == 200
127
+ if Utils.match_content_type(content_type, 'application/json')
128
+ out = Utils.unmarshal_complex(r.env.response_body, Shared::Plugin)
129
+ res.plugin = out
130
+ end
131
+ else
132
+ if Utils.match_content_type(content_type, 'application/json')
133
+ out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
134
+ res.error = out
135
+ end
136
+ end
137
+ res
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,136 @@
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 Requests
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::GenerateRequestPostmanCollectionRequest).returns(Utils::FieldAugmented) }
25
+ def generate_request_postman_collection(request)
26
+ # generate_request_postman_collection - Generate a Postman collection for a particular request.
27
+ # Generates a Postman collection for a particular request.
28
+ # Allowing it to be replayed with the same inputs that were captured by the SDK.
29
+ base_url = @server_url
30
+ url = Utils.generate_url(
31
+ Operations::GenerateRequestPostmanCollectionRequest,
32
+ base_url,
33
+ '/v1/eventlog/{requestID}/generate/postman',
34
+ request
35
+ )
36
+ headers = {}
37
+ headers['Accept'] = 'application/json;q=1, application/octet-stream;q=0'
38
+ headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
39
+
40
+ r = @client.get(url) do |req|
41
+ req.headers = headers
42
+ Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
43
+ end
44
+
45
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
46
+
47
+ res = Operations::GenerateRequestPostmanCollectionResponse.new(
48
+ status_code: r.status, content_type: content_type, raw_response: r
49
+ )
50
+ if r.status == 200
51
+ res.postman_collection = r.env.response_body if Utils.match_content_type(content_type, 'application/octet-stream')
52
+ else
53
+ if Utils.match_content_type(content_type, 'application/json')
54
+ out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
55
+ res.error = out
56
+ end
57
+ end
58
+ res
59
+ end
60
+
61
+ sig { params(request: Operations::GetRequestFromEventLogRequest).returns(Utils::FieldAugmented) }
62
+ def get_request_from_event_log(request)
63
+ # get_request_from_event_log - Get information about a particular request.
64
+ base_url = @server_url
65
+ url = Utils.generate_url(
66
+ Operations::GetRequestFromEventLogRequest,
67
+ base_url,
68
+ '/v1/eventlog/{requestID}',
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::GetRequestFromEventLogResponse.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::UnboundedRequest)
88
+ res.unbounded_request = 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::QueryEventLogRequest).returns(Utils::FieldAugmented) }
100
+ def query_event_log(request)
101
+ # query_event_log - Query the event log to retrieve a list of requests.
102
+ # Supports retrieving a list of request captured by the SDK for this workspace.
103
+ # Allows the filtering of requests on a number of criteria such as ApiID, VersionID, Path, Method, etc.
104
+ base_url = @server_url
105
+ url = "#{base_url.delete_suffix('/')}/v1/eventlog/query"
106
+ headers = {}
107
+ query_params = Utils.get_query_params(Operations::QueryEventLogRequest, request)
108
+ headers['Accept'] = 'application/json;q=1, application/json;q=0'
109
+ headers['user-agent'] = "speakeasy-sdk/#{@language} #{@sdk_version} #{@gen_version}"
110
+
111
+ r = @client.get(url) do |req|
112
+ req.headers = headers
113
+ req.params = query_params
114
+ Utils.configure_request_security(req, @sdk.security) if !@sdk.nil? && !@sdk.security.nil?
115
+ end
116
+
117
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
118
+
119
+ res = Operations::QueryEventLogResponse.new(
120
+ status_code: r.status, content_type: content_type, raw_response: r
121
+ )
122
+ if r.status == 200
123
+ if Utils.match_content_type(content_type, 'application/json')
124
+ out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::BoundedRequest])
125
+ res.bounded_requests = out
126
+ end
127
+ else
128
+ if Utils.match_content_type(content_type, 'application/json')
129
+ out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
130
+ res.error = out
131
+ end
132
+ end
133
+ res
134
+ end
135
+ end
136
+ end