context.dev 0.0.2

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 (194) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +10 -0
  4. data/README.md +244 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/context_dev/client.rb +74 -0
  7. data/lib/context_dev/errors.rb +228 -0
  8. data/lib/context_dev/file_part.rb +58 -0
  9. data/lib/context_dev/internal/transport/base_client.rb +573 -0
  10. data/lib/context_dev/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/context_dev/internal/type/array_of.rb +168 -0
  12. data/lib/context_dev/internal/type/base_model.rb +531 -0
  13. data/lib/context_dev/internal/type/base_page.rb +55 -0
  14. data/lib/context_dev/internal/type/boolean.rb +77 -0
  15. data/lib/context_dev/internal/type/converter.rb +327 -0
  16. data/lib/context_dev/internal/type/enum.rb +131 -0
  17. data/lib/context_dev/internal/type/file_input.rb +111 -0
  18. data/lib/context_dev/internal/type/hash_of.rb +188 -0
  19. data/lib/context_dev/internal/type/request_parameters.rb +42 -0
  20. data/lib/context_dev/internal/type/union.rb +237 -0
  21. data/lib/context_dev/internal/type/unknown.rb +81 -0
  22. data/lib/context_dev/internal/util.rb +951 -0
  23. data/lib/context_dev/internal.rb +20 -0
  24. data/lib/context_dev/models/brand_ai_product_params.rb +34 -0
  25. data/lib/context_dev/models/brand_ai_product_response.rb +193 -0
  26. data/lib/context_dev/models/brand_ai_products_params.rb +94 -0
  27. data/lib/context_dev/models/brand_ai_products_response.rb +160 -0
  28. data/lib/context_dev/models/brand_ai_query_params.rb +236 -0
  29. data/lib/context_dev/models/brand_ai_query_response.rb +98 -0
  30. data/lib/context_dev/models/brand_fonts_params.rb +36 -0
  31. data/lib/context_dev/models/brand_fonts_response.rb +100 -0
  32. data/lib/context_dev/models/brand_identify_from_transaction_params.rb +407 -0
  33. data/lib/context_dev/models/brand_identify_from_transaction_response.rb +854 -0
  34. data/lib/context_dev/models/brand_prefetch_by_email_params.rb +37 -0
  35. data/lib/context_dev/models/brand_prefetch_by_email_response.rb +33 -0
  36. data/lib/context_dev/models/brand_prefetch_params.rb +35 -0
  37. data/lib/context_dev/models/brand_prefetch_response.rb +33 -0
  38. data/lib/context_dev/models/brand_retrieve_by_email_params.rb +116 -0
  39. data/lib/context_dev/models/brand_retrieve_by_email_response.rb +851 -0
  40. data/lib/context_dev/models/brand_retrieve_by_isin_params.rb +116 -0
  41. data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +850 -0
  42. data/lib/context_dev/models/brand_retrieve_by_name_params.rb +115 -0
  43. data/lib/context_dev/models/brand_retrieve_by_name_response.rb +850 -0
  44. data/lib/context_dev/models/brand_retrieve_by_ticker_params.rb +204 -0
  45. data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +852 -0
  46. data/lib/context_dev/models/brand_retrieve_naics_params.rb +54 -0
  47. data/lib/context_dev/models/brand_retrieve_naics_response.rb +83 -0
  48. data/lib/context_dev/models/brand_retrieve_params.rb +117 -0
  49. data/lib/context_dev/models/brand_retrieve_response.rb +850 -0
  50. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +35 -0
  51. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +307 -0
  52. data/lib/context_dev/models/brand_screenshot_params.rb +103 -0
  53. data/lib/context_dev/models/brand_screenshot_response.rb +64 -0
  54. data/lib/context_dev/models/brand_styleguide_params.rb +70 -0
  55. data/lib/context_dev/models/brand_styleguide_response.rb +790 -0
  56. data/lib/context_dev/models/brand_web_scrape_html_params.rb +22 -0
  57. data/lib/context_dev/models/brand_web_scrape_html_response.rb +45 -0
  58. data/lib/context_dev/models/brand_web_scrape_images_params.rb +22 -0
  59. data/lib/context_dev/models/brand_web_scrape_images_response.rb +111 -0
  60. data/lib/context_dev/models/brand_web_scrape_md_params.rb +50 -0
  61. data/lib/context_dev/models/brand_web_scrape_md_response.rb +45 -0
  62. data/lib/context_dev/models/brand_web_scrape_sitemap_params.rb +26 -0
  63. data/lib/context_dev/models/brand_web_scrape_sitemap_response.rb +91 -0
  64. data/lib/context_dev/models.rb +81 -0
  65. data/lib/context_dev/request_options.rb +77 -0
  66. data/lib/context_dev/resources/brand.rb +654 -0
  67. data/lib/context_dev/version.rb +5 -0
  68. data/lib/context_dev.rb +96 -0
  69. data/manifest.yaml +17 -0
  70. data/rbi/context_dev/client.rbi +49 -0
  71. data/rbi/context_dev/errors.rbi +205 -0
  72. data/rbi/context_dev/file_part.rbi +37 -0
  73. data/rbi/context_dev/internal/transport/base_client.rbi +300 -0
  74. data/rbi/context_dev/internal/transport/pooled_net_requester.rbi +84 -0
  75. data/rbi/context_dev/internal/type/array_of.rbi +104 -0
  76. data/rbi/context_dev/internal/type/base_model.rbi +308 -0
  77. data/rbi/context_dev/internal/type/base_page.rbi +42 -0
  78. data/rbi/context_dev/internal/type/boolean.rbi +58 -0
  79. data/rbi/context_dev/internal/type/converter.rbi +216 -0
  80. data/rbi/context_dev/internal/type/enum.rbi +82 -0
  81. data/rbi/context_dev/internal/type/file_input.rbi +59 -0
  82. data/rbi/context_dev/internal/type/hash_of.rbi +104 -0
  83. data/rbi/context_dev/internal/type/request_parameters.rbi +29 -0
  84. data/rbi/context_dev/internal/type/union.rbi +128 -0
  85. data/rbi/context_dev/internal/type/unknown.rbi +58 -0
  86. data/rbi/context_dev/internal/util.rbi +507 -0
  87. data/rbi/context_dev/internal.rbi +18 -0
  88. data/rbi/context_dev/models/brand_ai_product_params.rbi +56 -0
  89. data/rbi/context_dev/models/brand_ai_product_response.rbi +380 -0
  90. data/rbi/context_dev/models/brand_ai_products_params.rbi +188 -0
  91. data/rbi/context_dev/models/brand_ai_products_response.rbi +310 -0
  92. data/rbi/context_dev/models/brand_ai_query_params.rbi +504 -0
  93. data/rbi/context_dev/models/brand_ai_query_response.rbi +205 -0
  94. data/rbi/context_dev/models/brand_fonts_params.rbi +60 -0
  95. data/rbi/context_dev/models/brand_fonts_response.rbi +147 -0
  96. data/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +1682 -0
  97. data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +2595 -0
  98. data/rbi/context_dev/models/brand_prefetch_by_email_params.rbi +65 -0
  99. data/rbi/context_dev/models/brand_prefetch_by_email_response.rbi +57 -0
  100. data/rbi/context_dev/models/brand_prefetch_params.rbi +58 -0
  101. data/rbi/context_dev/models/brand_prefetch_response.rbi +57 -0
  102. data/rbi/context_dev/models/brand_retrieve_by_email_params.rbi +386 -0
  103. data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +2591 -0
  104. data/rbi/context_dev/models/brand_retrieve_by_isin_params.rbi +386 -0
  105. data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +2590 -0
  106. data/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +384 -0
  107. data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +2590 -0
  108. data/rbi/context_dev/models/brand_retrieve_by_ticker_params.rbi +796 -0
  109. data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +2592 -0
  110. data/rbi/context_dev/models/brand_retrieve_naics_params.rbi +89 -0
  111. data/rbi/context_dev/models/brand_retrieve_naics_response.rbi +190 -0
  112. data/rbi/context_dev/models/brand_retrieve_params.rbi +382 -0
  113. data/rbi/context_dev/models/brand_retrieve_response.rbi +2574 -0
  114. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +61 -0
  115. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +763 -0
  116. data/rbi/context_dev/models/brand_screenshot_params.rbi +225 -0
  117. data/rbi/context_dev/models/brand_screenshot_response.rbi +135 -0
  118. data/rbi/context_dev/models/brand_styleguide_params.rbi +139 -0
  119. data/rbi/context_dev/models/brand_styleguide_response.rbi +1707 -0
  120. data/rbi/context_dev/models/brand_web_scrape_html_params.rbi +43 -0
  121. data/rbi/context_dev/models/brand_web_scrape_html_response.rbi +92 -0
  122. data/rbi/context_dev/models/brand_web_scrape_images_params.rbi +43 -0
  123. data/rbi/context_dev/models/brand_web_scrape_images_response.rbi +261 -0
  124. data/rbi/context_dev/models/brand_web_scrape_md_params.rbi +81 -0
  125. data/rbi/context_dev/models/brand_web_scrape_md_response.rbi +92 -0
  126. data/rbi/context_dev/models/brand_web_scrape_sitemap_params.rbi +45 -0
  127. data/rbi/context_dev/models/brand_web_scrape_sitemap_response.rbi +167 -0
  128. data/rbi/context_dev/models.rbi +45 -0
  129. data/rbi/context_dev/request_options.rbi +59 -0
  130. data/rbi/context_dev/resources/brand.rbi +545 -0
  131. data/rbi/context_dev/version.rbi +5 -0
  132. data/sig/context_dev/client.rbs +26 -0
  133. data/sig/context_dev/errors.rbs +117 -0
  134. data/sig/context_dev/file_part.rbs +21 -0
  135. data/sig/context_dev/internal/transport/base_client.rbs +133 -0
  136. data/sig/context_dev/internal/transport/pooled_net_requester.rbs +48 -0
  137. data/sig/context_dev/internal/type/array_of.rbs +48 -0
  138. data/sig/context_dev/internal/type/base_model.rbs +102 -0
  139. data/sig/context_dev/internal/type/base_page.rbs +24 -0
  140. data/sig/context_dev/internal/type/boolean.rbs +26 -0
  141. data/sig/context_dev/internal/type/converter.rbs +79 -0
  142. data/sig/context_dev/internal/type/enum.rbs +32 -0
  143. data/sig/context_dev/internal/type/file_input.rbs +25 -0
  144. data/sig/context_dev/internal/type/hash_of.rbs +48 -0
  145. data/sig/context_dev/internal/type/request_parameters.rbs +19 -0
  146. data/sig/context_dev/internal/type/union.rbs +52 -0
  147. data/sig/context_dev/internal/type/unknown.rbs +26 -0
  148. data/sig/context_dev/internal/util.rbs +195 -0
  149. data/sig/context_dev/internal.rbs +9 -0
  150. data/sig/context_dev/models/brand_ai_product_params.rbs +30 -0
  151. data/sig/context_dev/models/brand_ai_product_response.rbs +149 -0
  152. data/sig/context_dev/models/brand_ai_products_params.rbs +88 -0
  153. data/sig/context_dev/models/brand_ai_products_response.rbs +128 -0
  154. data/sig/context_dev/models/brand_ai_query_params.rbs +218 -0
  155. data/sig/context_dev/models/brand_ai_query_response.rbs +93 -0
  156. data/sig/context_dev/models/brand_fonts_params.rbs +30 -0
  157. data/sig/context_dev/models/brand_fonts_response.rbs +82 -0
  158. data/sig/context_dev/models/brand_identify_from_transaction_params.rbs +686 -0
  159. data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +1076 -0
  160. data/sig/context_dev/models/brand_prefetch_by_email_params.rbs +30 -0
  161. data/sig/context_dev/models/brand_prefetch_by_email_response.rbs +28 -0
  162. data/sig/context_dev/models/brand_prefetch_params.rbs +30 -0
  163. data/sig/context_dev/models/brand_prefetch_response.rbs +28 -0
  164. data/sig/context_dev/models/brand_retrieve_by_email_params.rbs +162 -0
  165. data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +1076 -0
  166. data/sig/context_dev/models/brand_retrieve_by_isin_params.rbs +162 -0
  167. data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +1076 -0
  168. data/sig/context_dev/models/brand_retrieve_by_name_params.rbs +162 -0
  169. data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +1076 -0
  170. data/sig/context_dev/models/brand_retrieve_by_ticker_params.rbs +324 -0
  171. data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +1076 -0
  172. data/sig/context_dev/models/brand_retrieve_naics_params.rbs +47 -0
  173. data/sig/context_dev/models/brand_retrieve_naics_response.rbs +84 -0
  174. data/sig/context_dev/models/brand_retrieve_params.rbs +162 -0
  175. data/sig/context_dev/models/brand_retrieve_response.rbs +1076 -0
  176. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +30 -0
  177. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +312 -0
  178. data/sig/context_dev/models/brand_screenshot_params.rbs +100 -0
  179. data/sig/context_dev/models/brand_screenshot_response.rbs +63 -0
  180. data/sig/context_dev/models/brand_styleguide_params.rbs +62 -0
  181. data/sig/context_dev/models/brand_styleguide_response.rbs +945 -0
  182. data/sig/context_dev/models/brand_web_scrape_html_params.rbs +23 -0
  183. data/sig/context_dev/models/brand_web_scrape_html_response.rbs +40 -0
  184. data/sig/context_dev/models/brand_web_scrape_images_params.rbs +23 -0
  185. data/sig/context_dev/models/brand_web_scrape_images_response.rbs +98 -0
  186. data/sig/context_dev/models/brand_web_scrape_md_params.rbs +47 -0
  187. data/sig/context_dev/models/brand_web_scrape_md_response.rbs +40 -0
  188. data/sig/context_dev/models/brand_web_scrape_sitemap_params.rbs +23 -0
  189. data/sig/context_dev/models/brand_web_scrape_sitemap_response.rbs +77 -0
  190. data/sig/context_dev/models.rbs +41 -0
  191. data/sig/context_dev/request_options.rbs +36 -0
  192. data/sig/context_dev/resources/brand.rbs +151 -0
  193. data/sig/context_dev/version.rbs +3 -0
  194. metadata +265 -0
@@ -0,0 +1,195 @@
1
+ module ContextDev
2
+ module Internal
3
+ module Util
4
+ extend ContextDev::Internal::Util::SorbetRuntimeSupport
5
+
6
+ def self?.monotonic_secs: -> Float
7
+
8
+ def self?.walk_namespaces: (
9
+ Module | Class ns
10
+ ) -> Enumerable[(Module | Class)]
11
+
12
+ def self?.arch: -> String
13
+
14
+ def self?.os: -> String
15
+
16
+ def self?.primitive?: (top input) -> bool
17
+
18
+ def self?.coerce_boolean: (String | bool input) -> (bool | top)
19
+
20
+ def self?.coerce_boolean!: (String | bool input) -> bool?
21
+
22
+ def self?.coerce_integer: (String | Integer input) -> (Integer | top)
23
+
24
+ def self?.coerce_float: (String | Integer | Float input) -> (Float | top)
25
+
26
+ def self?.coerce_hash: (top input) -> (::Hash[top, top] | top)
27
+
28
+ def self?.coerce_hash!: (top input) -> ::Hash[top, top]?
29
+
30
+ def self?.deep_merge_lr: (top lhs, top rhs, ?concat: bool) -> top
31
+
32
+ def self?.deep_merge: (
33
+ *::Array[top] values,
34
+ ?sentinel: top?,
35
+ ?concat: bool
36
+ ) -> top
37
+
38
+ def self?.dig: (
39
+ ::Hash[Symbol, top] | ::Array[top] | top data,
40
+ (Symbol
41
+ | Integer
42
+ | ::Array[(Symbol | Integer)]
43
+ | (^(top arg0) -> top))? pick
44
+ ) {
45
+ -> top?
46
+ } -> top?
47
+
48
+ def self?.uri_origin: (URI::Generic uri) -> String
49
+
50
+ def self?.interpolate_path: (String | ::Array[String] path) -> String
51
+
52
+ def self?.decode_query: (String? query) -> ::Hash[String, ::Array[String]]
53
+
54
+ def self?.encode_query: (
55
+ ::Hash[String, (::Array[String] | String)?]? query
56
+ ) -> String?
57
+
58
+ type parsed_uri =
59
+ {
60
+ scheme: String?,
61
+ host: String?,
62
+ port: Integer?,
63
+ path: String?,
64
+ query: ::Hash[String, ::Array[String]]
65
+ }
66
+
67
+ def self?.parse_uri: (
68
+ URI::Generic | String url
69
+ ) -> ContextDev::Internal::Util::parsed_uri
70
+
71
+ def self?.unparse_uri: (
72
+ ContextDev::Internal::Util::parsed_uri parsed
73
+ ) -> URI::Generic
74
+
75
+ def self?.join_parsed_uri: (
76
+ ContextDev::Internal::Util::parsed_uri lhs,
77
+ ContextDev::Internal::Util::parsed_uri rhs
78
+ ) -> URI::Generic
79
+
80
+ def self?.normalized_headers: (
81
+ *::Hash[String, (String
82
+ | Integer
83
+ | ::Array[(String | Integer)?])?] headers
84
+ ) -> ::Hash[String, String]
85
+
86
+ class ReadIOAdapter
87
+ def close?: -> bool?
88
+
89
+ def close: -> void
90
+
91
+ private def read_enum: (Integer? max_len) -> String
92
+
93
+ def read: (?Integer? max_len, ?String? out_string) -> String?
94
+
95
+ def initialize: (
96
+ String | Pathname | StringIO | Enumerable[String] src
97
+ ) {
98
+ (String arg0) -> void
99
+ } -> void
100
+ end
101
+
102
+ def self?.writable_enum: {
103
+ (Enumerator::Yielder y) -> void
104
+ } -> Enumerable[String]
105
+
106
+ JSON_CONTENT: Regexp
107
+ JSONL_CONTENT: Regexp
108
+
109
+ def encode_query_params: (
110
+ ::Hash[Symbol, top] query
111
+ ) -> ::Hash[Symbol, top]
112
+
113
+ private def write_query_param_element!: (
114
+ ::Hash[Symbol, top] collection,
115
+ String key,
116
+ top element
117
+ ) -> nil
118
+
119
+ def self?.write_multipart_content: (
120
+ Enumerator::Yielder y,
121
+ val: top,
122
+ closing: ::Array[^-> void],
123
+ ?content_type: String?
124
+ ) -> void
125
+
126
+ def self?.write_multipart_chunk: (
127
+ Enumerator::Yielder y,
128
+ boundary: String,
129
+ key: Symbol | String,
130
+ val: top,
131
+ closing: ::Array[^-> void]
132
+ ) -> void
133
+
134
+ def self?.encode_multipart_streaming: (
135
+ top body
136
+ ) -> [String, Enumerable[String]]
137
+
138
+ def self?.encode_content: (
139
+ ::Hash[String, String] headers,
140
+ top body
141
+ ) -> top
142
+
143
+ def self?.force_charset!: (String content_type, text: String) -> void
144
+
145
+ def self?.decode_content: (
146
+ ::Hash[String, String] headers,
147
+ stream: Enumerable[String],
148
+ ?suppress_error: bool
149
+ ) -> top
150
+
151
+ def self?.fused_enum: (
152
+ Enumerable[top] enum,
153
+ ?external: bool
154
+ ) {
155
+ -> void
156
+ } -> Enumerable[top]
157
+
158
+ def self?.close_fused!: (Enumerable[top]? enum) -> void
159
+
160
+ def self?.chain_fused: (
161
+ Enumerable[top]? enum
162
+ ) {
163
+ (Enumerator::Yielder arg0) -> void
164
+ } -> Enumerable[top]
165
+
166
+ type server_sent_event =
167
+ { event: String?, data: String?, id: String?, retry: Integer? }
168
+
169
+ def self?.decode_lines: (Enumerable[String] enum) -> Enumerable[String]
170
+
171
+ def self?.decode_sse: (
172
+ Enumerable[String] lines
173
+ ) -> Enumerable[ContextDev::Internal::Util::server_sent_event]
174
+
175
+ module SorbetRuntimeSupport
176
+ class MissingSorbetRuntimeError < ::RuntimeError
177
+ end
178
+
179
+ private def sorbet_runtime_constants: -> ::Hash[Symbol, top]
180
+
181
+ def const_missing: (Symbol name) -> void
182
+
183
+ def sorbet_constant_defined?: (Symbol name) -> bool
184
+
185
+ def define_sorbet_constant!: (Symbol name) { -> top } -> void
186
+
187
+ def to_sorbet_type: -> top
188
+
189
+ def self.to_sorbet_type: (
190
+ ContextDev::Internal::Util::SorbetRuntimeSupport | top `type`
191
+ ) -> top
192
+ end
193
+ end
194
+ end
195
+ end
@@ -0,0 +1,9 @@
1
+ module ContextDev
2
+ module Internal
3
+ extend ContextDev::Internal::Util::SorbetRuntimeSupport
4
+
5
+ type file_input = Pathname | StringIO | IO | String | ContextDev::FilePart
6
+
7
+ OMIT: Object
8
+ end
9
+ end
@@ -0,0 +1,30 @@
1
+ module ContextDev
2
+ module Models
3
+ type brand_ai_product_params =
4
+ { url: String, timeout_ms: Integer }
5
+ & ContextDev::Internal::Type::request_parameters
6
+
7
+ class BrandAIProductParams < ContextDev::Internal::Type::BaseModel
8
+ extend ContextDev::Internal::Type::RequestParameters::Converter
9
+ include ContextDev::Internal::Type::RequestParameters
10
+
11
+ attr_accessor url: String
12
+
13
+ attr_reader timeout_ms: Integer?
14
+
15
+ def timeout_ms=: (Integer) -> Integer
16
+
17
+ def initialize: (
18
+ url: String,
19
+ ?timeout_ms: Integer,
20
+ ?request_options: ContextDev::request_opts
21
+ ) -> void
22
+
23
+ def to_hash: -> {
24
+ url: String,
25
+ timeout_ms: Integer,
26
+ request_options: ContextDev::RequestOptions
27
+ }
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,149 @@
1
+ module ContextDev
2
+ module Models
3
+ type brand_ai_product_response =
4
+ {
5
+ is_product_page: bool,
6
+ platform: ContextDev::Models::BrandAIProductResponse::platform?,
7
+ product: ContextDev::Models::BrandAIProductResponse::Product?
8
+ }
9
+
10
+ class BrandAIProductResponse < ContextDev::Internal::Type::BaseModel
11
+ attr_reader is_product_page: bool?
12
+
13
+ def is_product_page=: (bool) -> bool
14
+
15
+ attr_accessor platform: ContextDev::Models::BrandAIProductResponse::platform?
16
+
17
+ attr_accessor product: ContextDev::Models::BrandAIProductResponse::Product?
18
+
19
+ def initialize: (
20
+ ?is_product_page: bool,
21
+ ?platform: ContextDev::Models::BrandAIProductResponse::platform?,
22
+ ?product: ContextDev::Models::BrandAIProductResponse::Product?
23
+ ) -> void
24
+
25
+ def to_hash: -> {
26
+ is_product_page: bool,
27
+ platform: ContextDev::Models::BrandAIProductResponse::platform?,
28
+ product: ContextDev::Models::BrandAIProductResponse::Product?
29
+ }
30
+
31
+ type platform = :amazon | :tiktok_shop | :etsy | :generic
32
+
33
+ module Platform
34
+ extend ContextDev::Internal::Type::Enum
35
+
36
+ AMAZON: :amazon
37
+ TIKTOK_SHOP: :tiktok_shop
38
+ ETSY: :etsy
39
+ GENERIC: :generic
40
+
41
+ def self?.values: -> ::Array[ContextDev::Models::BrandAIProductResponse::platform]
42
+ end
43
+
44
+ type product =
45
+ {
46
+ description: String,
47
+ features: ::Array[String],
48
+ images: ::Array[String],
49
+ name: String,
50
+ tags: ::Array[String],
51
+ target_audience: ::Array[String],
52
+ billing_frequency: ContextDev::Models::BrandAIProductResponse::Product::billing_frequency?,
53
+ category: String?,
54
+ currency: String?,
55
+ image_url: String?,
56
+ price: Float?,
57
+ pricing_model: ContextDev::Models::BrandAIProductResponse::Product::pricing_model?,
58
+ url: String?
59
+ }
60
+
61
+ class Product < ContextDev::Internal::Type::BaseModel
62
+ attr_accessor description: String
63
+
64
+ attr_accessor features: ::Array[String]
65
+
66
+ attr_accessor images: ::Array[String]
67
+
68
+ attr_accessor name: String
69
+
70
+ attr_accessor tags: ::Array[String]
71
+
72
+ attr_accessor target_audience: ::Array[String]
73
+
74
+ attr_accessor billing_frequency: ContextDev::Models::BrandAIProductResponse::Product::billing_frequency?
75
+
76
+ attr_accessor category: String?
77
+
78
+ attr_accessor currency: String?
79
+
80
+ attr_accessor image_url: String?
81
+
82
+ attr_accessor price: Float?
83
+
84
+ attr_accessor pricing_model: ContextDev::Models::BrandAIProductResponse::Product::pricing_model?
85
+
86
+ attr_accessor url: String?
87
+
88
+ def initialize: (
89
+ description: String,
90
+ features: ::Array[String],
91
+ images: ::Array[String],
92
+ name: String,
93
+ tags: ::Array[String],
94
+ target_audience: ::Array[String],
95
+ ?billing_frequency: ContextDev::Models::BrandAIProductResponse::Product::billing_frequency?,
96
+ ?category: String?,
97
+ ?currency: String?,
98
+ ?image_url: String?,
99
+ ?price: Float?,
100
+ ?pricing_model: ContextDev::Models::BrandAIProductResponse::Product::pricing_model?,
101
+ ?url: String?
102
+ ) -> void
103
+
104
+ def to_hash: -> {
105
+ description: String,
106
+ features: ::Array[String],
107
+ images: ::Array[String],
108
+ name: String,
109
+ tags: ::Array[String],
110
+ target_audience: ::Array[String],
111
+ billing_frequency: ContextDev::Models::BrandAIProductResponse::Product::billing_frequency?,
112
+ category: String?,
113
+ currency: String?,
114
+ image_url: String?,
115
+ price: Float?,
116
+ pricing_model: ContextDev::Models::BrandAIProductResponse::Product::pricing_model?,
117
+ url: String?
118
+ }
119
+
120
+ type billing_frequency = :monthly | :yearly | :one_time | :usage_based
121
+
122
+ module BillingFrequency
123
+ extend ContextDev::Internal::Type::Enum
124
+
125
+ MONTHLY: :monthly
126
+ YEARLY: :yearly
127
+ ONE_TIME: :one_time
128
+ USAGE_BASED: :usage_based
129
+
130
+ def self?.values: -> ::Array[ContextDev::Models::BrandAIProductResponse::Product::billing_frequency]
131
+ end
132
+
133
+ type pricing_model = :per_seat | :flat | :tiered | :freemium | :custom
134
+
135
+ module PricingModel
136
+ extend ContextDev::Internal::Type::Enum
137
+
138
+ PER_SEAT: :per_seat
139
+ FLAT: :flat
140
+ TIERED: :tiered
141
+ FREEMIUM: :freemium
142
+ CUSTOM: :custom
143
+
144
+ def self?.values: -> ::Array[ContextDev::Models::BrandAIProductResponse::Product::pricing_model]
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,88 @@
1
+ module ContextDev
2
+ module Models
3
+ type brand_ai_products_params =
4
+ { body: ContextDev::Models::BrandAIProductsParams::body }
5
+ & ContextDev::Internal::Type::request_parameters
6
+
7
+ class BrandAIProductsParams < ContextDev::Internal::Type::BaseModel
8
+ extend ContextDev::Internal::Type::RequestParameters::Converter
9
+ include ContextDev::Internal::Type::RequestParameters
10
+
11
+ attr_accessor body: ContextDev::Models::BrandAIProductsParams::body
12
+
13
+ def initialize: (
14
+ body: ContextDev::Models::BrandAIProductsParams::body,
15
+ ?request_options: ContextDev::request_opts
16
+ ) -> void
17
+
18
+ def to_hash: -> {
19
+ body: ContextDev::Models::BrandAIProductsParams::body,
20
+ request_options: ContextDev::RequestOptions
21
+ }
22
+
23
+ type body =
24
+ ContextDev::BrandAIProductsParams::Body::ByDomain
25
+ | ContextDev::BrandAIProductsParams::Body::ByDirectURL
26
+
27
+ module Body
28
+ extend ContextDev::Internal::Type::Union
29
+
30
+ type by_domain =
31
+ { domain: String, max_products: Integer, timeout_ms: Integer }
32
+
33
+ class ByDomain < ContextDev::Internal::Type::BaseModel
34
+ attr_accessor domain: String
35
+
36
+ attr_reader max_products: Integer?
37
+
38
+ def max_products=: (Integer) -> Integer
39
+
40
+ attr_reader timeout_ms: Integer?
41
+
42
+ def timeout_ms=: (Integer) -> Integer
43
+
44
+ def initialize: (
45
+ domain: String,
46
+ ?max_products: Integer,
47
+ ?timeout_ms: Integer
48
+ ) -> void
49
+
50
+ def to_hash: -> {
51
+ domain: String,
52
+ max_products: Integer,
53
+ timeout_ms: Integer
54
+ }
55
+ end
56
+
57
+ type by_direct_url =
58
+ { direct_url: String, max_products: Integer, timeout_ms: Integer }
59
+
60
+ class ByDirectURL < ContextDev::Internal::Type::BaseModel
61
+ attr_accessor direct_url: String
62
+
63
+ attr_reader max_products: Integer?
64
+
65
+ def max_products=: (Integer) -> Integer
66
+
67
+ attr_reader timeout_ms: Integer?
68
+
69
+ def timeout_ms=: (Integer) -> Integer
70
+
71
+ def initialize: (
72
+ direct_url: String,
73
+ ?max_products: Integer,
74
+ ?timeout_ms: Integer
75
+ ) -> void
76
+
77
+ def to_hash: -> {
78
+ direct_url: String,
79
+ max_products: Integer,
80
+ timeout_ms: Integer
81
+ }
82
+ end
83
+
84
+ def self?.variants: -> ::Array[ContextDev::Models::BrandAIProductsParams::body]
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,128 @@
1
+ module ContextDev
2
+ module Models
3
+ type brand_ai_products_response =
4
+ {
5
+ products: ::Array[ContextDev::Models::BrandAIProductsResponse::Product]
6
+ }
7
+
8
+ class BrandAIProductsResponse < ContextDev::Internal::Type::BaseModel
9
+ attr_reader products: ::Array[ContextDev::Models::BrandAIProductsResponse::Product]?
10
+
11
+ def products=: (
12
+ ::Array[ContextDev::Models::BrandAIProductsResponse::Product]
13
+ ) -> ::Array[ContextDev::Models::BrandAIProductsResponse::Product]
14
+
15
+ def initialize: (
16
+ ?products: ::Array[ContextDev::Models::BrandAIProductsResponse::Product]
17
+ ) -> void
18
+
19
+ def to_hash: -> {
20
+ products: ::Array[ContextDev::Models::BrandAIProductsResponse::Product]
21
+ }
22
+
23
+ type product =
24
+ {
25
+ description: String,
26
+ features: ::Array[String],
27
+ images: ::Array[String],
28
+ name: String,
29
+ tags: ::Array[String],
30
+ target_audience: ::Array[String],
31
+ billing_frequency: ContextDev::Models::BrandAIProductsResponse::Product::billing_frequency?,
32
+ category: String?,
33
+ currency: String?,
34
+ image_url: String?,
35
+ price: Float?,
36
+ pricing_model: ContextDev::Models::BrandAIProductsResponse::Product::pricing_model?,
37
+ url: String?
38
+ }
39
+
40
+ class Product < ContextDev::Internal::Type::BaseModel
41
+ attr_accessor description: String
42
+
43
+ attr_accessor features: ::Array[String]
44
+
45
+ attr_accessor images: ::Array[String]
46
+
47
+ attr_accessor name: String
48
+
49
+ attr_accessor tags: ::Array[String]
50
+
51
+ attr_accessor target_audience: ::Array[String]
52
+
53
+ attr_accessor billing_frequency: ContextDev::Models::BrandAIProductsResponse::Product::billing_frequency?
54
+
55
+ attr_accessor category: String?
56
+
57
+ attr_accessor currency: String?
58
+
59
+ attr_accessor image_url: String?
60
+
61
+ attr_accessor price: Float?
62
+
63
+ attr_accessor pricing_model: ContextDev::Models::BrandAIProductsResponse::Product::pricing_model?
64
+
65
+ attr_accessor url: String?
66
+
67
+ def initialize: (
68
+ description: String,
69
+ features: ::Array[String],
70
+ images: ::Array[String],
71
+ name: String,
72
+ tags: ::Array[String],
73
+ target_audience: ::Array[String],
74
+ ?billing_frequency: ContextDev::Models::BrandAIProductsResponse::Product::billing_frequency?,
75
+ ?category: String?,
76
+ ?currency: String?,
77
+ ?image_url: String?,
78
+ ?price: Float?,
79
+ ?pricing_model: ContextDev::Models::BrandAIProductsResponse::Product::pricing_model?,
80
+ ?url: String?
81
+ ) -> void
82
+
83
+ def to_hash: -> {
84
+ description: String,
85
+ features: ::Array[String],
86
+ images: ::Array[String],
87
+ name: String,
88
+ tags: ::Array[String],
89
+ target_audience: ::Array[String],
90
+ billing_frequency: ContextDev::Models::BrandAIProductsResponse::Product::billing_frequency?,
91
+ category: String?,
92
+ currency: String?,
93
+ image_url: String?,
94
+ price: Float?,
95
+ pricing_model: ContextDev::Models::BrandAIProductsResponse::Product::pricing_model?,
96
+ url: String?
97
+ }
98
+
99
+ type billing_frequency = :monthly | :yearly | :one_time | :usage_based
100
+
101
+ module BillingFrequency
102
+ extend ContextDev::Internal::Type::Enum
103
+
104
+ MONTHLY: :monthly
105
+ YEARLY: :yearly
106
+ ONE_TIME: :one_time
107
+ USAGE_BASED: :usage_based
108
+
109
+ def self?.values: -> ::Array[ContextDev::Models::BrandAIProductsResponse::Product::billing_frequency]
110
+ end
111
+
112
+ type pricing_model = :per_seat | :flat | :tiered | :freemium | :custom
113
+
114
+ module PricingModel
115
+ extend ContextDev::Internal::Type::Enum
116
+
117
+ PER_SEAT: :per_seat
118
+ FLAT: :flat
119
+ TIERED: :tiered
120
+ FREEMIUM: :freemium
121
+ CUSTOM: :custom
122
+
123
+ def self?.values: -> ::Array[ContextDev::Models::BrandAIProductsResponse::Product::pricing_model]
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end