mencoro 1.0.0

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 (401) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +304 -0
  4. data/Rakefile +10 -0
  5. data/docs/AcceptedJobResource.md +22 -0
  6. data/docs/AccountApi.md +141 -0
  7. data/docs/AiResponseReportResource.md +28 -0
  8. data/docs/AiResponseResource.md +36 -0
  9. data/docs/AnalyticsApi.md +1320 -0
  10. data/docs/ApplyClusteringJobOutcome.md +26 -0
  11. data/docs/ApplyClusteringJobOutcomeClustersInner.md +22 -0
  12. data/docs/ApplyClusteringJobOutcomeFailedInner.md +22 -0
  13. data/docs/ApplyClusteringJobOutcomeSkippedClustersInner.md +20 -0
  14. data/docs/ApplyClusteringJobOutcomeSuccessfulInner.md +20 -0
  15. data/docs/AsyncJobResource.md +24 -0
  16. data/docs/BatchChangeTrackedQueryCheckFrequencyRequestData.md +20 -0
  17. data/docs/BatchChangeTrackedQueryPassesRequestData.md +20 -0
  18. data/docs/BatchCreateQueryClustersOutcome.md +20 -0
  19. data/docs/BatchCreateQueryClustersOutcomeFailedInner.md +22 -0
  20. data/docs/BatchCreateQueryClustersOutcomeSuccessfulInner.md +20 -0
  21. data/docs/BatchCreateQueryClustersRequestData.md +18 -0
  22. data/docs/BatchCreateTrackedQueriesRequestData.md +30 -0
  23. data/docs/BatchCreateTrackedQueriesResultResource.md +20 -0
  24. data/docs/BatchCreateTrackedQueriesResultResourceFailedInner.md +26 -0
  25. data/docs/BatchCreateTrackedQueriesResultResourceSuccessfulInner.md +24 -0
  26. data/docs/BatchForceCheckTrackedQueries200Response.md +20 -0
  27. data/docs/BatchForceCheckTrackedQueries200ResponseFailedInner.md +22 -0
  28. data/docs/BatchPauseTrackedQueries200Response.md +20 -0
  29. data/docs/BatchPauseTrackedQueries200ResponseFailedInner.md +22 -0
  30. data/docs/BatchPauseTrackedQueries200ResponseSuccessfulInner.md +18 -0
  31. data/docs/BatchResumeTrackedQueries200Response.md +20 -0
  32. data/docs/BatchTargetsRequestData.md +18 -0
  33. data/docs/BatchWriteOutcome.md +20 -0
  34. data/docs/BatchWriteOutcomeFailedInner.md +22 -0
  35. data/docs/BillingApi.md +77 -0
  36. data/docs/BrandProfileResource.md +24 -0
  37. data/docs/BulkAddClustersToTrackedQueries200Response.md +20 -0
  38. data/docs/BulkAddClustersToTrackedQueriesRequest.md +20 -0
  39. data/docs/BulkRemoveClustersFromTrackedQueries200Response.md +20 -0
  40. data/docs/BulkRemoveClustersFromTrackedQueriesRequest.md +20 -0
  41. data/docs/CapturesApi.md +267 -0
  42. data/docs/ChangeMemberRoleRequest.md +18 -0
  43. data/docs/ChangeTrackedQueryCheckFrequencyRequestData.md +18 -0
  44. data/docs/ChangeTrackedQueryPassesRequestData.md +18 -0
  45. data/docs/CitationResource.md +36 -0
  46. data/docs/ClusterMembershipRequestData.md +18 -0
  47. data/docs/ClustersApi.md +465 -0
  48. data/docs/CompetitorResource.md +24 -0
  49. data/docs/CreateCompetitorRequest.md +22 -0
  50. data/docs/CreateInvitation200Response.md +22 -0
  51. data/docs/CreateInvitation201Response.md +32 -0
  52. data/docs/CreateInvitationRequest.md +20 -0
  53. data/docs/CreateOrganization201Response.md +22 -0
  54. data/docs/CreateOrganizationRequest.md +18 -0
  55. data/docs/CreateProjectRequest.md +24 -0
  56. data/docs/CreateProjectRequestCompetitorsInner.md +22 -0
  57. data/docs/CreateQueryCluster409Response.md +22 -0
  58. data/docs/CreateQueryClusterRequest.md +18 -0
  59. data/docs/DeleteQueryCluster200Response.md +22 -0
  60. data/docs/DiscoveryApi.md +311 -0
  61. data/docs/EntitlementsResource.md +38 -0
  62. data/docs/GetAvailableFilters200Response.md +22 -0
  63. data/docs/GetAvailableFilters200ResponseClustersInner.md +20 -0
  64. data/docs/GetMeStats200Response.md +20 -0
  65. data/docs/GetMeStats200ResponseOrganizations.md +18 -0
  66. data/docs/GetMeStats200ResponseProjects.md +20 -0
  67. data/docs/GetMembershipStats200Response.md +30 -0
  68. data/docs/GetMentionSamples400Response.md +24 -0
  69. data/docs/GetMentionSamples400ResponseDetailsValueInner.md +22 -0
  70. data/docs/GetMetricGlossary200Response.md +18 -0
  71. data/docs/GetMetricGlossary200ResponseMetricsInner.md +30 -0
  72. data/docs/GetOrganizationOverview200Response.md +20 -0
  73. data/docs/GetOrganizationOverview200ResponseAggregate.md +30 -0
  74. data/docs/GetOrganizationOverview200ResponseProjectsInner.md +32 -0
  75. data/docs/GetOrganizationStats200Response.md +22 -0
  76. data/docs/GetOrganizationStats200ResponseInvitations.md +18 -0
  77. data/docs/GetOrganizationStats200ResponseMembers.md +18 -0
  78. data/docs/GetOrganizationStats200ResponseProjects.md +20 -0
  79. data/docs/GetShareOfVoiceFormula200Response.md +24 -0
  80. data/docs/GetTrackingCoverage200Response.md +30 -0
  81. data/docs/GetTrackingCoverage200ResponseSampleInner.md +28 -0
  82. data/docs/InvitationResource.md +30 -0
  83. data/docs/InvitationsApi.md +243 -0
  84. data/docs/JobsApi.md +79 -0
  85. data/docs/KeywordListingResource.md +88 -0
  86. data/docs/KeywordListingResourceMentionTypeCounts.md +26 -0
  87. data/docs/ListAiResponses200Response.md +20 -0
  88. data/docs/ListCompetitors200Response.md +20 -0
  89. data/docs/ListInvitations200Response.md +20 -0
  90. data/docs/ListKeywordListings200Response.md +24 -0
  91. data/docs/ListMembers200Response.md +20 -0
  92. data/docs/ListOrganizations200Response.md +20 -0
  93. data/docs/ListProjects200Response.md +20 -0
  94. data/docs/ListQueryClusters200Response.md +20 -0
  95. data/docs/ListSearchSnapshots200Response.md +20 -0
  96. data/docs/ListShoppingSnapshots200Response.md +20 -0
  97. data/docs/MeResource.md +34 -0
  98. data/docs/MemberResource.md +28 -0
  99. data/docs/MembersApi.md +391 -0
  100. data/docs/OperationEffect.md +22 -0
  101. data/docs/OrganizationOperationsApi.md +77 -0
  102. data/docs/OrganizationResource.md +32 -0
  103. data/docs/OrganizationsApi.md +807 -0
  104. data/docs/PreviewOrganizationOperation200Response.md +34 -0
  105. data/docs/PreviewOrganizationOperation200ResponseOrganization.md +20 -0
  106. data/docs/PreviewOrganizationOperationRequest.md +24 -0
  107. data/docs/ProjectDetailResource.md +32 -0
  108. data/docs/ProjectDetailResourceCompetitorsInner.md +24 -0
  109. data/docs/ProjectResource.md +50 -0
  110. data/docs/ProjectedMonthlyChecksResource.md +20 -0
  111. data/docs/ProjectsApi.md +999 -0
  112. data/docs/QueryClusterResource.md +22 -0
  113. data/docs/ReportAiResponseRequest.md +22 -0
  114. data/docs/SearchResultResource.md +32 -0
  115. data/docs/SearchSnapshotResource.md +28 -0
  116. data/docs/SearchTrackedQueries200Response.md +20 -0
  117. data/docs/ShoppingOfferResource.md +38 -0
  118. data/docs/ShoppingSnapshotResource.md +28 -0
  119. data/docs/StartBrandDiscoveryJobRequest.md +20 -0
  120. data/docs/StartBrandNameSuggestionJobRequest.md +24 -0
  121. data/docs/StartClusteringJobRequestData.md +22 -0
  122. data/docs/StartKeywordDiscoveryJobRequest.md +24 -0
  123. data/docs/StartPromptDiscoveryJobRequest.md +24 -0
  124. data/docs/SubmittedChecksResource.md +20 -0
  125. data/docs/SubscriptionResource.md +42 -0
  126. data/docs/TrackedQueriesApi.md +1549 -0
  127. data/docs/TrackedQueryCountResource.md +20 -0
  128. data/docs/TrackedQueryDetailResource.md +38 -0
  129. data/docs/TrackedQueryResource.md +52 -0
  130. data/docs/TrackedQueryUsageResource.md +18 -0
  131. data/docs/UpdateOrganizationRequest.md +22 -0
  132. data/docs/UpdateProjectBrandProfileRequest.md +20 -0
  133. data/docs/UpdateProjectRequest.md +18 -0
  134. data/git_push.sh +57 -0
  135. data/lib/mencoro/api/account_api.rb +136 -0
  136. data/lib/mencoro/api/analytics_api.rb +1555 -0
  137. data/lib/mencoro/api/billing_api.rb +85 -0
  138. data/lib/mencoro/api/captures_api.rb +338 -0
  139. data/lib/mencoro/api/clusters_api.rb +548 -0
  140. data/lib/mencoro/api/discovery_api.rb +360 -0
  141. data/lib/mencoro/api/invitations_api.rb +302 -0
  142. data/lib/mencoro/api/jobs_api.rb +91 -0
  143. data/lib/mencoro/api/members_api.rb +453 -0
  144. data/lib/mencoro/api/organization_operations_api.rb +90 -0
  145. data/lib/mencoro/api/organizations_api.rb +835 -0
  146. data/lib/mencoro/api/projects_api.rb +1158 -0
  147. data/lib/mencoro/api/tracked_queries_api.rb +1792 -0
  148. data/lib/mencoro/api_client.rb +441 -0
  149. data/lib/mencoro/api_error.rb +58 -0
  150. data/lib/mencoro/api_model_base.rb +88 -0
  151. data/lib/mencoro/configuration.rb +392 -0
  152. data/lib/mencoro/models/accepted_job_resource.rb +220 -0
  153. data/lib/mencoro/models/ai_response_report_resource.rb +311 -0
  154. data/lib/mencoro/models/ai_response_resource.rb +412 -0
  155. data/lib/mencoro/models/apply_clustering_job_outcome.rb +199 -0
  156. data/lib/mencoro/models/apply_clustering_job_outcome_clusters_inner.rb +165 -0
  157. data/lib/mencoro/models/apply_clustering_job_outcome_failed_inner.rb +165 -0
  158. data/lib/mencoro/models/apply_clustering_job_outcome_skipped_clusters_inner.rb +156 -0
  159. data/lib/mencoro/models/apply_clustering_job_outcome_successful_inner.rb +158 -0
  160. data/lib/mencoro/models/async_job_resource.rb +256 -0
  161. data/lib/mencoro/models/batch_change_tracked_query_check_frequency_request_data.rb +237 -0
  162. data/lib/mencoro/models/batch_change_tracked_query_passes_request_data.rb +231 -0
  163. data/lib/mencoro/models/batch_create_query_clusters_outcome.rb +163 -0
  164. data/lib/mencoro/models/batch_create_query_clusters_outcome_failed_inner.rb +165 -0
  165. data/lib/mencoro/models/batch_create_query_clusters_outcome_successful_inner.rb +156 -0
  166. data/lib/mencoro/models/batch_create_query_clusters_request_data.rb +186 -0
  167. data/lib/mencoro/models/batch_create_tracked_queries_request_data.rb +399 -0
  168. data/lib/mencoro/models/batch_create_tracked_queries_result_resource.rb +163 -0
  169. data/lib/mencoro/models/batch_create_tracked_queries_result_resource_failed_inner.rb +183 -0
  170. data/lib/mencoro/models/batch_create_tracked_queries_result_resource_successful_inner.rb +174 -0
  171. data/lib/mencoro/models/batch_force_check_tracked_queries200_response.rb +162 -0
  172. data/lib/mencoro/models/batch_force_check_tracked_queries200_response_failed_inner.rb +165 -0
  173. data/lib/mencoro/models/batch_pause_tracked_queries200_response.rb +162 -0
  174. data/lib/mencoro/models/batch_pause_tracked_queries200_response_failed_inner.rb +165 -0
  175. data/lib/mencoro/models/batch_pause_tracked_queries200_response_successful_inner.rb +147 -0
  176. data/lib/mencoro/models/batch_resume_tracked_queries200_response.rb +162 -0
  177. data/lib/mencoro/models/batch_targets_request_data.rb +186 -0
  178. data/lib/mencoro/models/batch_write_outcome.rb +163 -0
  179. data/lib/mencoro/models/batch_write_outcome_failed_inner.rb +166 -0
  180. data/lib/mencoro/models/brand_profile_resource.rb +235 -0
  181. data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries200_response.rb +162 -0
  182. data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries_request.rb +218 -0
  183. data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries200_response.rb +162 -0
  184. data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries_request.rb +218 -0
  185. data/lib/mencoro/models/change_member_role_request.rb +181 -0
  186. data/lib/mencoro/models/change_tracked_query_check_frequency_request_data.rb +190 -0
  187. data/lib/mencoro/models/change_tracked_query_passes_request_data.rb +184 -0
  188. data/lib/mencoro/models/citation_resource.rb +306 -0
  189. data/lib/mencoro/models/cluster_membership_request_data.rb +186 -0
  190. data/lib/mencoro/models/competitor_resource.rb +250 -0
  191. data/lib/mencoro/models/create_competitor_request.rb +247 -0
  192. data/lib/mencoro/models/create_invitation200_response.rb +202 -0
  193. data/lib/mencoro/models/create_invitation201_response.rb +347 -0
  194. data/lib/mencoro/models/create_invitation_request.rb +192 -0
  195. data/lib/mencoro/models/create_organization201_response.rb +166 -0
  196. data/lib/mencoro/models/create_organization_request.rb +175 -0
  197. data/lib/mencoro/models/create_project_request.rb +307 -0
  198. data/lib/mencoro/models/create_project_request_competitors_inner.rb +256 -0
  199. data/lib/mencoro/models/create_query_cluster409_response.rb +165 -0
  200. data/lib/mencoro/models/create_query_cluster_request.rb +167 -0
  201. data/lib/mencoro/models/delete_query_cluster200_response.rb +168 -0
  202. data/lib/mencoro/models/entitlements_resource.rb +328 -0
  203. data/lib/mencoro/models/get_available_filters200_response.rb +173 -0
  204. data/lib/mencoro/models/get_available_filters200_response_clusters_inner.rb +157 -0
  205. data/lib/mencoro/models/get_me_stats200_response.rb +156 -0
  206. data/lib/mencoro/models/get_me_stats200_response_organizations.rb +167 -0
  207. data/lib/mencoro/models/get_me_stats200_response_projects.rb +196 -0
  208. data/lib/mencoro/models/get_membership_stats200_response.rb +322 -0
  209. data/lib/mencoro/models/get_mention_samples400_response.rb +231 -0
  210. data/lib/mencoro/models/get_mention_samples400_response_details_value_inner.rb +168 -0
  211. data/lib/mencoro/models/get_metric_glossary200_response.rb +149 -0
  212. data/lib/mencoro/models/get_metric_glossary200_response_metrics_inner.rb +240 -0
  213. data/lib/mencoro/models/get_organization_overview200_response.rb +158 -0
  214. data/lib/mencoro/models/get_organization_overview200_response_aggregate.rb +209 -0
  215. data/lib/mencoro/models/get_organization_overview200_response_projects_inner.rb +218 -0
  216. data/lib/mencoro/models/get_organization_stats200_response.rb +165 -0
  217. data/lib/mencoro/models/get_organization_stats200_response_invitations.rb +167 -0
  218. data/lib/mencoro/models/get_organization_stats200_response_members.rb +167 -0
  219. data/lib/mencoro/models/get_organization_stats200_response_projects.rb +196 -0
  220. data/lib/mencoro/models/get_share_of_voice_formula200_response.rb +182 -0
  221. data/lib/mencoro/models/get_tracking_coverage200_response.rb +209 -0
  222. data/lib/mencoro/models/get_tracking_coverage200_response_sample_inner.rb +229 -0
  223. data/lib/mencoro/models/invitation_resource.rb +331 -0
  224. data/lib/mencoro/models/keyword_listing_resource.rb +798 -0
  225. data/lib/mencoro/models/keyword_listing_resource_mention_type_counts.rb +184 -0
  226. data/lib/mencoro/models/list_ai_responses200_response.rb +159 -0
  227. data/lib/mencoro/models/list_competitors200_response.rb +159 -0
  228. data/lib/mencoro/models/list_invitations200_response.rb +158 -0
  229. data/lib/mencoro/models/list_keyword_listings200_response.rb +180 -0
  230. data/lib/mencoro/models/list_members200_response.rb +158 -0
  231. data/lib/mencoro/models/list_organizations200_response.rb +158 -0
  232. data/lib/mencoro/models/list_projects200_response.rb +159 -0
  233. data/lib/mencoro/models/list_query_clusters200_response.rb +159 -0
  234. data/lib/mencoro/models/list_search_snapshots200_response.rb +159 -0
  235. data/lib/mencoro/models/list_shopping_snapshots200_response.rb +159 -0
  236. data/lib/mencoro/models/me_resource.rb +394 -0
  237. data/lib/mencoro/models/member_resource.rb +322 -0
  238. data/lib/mencoro/models/operation_effect.rb +204 -0
  239. data/lib/mencoro/models/organization_resource.rb +326 -0
  240. data/lib/mencoro/models/preview_organization_operation200_response.rb +236 -0
  241. data/lib/mencoro/models/preview_organization_operation200_response_organization.rb +158 -0
  242. data/lib/mencoro/models/preview_organization_operation_request.rb +213 -0
  243. data/lib/mencoro/models/project_detail_resource.rb +380 -0
  244. data/lib/mencoro/models/project_detail_resource_competitors_inner.rb +178 -0
  245. data/lib/mencoro/models/project_resource.rb +422 -0
  246. data/lib/mencoro/models/projected_monthly_checks_resource.rb +211 -0
  247. data/lib/mencoro/models/query_cluster_resource.rb +229 -0
  248. data/lib/mencoro/models/report_ai_response_request.rb +227 -0
  249. data/lib/mencoro/models/search_result_resource.rb +284 -0
  250. data/lib/mencoro/models/search_snapshot_resource.rb +302 -0
  251. data/lib/mencoro/models/search_tracked_queries200_response.rb +158 -0
  252. data/lib/mencoro/models/shopping_offer_resource.rb +381 -0
  253. data/lib/mencoro/models/shopping_snapshot_resource.rb +302 -0
  254. data/lib/mencoro/models/start_brand_discovery_job_request.rb +185 -0
  255. data/lib/mencoro/models/start_brand_name_suggestion_job_request.rb +287 -0
  256. data/lib/mencoro/models/start_clustering_job_request_data.rb +249 -0
  257. data/lib/mencoro/models/start_keyword_discovery_job_request.rb +266 -0
  258. data/lib/mencoro/models/start_prompt_discovery_job_request.rb +276 -0
  259. data/lib/mencoro/models/submitted_checks_resource.rb +195 -0
  260. data/lib/mencoro/models/subscription_resource.rb +362 -0
  261. data/lib/mencoro/models/tracked_query_count_resource.rb +193 -0
  262. data/lib/mencoro/models/tracked_query_detail_resource.rb +440 -0
  263. data/lib/mencoro/models/tracked_query_resource.rb +492 -0
  264. data/lib/mencoro/models/tracked_query_usage_resource.rb +175 -0
  265. data/lib/mencoro/models/update_organization_request.rb +195 -0
  266. data/lib/mencoro/models/update_project_brand_profile_request.rb +218 -0
  267. data/lib/mencoro/models/update_project_request.rb +182 -0
  268. data/lib/mencoro/version.rb +15 -0
  269. data/lib/mencoro.rb +169 -0
  270. data/mencoro.gemspec +41 -0
  271. data/spec/api/account_api_spec.rb +57 -0
  272. data/spec/api/analytics_api_spec.rb +318 -0
  273. data/spec/api/billing_api_spec.rb +47 -0
  274. data/spec/api/captures_api_spec.rb +93 -0
  275. data/spec/api/clusters_api_spec.rb +126 -0
  276. data/spec/api/discovery_api_spec.rb +94 -0
  277. data/spec/api/invitations_api_spec.rb +83 -0
  278. data/spec/api/jobs_api_spec.rb +48 -0
  279. data/spec/api/members_api_spec.rb +111 -0
  280. data/spec/api/organization_operations_api_spec.rb +47 -0
  281. data/spec/api/organizations_api_spec.rb +181 -0
  282. data/spec/api/projects_api_spec.rb +229 -0
  283. data/spec/api/tracked_queries_api_spec.rb +344 -0
  284. data/spec/models/accepted_job_resource_spec.rb +48 -0
  285. data/spec/models/ai_response_report_resource_spec.rb +70 -0
  286. data/spec/models/ai_response_resource_spec.rb +90 -0
  287. data/spec/models/apply_clustering_job_outcome_clusters_inner_spec.rb +48 -0
  288. data/spec/models/apply_clustering_job_outcome_failed_inner_spec.rb +48 -0
  289. data/spec/models/apply_clustering_job_outcome_skipped_clusters_inner_spec.rb +42 -0
  290. data/spec/models/apply_clustering_job_outcome_spec.rb +60 -0
  291. data/spec/models/apply_clustering_job_outcome_successful_inner_spec.rb +42 -0
  292. data/spec/models/async_job_resource_spec.rb +62 -0
  293. data/spec/models/batch_change_tracked_query_check_frequency_request_data_spec.rb +46 -0
  294. data/spec/models/batch_change_tracked_query_passes_request_data_spec.rb +42 -0
  295. data/spec/models/batch_create_query_clusters_outcome_failed_inner_spec.rb +48 -0
  296. data/spec/models/batch_create_query_clusters_outcome_spec.rb +42 -0
  297. data/spec/models/batch_create_query_clusters_outcome_successful_inner_spec.rb +42 -0
  298. data/spec/models/batch_create_query_clusters_request_data_spec.rb +36 -0
  299. data/spec/models/batch_create_tracked_queries_request_data_spec.rb +80 -0
  300. data/spec/models/batch_create_tracked_queries_result_resource_failed_inner_spec.rb +60 -0
  301. data/spec/models/batch_create_tracked_queries_result_resource_spec.rb +42 -0
  302. data/spec/models/batch_create_tracked_queries_result_resource_successful_inner_spec.rb +54 -0
  303. data/spec/models/batch_force_check_tracked_queries200_response_failed_inner_spec.rb +48 -0
  304. data/spec/models/batch_force_check_tracked_queries200_response_spec.rb +42 -0
  305. data/spec/models/batch_pause_tracked_queries200_response_failed_inner_spec.rb +48 -0
  306. data/spec/models/batch_pause_tracked_queries200_response_spec.rb +42 -0
  307. data/spec/models/batch_pause_tracked_queries200_response_successful_inner_spec.rb +36 -0
  308. data/spec/models/batch_resume_tracked_queries200_response_spec.rb +42 -0
  309. data/spec/models/batch_targets_request_data_spec.rb +36 -0
  310. data/spec/models/batch_write_outcome_failed_inner_spec.rb +48 -0
  311. data/spec/models/batch_write_outcome_spec.rb +42 -0
  312. data/spec/models/brand_profile_resource_spec.rb +54 -0
  313. data/spec/models/bulk_add_clusters_to_tracked_queries200_response_spec.rb +42 -0
  314. data/spec/models/bulk_add_clusters_to_tracked_queries_request_spec.rb +42 -0
  315. data/spec/models/bulk_remove_clusters_from_tracked_queries200_response_spec.rb +42 -0
  316. data/spec/models/bulk_remove_clusters_from_tracked_queries_request_spec.rb +42 -0
  317. data/spec/models/change_member_role_request_spec.rb +40 -0
  318. data/spec/models/change_tracked_query_check_frequency_request_data_spec.rb +40 -0
  319. data/spec/models/change_tracked_query_passes_request_data_spec.rb +36 -0
  320. data/spec/models/citation_resource_spec.rb +90 -0
  321. data/spec/models/cluster_membership_request_data_spec.rb +36 -0
  322. data/spec/models/competitor_resource_spec.rb +54 -0
  323. data/spec/models/create_competitor_request_spec.rb +48 -0
  324. data/spec/models/create_invitation200_response_spec.rb +52 -0
  325. data/spec/models/create_invitation201_response_spec.rb +86 -0
  326. data/spec/models/create_invitation_request_spec.rb +46 -0
  327. data/spec/models/create_organization201_response_spec.rb +48 -0
  328. data/spec/models/create_organization_request_spec.rb +36 -0
  329. data/spec/models/create_project_request_competitors_inner_spec.rb +48 -0
  330. data/spec/models/create_project_request_spec.rb +54 -0
  331. data/spec/models/create_query_cluster409_response_spec.rb +48 -0
  332. data/spec/models/create_query_cluster_request_spec.rb +36 -0
  333. data/spec/models/delete_query_cluster200_response_spec.rb +48 -0
  334. data/spec/models/entitlements_resource_spec.rb +104 -0
  335. data/spec/models/get_available_filters200_response_clusters_inner_spec.rb +42 -0
  336. data/spec/models/get_available_filters200_response_spec.rb +48 -0
  337. data/spec/models/get_me_stats200_response_organizations_spec.rb +36 -0
  338. data/spec/models/get_me_stats200_response_projects_spec.rb +42 -0
  339. data/spec/models/get_me_stats200_response_spec.rb +42 -0
  340. data/spec/models/get_membership_stats200_response_spec.rb +72 -0
  341. data/spec/models/get_mention_samples400_response_details_value_inner_spec.rb +48 -0
  342. data/spec/models/get_mention_samples400_response_spec.rb +54 -0
  343. data/spec/models/get_metric_glossary200_response_metrics_inner_spec.rb +76 -0
  344. data/spec/models/get_metric_glossary200_response_spec.rb +36 -0
  345. data/spec/models/get_organization_overview200_response_aggregate_spec.rb +72 -0
  346. data/spec/models/get_organization_overview200_response_projects_inner_spec.rb +78 -0
  347. data/spec/models/get_organization_overview200_response_spec.rb +42 -0
  348. data/spec/models/get_organization_stats200_response_invitations_spec.rb +36 -0
  349. data/spec/models/get_organization_stats200_response_members_spec.rb +36 -0
  350. data/spec/models/get_organization_stats200_response_projects_spec.rb +42 -0
  351. data/spec/models/get_organization_stats200_response_spec.rb +48 -0
  352. data/spec/models/get_share_of_voice_formula200_response_spec.rb +54 -0
  353. data/spec/models/get_tracking_coverage200_response_sample_inner_spec.rb +70 -0
  354. data/spec/models/get_tracking_coverage200_response_spec.rb +72 -0
  355. data/spec/models/invitation_resource_spec.rb +80 -0
  356. data/spec/models/keyword_listing_resource_mention_type_counts_spec.rb +60 -0
  357. data/spec/models/keyword_listing_resource_spec.rb +262 -0
  358. data/spec/models/list_ai_responses200_response_spec.rb +42 -0
  359. data/spec/models/list_competitors200_response_spec.rb +42 -0
  360. data/spec/models/list_invitations200_response_spec.rb +42 -0
  361. data/spec/models/list_keyword_listings200_response_spec.rb +54 -0
  362. data/spec/models/list_members200_response_spec.rb +42 -0
  363. data/spec/models/list_organizations200_response_spec.rb +42 -0
  364. data/spec/models/list_projects200_response_spec.rb +42 -0
  365. data/spec/models/list_query_clusters200_response_spec.rb +42 -0
  366. data/spec/models/list_search_snapshots200_response_spec.rb +42 -0
  367. data/spec/models/list_shopping_snapshots200_response_spec.rb +42 -0
  368. data/spec/models/me_resource_spec.rb +92 -0
  369. data/spec/models/member_resource_spec.rb +74 -0
  370. data/spec/models/operation_effect_spec.rb +48 -0
  371. data/spec/models/organization_resource_spec.rb +86 -0
  372. data/spec/models/preview_organization_operation200_response_organization_spec.rb +42 -0
  373. data/spec/models/preview_organization_operation200_response_spec.rb +84 -0
  374. data/spec/models/preview_organization_operation_request_spec.rb +58 -0
  375. data/spec/models/project_detail_resource_competitors_inner_spec.rb +54 -0
  376. data/spec/models/project_detail_resource_spec.rb +82 -0
  377. data/spec/models/project_resource_spec.rb +136 -0
  378. data/spec/models/projected_monthly_checks_resource_spec.rb +42 -0
  379. data/spec/models/query_cluster_resource_spec.rb +48 -0
  380. data/spec/models/report_ai_response_request_spec.rb +52 -0
  381. data/spec/models/search_result_resource_spec.rb +78 -0
  382. data/spec/models/search_snapshot_resource_spec.rb +66 -0
  383. data/spec/models/search_tracked_queries200_response_spec.rb +42 -0
  384. data/spec/models/shopping_offer_resource_spec.rb +96 -0
  385. data/spec/models/shopping_snapshot_resource_spec.rb +66 -0
  386. data/spec/models/start_brand_discovery_job_request_spec.rb +42 -0
  387. data/spec/models/start_brand_name_suggestion_job_request_spec.rb +54 -0
  388. data/spec/models/start_clustering_job_request_data_spec.rb +52 -0
  389. data/spec/models/start_keyword_discovery_job_request_spec.rb +54 -0
  390. data/spec/models/start_prompt_discovery_job_request_spec.rb +54 -0
  391. data/spec/models/submitted_checks_resource_spec.rb +42 -0
  392. data/spec/models/subscription_resource_spec.rb +120 -0
  393. data/spec/models/tracked_query_count_resource_spec.rb +42 -0
  394. data/spec/models/tracked_query_detail_resource_spec.rb +108 -0
  395. data/spec/models/tracked_query_resource_spec.rb +150 -0
  396. data/spec/models/tracked_query_usage_resource_spec.rb +36 -0
  397. data/spec/models/update_organization_request_spec.rb +48 -0
  398. data/spec/models/update_project_brand_profile_request_spec.rb +42 -0
  399. data/spec/models/update_project_request_spec.rb +36 -0
  400. data/spec/spec_helper.rb +111 -0
  401. metadata +641 -0
@@ -0,0 +1,999 @@
1
+ # Mencoro::ProjectsApi
2
+
3
+ All URIs are relative to *https://api.mencoro.com*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**archive_project**](ProjectsApi.md#archive_project) | **POST** /api/v1/organizations/{organizationId}/projects/{projectId}/archive | Archive a project |
8
+ | [**create_competitor**](ProjectsApi.md#create_competitor) | **POST** /api/v1/organizations/{organizationId}/projects/{projectId}/competitors | Add a competitor to a project |
9
+ | [**create_project**](ProjectsApi.md#create_project) | **POST** /api/v1/organizations/{organizationId}/projects | Create a project and the brand monitoring profile its checks run against |
10
+ | [**delete_competitor**](ProjectsApi.md#delete_competitor) | **DELETE** /api/v1/organizations/{organizationId}/projects/{projectId}/competitors/{competitorId} | Remove a competitor from a project |
11
+ | [**get_brand_profile**](ProjectsApi.md#get_brand_profile) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/brand-profile | Get a project's brand monitoring profile |
12
+ | [**get_project**](ProjectsApi.md#get_project) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId} | Get a project and its brand monitoring configuration |
13
+ | [**list_competitors**](ProjectsApi.md#list_competitors) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/competitors | List the competitors tracked by a project |
14
+ | [**list_projects**](ProjectsApi.md#list_projects) | **GET** /api/v1/organizations/{organizationId}/projects | List an organization's projects |
15
+ | [**list_query_clusters**](ProjectsApi.md#list_query_clusters) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/clusters | List the keyword clusters of a project |
16
+ | [**restore_project**](ProjectsApi.md#restore_project) | **POST** /api/v1/organizations/{organizationId}/projects/{projectId}/restore | Restore an archived project |
17
+ | [**update_competitor**](ProjectsApi.md#update_competitor) | **PUT** /api/v1/organizations/{organizationId}/projects/{projectId}/competitors/{competitorId} | Replace a competitor |
18
+ | [**update_project**](ProjectsApi.md#update_project) | **PATCH** /api/v1/organizations/{organizationId}/projects/{projectId} | Rename a project |
19
+ | [**update_project_brand_profile**](ProjectsApi.md#update_project_brand_profile) | **PUT** /api/v1/organizations/{organizationId}/projects/{projectId}/brand-profile | Replace a project's brand monitoring profile |
20
+
21
+
22
+ ## archive_project
23
+
24
+ > <ProjectDetailResource> archive_project(organization_id, project_id, idempotency_key)
25
+
26
+ Archive a project
27
+
28
+ Minimum role: manager, in an active organization. Requires the \"write\" capability. Archiving stops a project from being modified: its name, brand profile and competitors are refused with 409 until it is restored. What is NOT done: nothing is deleted. Tracked queries, captured responses, mentions and every metric already collected stay exactly as they are, and restoreProject brings the project back with all of it. Archiving is recorded as done by the caller, not by an organization cascade, so restoring the organization later will not restore this project — restore it explicitly. This endpoint takes no body, and one carrying fields is refused. Archiving an already archived project answers 409, unless the call is a retry carrying the key that archived it. Send an Idempotency-Key; a retry with the same key returns the recorded answer.
29
+
30
+ ### Examples
31
+
32
+ ```ruby
33
+ require 'time'
34
+ require 'mencoro'
35
+ # setup authorization
36
+ Mencoro.configure do |config|
37
+ # Configure Bearer authorization: ApiKey
38
+ config.access_token = 'YOUR_BEARER_TOKEN'
39
+ end
40
+
41
+ api_instance = Mencoro::ProjectsApi.new
42
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
43
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
44
+ idempotency_key = 'idempotency_key_example' # String |
45
+
46
+ begin
47
+ # Archive a project
48
+ result = api_instance.archive_project(organization_id, project_id, idempotency_key)
49
+ p result
50
+ rescue Mencoro::ApiError => e
51
+ puts "Error when calling ProjectsApi->archive_project: #{e}"
52
+ end
53
+ ```
54
+
55
+ #### Using the archive_project_with_http_info variant
56
+
57
+ This returns an Array which contains the response data, status code and headers.
58
+
59
+ > <Array(<ProjectDetailResource>, Integer, Hash)> archive_project_with_http_info(organization_id, project_id, idempotency_key)
60
+
61
+ ```ruby
62
+ begin
63
+ # Archive a project
64
+ data, status_code, headers = api_instance.archive_project_with_http_info(organization_id, project_id, idempotency_key)
65
+ p status_code # => 2xx
66
+ p headers # => { ... }
67
+ p data # => <ProjectDetailResource>
68
+ rescue Mencoro::ApiError => e
69
+ puts "Error when calling ProjectsApi->archive_project_with_http_info: #{e}"
70
+ end
71
+ ```
72
+
73
+ ### Parameters
74
+
75
+ | Name | Type | Description | Notes |
76
+ | ---- | ---- | ----------- | ----- |
77
+ | **organization_id** | **String** | | |
78
+ | **project_id** | **String** | | |
79
+ | **idempotency_key** | **String** | | |
80
+
81
+ ### Return type
82
+
83
+ [**ProjectDetailResource**](ProjectDetailResource.md)
84
+
85
+ ### Authorization
86
+
87
+ [ApiKey](../README.md#ApiKey)
88
+
89
+ ### HTTP request headers
90
+
91
+ - **Content-Type**: Not defined
92
+ - **Accept**: application/json
93
+
94
+
95
+ ## create_competitor
96
+
97
+ > <CompetitorResource> create_competitor(organization_id, project_id, idempotency_key, create_competitor_request)
98
+
99
+ Add a competitor to a project
100
+
101
+ Minimum role: manager, on an active organization and a project that is not archived. Creates one competitor with the domains and brand names its mentions are matched against. Both lists are required and neither may be empty: a competitor that matches on nothing would never be found in an answer. A domain may be sent as a full URL or as a bare host; a URL is reduced to its host and a leading \"www.\" is dropped. Duplicates are collapsed. The id is assigned by the server and cannot be chosen, and neither the auto-generated brand description nor the internal brand monitoring profile id can be set — sending either is refused as an unknown field. Adding a competitor does NOT re-match the answers already captured: it applies to checks from here on. A project whose brand monitoring profile has not been created yet answers 404. An Idempotency-Key header is required.
102
+
103
+ ### Examples
104
+
105
+ ```ruby
106
+ require 'time'
107
+ require 'mencoro'
108
+ # setup authorization
109
+ Mencoro.configure do |config|
110
+ # Configure Bearer authorization: ApiKey
111
+ config.access_token = 'YOUR_BEARER_TOKEN'
112
+ end
113
+
114
+ api_instance = Mencoro::ProjectsApi.new
115
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
116
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the organization in the path.
117
+ idempotency_key = 'idempotency_key_example' # String | Unique per attempt. Without it a lost response cannot be retried without risking a second competitor.
118
+ create_competitor_request = Mencoro::CreateCompetitorRequest.new # CreateCompetitorRequest |
119
+
120
+ begin
121
+ # Add a competitor to a project
122
+ result = api_instance.create_competitor(organization_id, project_id, idempotency_key, create_competitor_request)
123
+ p result
124
+ rescue Mencoro::ApiError => e
125
+ puts "Error when calling ProjectsApi->create_competitor: #{e}"
126
+ end
127
+ ```
128
+
129
+ #### Using the create_competitor_with_http_info variant
130
+
131
+ This returns an Array which contains the response data, status code and headers.
132
+
133
+ > <Array(<CompetitorResource>, Integer, Hash)> create_competitor_with_http_info(organization_id, project_id, idempotency_key, create_competitor_request)
134
+
135
+ ```ruby
136
+ begin
137
+ # Add a competitor to a project
138
+ data, status_code, headers = api_instance.create_competitor_with_http_info(organization_id, project_id, idempotency_key, create_competitor_request)
139
+ p status_code # => 2xx
140
+ p headers # => { ... }
141
+ p data # => <CompetitorResource>
142
+ rescue Mencoro::ApiError => e
143
+ puts "Error when calling ProjectsApi->create_competitor_with_http_info: #{e}"
144
+ end
145
+ ```
146
+
147
+ ### Parameters
148
+
149
+ | Name | Type | Description | Notes |
150
+ | ---- | ---- | ----------- | ----- |
151
+ | **organization_id** | **String** | | |
152
+ | **project_id** | **String** | Must belong to the organization in the path. | |
153
+ | **idempotency_key** | **String** | Unique per attempt. Without it a lost response cannot be retried without risking a second competitor. | |
154
+ | **create_competitor_request** | [**CreateCompetitorRequest**](CreateCompetitorRequest.md) | | |
155
+
156
+ ### Return type
157
+
158
+ [**CompetitorResource**](CompetitorResource.md)
159
+
160
+ ### Authorization
161
+
162
+ [ApiKey](../README.md#ApiKey)
163
+
164
+ ### HTTP request headers
165
+
166
+ - **Content-Type**: application/json
167
+ - **Accept**: application/json
168
+
169
+
170
+ ## create_project
171
+
172
+ > <ProjectDetailResource> create_project(organization_id, idempotency_key, create_project_request)
173
+
174
+ Create a project and the brand monitoring profile its checks run against
175
+
176
+ Minimum role: manager, in an active organization. Requires the \"write\" capability. Creates the project, the brand monitoring profile holding the domains and brand names to watch, and one competitor per entry of `competitors`, in a single call. The project id is minted by the server; a caller-supplied id is rejected as an unknown field. What is NOT done: no tracked queries are created, no check is run and no scraping is scheduled — a new project has nothing collected against it until tracked queries are added. Each website entry may be a full URL or a bare domain: a URL is reduced to its host with any leading \"www.\" removed, so \"https://www.acme.com/pricing\" is stored as \"acme.com\". Duplicate domains and duplicate brand names are collapsed, exactly as the stored value objects do. Send an Idempotency-Key: a retry with the same key and the same body returns this same project instead of creating a second one.
177
+
178
+ ### Examples
179
+
180
+ ```ruby
181
+ require 'time'
182
+ require 'mencoro'
183
+ # setup authorization
184
+ Mencoro.configure do |config|
185
+ # Configure Bearer authorization: ApiKey
186
+ config.access_token = 'YOUR_BEARER_TOKEN'
187
+ end
188
+
189
+ api_instance = Mencoro::ProjectsApi.new
190
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
191
+ idempotency_key = 'idempotency_key_example' # String |
192
+ create_project_request = Mencoro::CreateProjectRequest.new({name: 'name_example', website_domains: ['website_domains_example'], brand_names: ['brand_names_example']}) # CreateProjectRequest |
193
+
194
+ begin
195
+ # Create a project and the brand monitoring profile its checks run against
196
+ result = api_instance.create_project(organization_id, idempotency_key, create_project_request)
197
+ p result
198
+ rescue Mencoro::ApiError => e
199
+ puts "Error when calling ProjectsApi->create_project: #{e}"
200
+ end
201
+ ```
202
+
203
+ #### Using the create_project_with_http_info variant
204
+
205
+ This returns an Array which contains the response data, status code and headers.
206
+
207
+ > <Array(<ProjectDetailResource>, Integer, Hash)> create_project_with_http_info(organization_id, idempotency_key, create_project_request)
208
+
209
+ ```ruby
210
+ begin
211
+ # Create a project and the brand monitoring profile its checks run against
212
+ data, status_code, headers = api_instance.create_project_with_http_info(organization_id, idempotency_key, create_project_request)
213
+ p status_code # => 2xx
214
+ p headers # => { ... }
215
+ p data # => <ProjectDetailResource>
216
+ rescue Mencoro::ApiError => e
217
+ puts "Error when calling ProjectsApi->create_project_with_http_info: #{e}"
218
+ end
219
+ ```
220
+
221
+ ### Parameters
222
+
223
+ | Name | Type | Description | Notes |
224
+ | ---- | ---- | ----------- | ----- |
225
+ | **organization_id** | **String** | | |
226
+ | **idempotency_key** | **String** | | |
227
+ | **create_project_request** | [**CreateProjectRequest**](CreateProjectRequest.md) | | |
228
+
229
+ ### Return type
230
+
231
+ [**ProjectDetailResource**](ProjectDetailResource.md)
232
+
233
+ ### Authorization
234
+
235
+ [ApiKey](../README.md#ApiKey)
236
+
237
+ ### HTTP request headers
238
+
239
+ - **Content-Type**: application/json
240
+ - **Accept**: application/json
241
+
242
+
243
+ ## delete_competitor
244
+
245
+ > <CompetitorResource> delete_competitor(organization_id, project_id, competitor_id, idempotency_key)
246
+
247
+ Remove a competitor from a project
248
+
249
+ Minimum role: manager, on an active organization and a project that is not archived. Removes the competitor and, asynchronously, every stored mention, search result and shopping result attributed to it, in AI answers and search captures already taken. This is permanent and it changes historical analytics: share of voice and competitor co-occurrence recomputed after the cascade will not include it. A 200 means the competitor is gone; the cascade runs on the event bus and finishes shortly afterwards. The response body is the competitor as it was immediately before removal, because it can no longer be read back. The request takes no body, and sending one is refused. A competitor belonging to another project answers 404, the same answer an unknown id gets. An Idempotency-Key header is required.
250
+
251
+ ### Examples
252
+
253
+ ```ruby
254
+ require 'time'
255
+ require 'mencoro'
256
+ # setup authorization
257
+ Mencoro.configure do |config|
258
+ # Configure Bearer authorization: ApiKey
259
+ config.access_token = 'YOUR_BEARER_TOKEN'
260
+ end
261
+
262
+ api_instance = Mencoro::ProjectsApi.new
263
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
264
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the organization in the path.
265
+ competitor_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the project in the path.
266
+ idempotency_key = 'idempotency_key_example' # String | Unique per attempt. A retry carrying the same key is answered from the record instead of running again.
267
+
268
+ begin
269
+ # Remove a competitor from a project
270
+ result = api_instance.delete_competitor(organization_id, project_id, competitor_id, idempotency_key)
271
+ p result
272
+ rescue Mencoro::ApiError => e
273
+ puts "Error when calling ProjectsApi->delete_competitor: #{e}"
274
+ end
275
+ ```
276
+
277
+ #### Using the delete_competitor_with_http_info variant
278
+
279
+ This returns an Array which contains the response data, status code and headers.
280
+
281
+ > <Array(<CompetitorResource>, Integer, Hash)> delete_competitor_with_http_info(organization_id, project_id, competitor_id, idempotency_key)
282
+
283
+ ```ruby
284
+ begin
285
+ # Remove a competitor from a project
286
+ data, status_code, headers = api_instance.delete_competitor_with_http_info(organization_id, project_id, competitor_id, idempotency_key)
287
+ p status_code # => 2xx
288
+ p headers # => { ... }
289
+ p data # => <CompetitorResource>
290
+ rescue Mencoro::ApiError => e
291
+ puts "Error when calling ProjectsApi->delete_competitor_with_http_info: #{e}"
292
+ end
293
+ ```
294
+
295
+ ### Parameters
296
+
297
+ | Name | Type | Description | Notes |
298
+ | ---- | ---- | ----------- | ----- |
299
+ | **organization_id** | **String** | | |
300
+ | **project_id** | **String** | Must belong to the organization in the path. | |
301
+ | **competitor_id** | **String** | Must belong to the project in the path. | |
302
+ | **idempotency_key** | **String** | Unique per attempt. A retry carrying the same key is answered from the record instead of running again. | |
303
+
304
+ ### Return type
305
+
306
+ [**CompetitorResource**](CompetitorResource.md)
307
+
308
+ ### Authorization
309
+
310
+ [ApiKey](../README.md#ApiKey)
311
+
312
+ ### HTTP request headers
313
+
314
+ - **Content-Type**: Not defined
315
+ - **Accept**: application/json
316
+
317
+
318
+ ## get_brand_profile
319
+
320
+ > <BrandProfileResource> get_brand_profile(organization_id, project_id)
321
+
322
+ Get a project's brand monitoring profile
323
+
324
+ Minimum role: viewer. The brand identity every check of this project is matched against: the tracked brand terms, the website domains, and the generated description of what the brand does. A null description means it has not been generated yet — the generator runs asynchronously after the names or domains change — which is not the same as an empty one. An empty brandNames or websiteDomains array means the profile exists and names nothing; a project whose profile has not been created at all answers 404.
325
+
326
+ ### Examples
327
+
328
+ ```ruby
329
+ require 'time'
330
+ require 'mencoro'
331
+ # setup authorization
332
+ Mencoro.configure do |config|
333
+ # Configure Bearer authorization: ApiKey
334
+ config.access_token = 'YOUR_BEARER_TOKEN'
335
+ end
336
+
337
+ api_instance = Mencoro::ProjectsApi.new
338
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
339
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the organization in the path.
340
+
341
+ begin
342
+ # Get a project's brand monitoring profile
343
+ result = api_instance.get_brand_profile(organization_id, project_id)
344
+ p result
345
+ rescue Mencoro::ApiError => e
346
+ puts "Error when calling ProjectsApi->get_brand_profile: #{e}"
347
+ end
348
+ ```
349
+
350
+ #### Using the get_brand_profile_with_http_info variant
351
+
352
+ This returns an Array which contains the response data, status code and headers.
353
+
354
+ > <Array(<BrandProfileResource>, Integer, Hash)> get_brand_profile_with_http_info(organization_id, project_id)
355
+
356
+ ```ruby
357
+ begin
358
+ # Get a project's brand monitoring profile
359
+ data, status_code, headers = api_instance.get_brand_profile_with_http_info(organization_id, project_id)
360
+ p status_code # => 2xx
361
+ p headers # => { ... }
362
+ p data # => <BrandProfileResource>
363
+ rescue Mencoro::ApiError => e
364
+ puts "Error when calling ProjectsApi->get_brand_profile_with_http_info: #{e}"
365
+ end
366
+ ```
367
+
368
+ ### Parameters
369
+
370
+ | Name | Type | Description | Notes |
371
+ | ---- | ---- | ----------- | ----- |
372
+ | **organization_id** | **String** | | |
373
+ | **project_id** | **String** | Must belong to the organization in the path. | |
374
+
375
+ ### Return type
376
+
377
+ [**BrandProfileResource**](BrandProfileResource.md)
378
+
379
+ ### Authorization
380
+
381
+ [ApiKey](../README.md#ApiKey)
382
+
383
+ ### HTTP request headers
384
+
385
+ - **Content-Type**: Not defined
386
+ - **Accept**: application/json
387
+
388
+
389
+ ## get_project
390
+
391
+ > <ProjectDetailResource> get_project(organization_id, project_id)
392
+
393
+ Get a project and its brand monitoring configuration
394
+
395
+ Minimum role: viewer. Returns the project together with the domains and brand names it is monitored for and the competitors it is measured against. A project that exists but belongs to another organization answers 404, never 403. A project that has been created but not yet configured for brand monitoring reports empty `websiteDomains`, `brandNames` and `competitors`. Headline metrics are not part of this response: use `listProjects` for the per-project figures, or `getProjectMetrics` for a window.
396
+
397
+ ### Examples
398
+
399
+ ```ruby
400
+ require 'time'
401
+ require 'mencoro'
402
+ # setup authorization
403
+ Mencoro.configure do |config|
404
+ # Configure Bearer authorization: ApiKey
405
+ config.access_token = 'YOUR_BEARER_TOKEN'
406
+ end
407
+
408
+ api_instance = Mencoro::ProjectsApi.new
409
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
410
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
411
+
412
+ begin
413
+ # Get a project and its brand monitoring configuration
414
+ result = api_instance.get_project(organization_id, project_id)
415
+ p result
416
+ rescue Mencoro::ApiError => e
417
+ puts "Error when calling ProjectsApi->get_project: #{e}"
418
+ end
419
+ ```
420
+
421
+ #### Using the get_project_with_http_info variant
422
+
423
+ This returns an Array which contains the response data, status code and headers.
424
+
425
+ > <Array(<ProjectDetailResource>, Integer, Hash)> get_project_with_http_info(organization_id, project_id)
426
+
427
+ ```ruby
428
+ begin
429
+ # Get a project and its brand monitoring configuration
430
+ data, status_code, headers = api_instance.get_project_with_http_info(organization_id, project_id)
431
+ p status_code # => 2xx
432
+ p headers # => { ... }
433
+ p data # => <ProjectDetailResource>
434
+ rescue Mencoro::ApiError => e
435
+ puts "Error when calling ProjectsApi->get_project_with_http_info: #{e}"
436
+ end
437
+ ```
438
+
439
+ ### Parameters
440
+
441
+ | Name | Type | Description | Notes |
442
+ | ---- | ---- | ----------- | ----- |
443
+ | **organization_id** | **String** | | |
444
+ | **project_id** | **String** | | |
445
+
446
+ ### Return type
447
+
448
+ [**ProjectDetailResource**](ProjectDetailResource.md)
449
+
450
+ ### Authorization
451
+
452
+ [ApiKey](../README.md#ApiKey)
453
+
454
+ ### HTTP request headers
455
+
456
+ - **Content-Type**: Not defined
457
+ - **Accept**: application/json
458
+
459
+
460
+ ## list_competitors
461
+
462
+ > <ListCompetitors200Response> list_competitors(organization_id, project_id, opts)
463
+
464
+ List the competitors tracked by a project
465
+
466
+ Minimum role: viewer. The competitors configured on the project, one page at a time, with the website domains and brand names each one is matched against. `total` counts every competitor of the project, not the size of this page, so a project with more than `limit` competitors needs `offset` to read them all. Ordering is by id, which for a UUID v7 is roughly creation order, and `sortOrder` chooses its direction; there is no other sort key and no text search, and sending `sortBy` or `search` is rejected rather than ignored. A project whose brand monitoring profile has not been created yet answers 200 with an empty collection, which means \"nothing configured yet\" rather than \"no competitors found\". Internal fields the pipeline writes — the auto-generated brand description used by the mention classifier, and the internal brand monitoring profile id — are not part of this contract.Send `Accept: text/csv` to receive the same page as a CSV download instead of JSON: same filters, same authorization, same page window and the same maximum of 100 rows — it is this page in another format, not a bulk export, so a whole collection is still read by paging. The CSV carries no `total`, because a table whose every row is a record has nowhere to put one; read it from the JSON representation of the same request. A list-valued field is joined into one cell with `; ` as a display projection — parse the JSON if you need the structure. Cells beginning with `=`, `+`, `-` or `@` are prefixed with an apostrophe so a spreadsheet treats them as text rather than running them as formulas.
467
+
468
+ ### Examples
469
+
470
+ ```ruby
471
+ require 'time'
472
+ require 'mencoro'
473
+ # setup authorization
474
+ Mencoro.configure do |config|
475
+ # Configure Bearer authorization: ApiKey
476
+ config.access_token = 'YOUR_BEARER_TOKEN'
477
+ end
478
+
479
+ api_instance = Mencoro::ProjectsApi.new
480
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
481
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
482
+ opts = {
483
+ limit: 56, # Integer | Page size. A larger value is rejected, never silently reduced.
484
+ offset: 56, # Integer | Number of competitors to skip before the page starts.
485
+ sort_order: 'asc' # String | Direction of the id ordering. An unknown value is rejected, not replaced by the default.
486
+ }
487
+
488
+ begin
489
+ # List the competitors tracked by a project
490
+ result = api_instance.list_competitors(organization_id, project_id, opts)
491
+ p result
492
+ rescue Mencoro::ApiError => e
493
+ puts "Error when calling ProjectsApi->list_competitors: #{e}"
494
+ end
495
+ ```
496
+
497
+ #### Using the list_competitors_with_http_info variant
498
+
499
+ This returns an Array which contains the response data, status code and headers.
500
+
501
+ > <Array(<ListCompetitors200Response>, Integer, Hash)> list_competitors_with_http_info(organization_id, project_id, opts)
502
+
503
+ ```ruby
504
+ begin
505
+ # List the competitors tracked by a project
506
+ data, status_code, headers = api_instance.list_competitors_with_http_info(organization_id, project_id, opts)
507
+ p status_code # => 2xx
508
+ p headers # => { ... }
509
+ p data # => <ListCompetitors200Response>
510
+ rescue Mencoro::ApiError => e
511
+ puts "Error when calling ProjectsApi->list_competitors_with_http_info: #{e}"
512
+ end
513
+ ```
514
+
515
+ ### Parameters
516
+
517
+ | Name | Type | Description | Notes |
518
+ | ---- | ---- | ----------- | ----- |
519
+ | **organization_id** | **String** | | |
520
+ | **project_id** | **String** | | |
521
+ | **limit** | **Integer** | Page size. A larger value is rejected, never silently reduced. | [optional][default to 20] |
522
+ | **offset** | **Integer** | Number of competitors to skip before the page starts. | [optional][default to 0] |
523
+ | **sort_order** | **String** | Direction of the id ordering. An unknown value is rejected, not replaced by the default. | [optional][default to &#39;asc&#39;] |
524
+
525
+ ### Return type
526
+
527
+ [**ListCompetitors200Response**](ListCompetitors200Response.md)
528
+
529
+ ### Authorization
530
+
531
+ [ApiKey](../README.md#ApiKey)
532
+
533
+ ### HTTP request headers
534
+
535
+ - **Content-Type**: Not defined
536
+ - **Accept**: application/json, text/csv
537
+
538
+
539
+ ## list_projects
540
+
541
+ > <ListProjects200Response> list_projects(organization_id, opts)
542
+
543
+ List an organization's projects
544
+
545
+ Minimum role: viewer. Metrics come from the same read model the application uses, so the figures match what the product shows. A null metric means \"not known yet\", never zero.Send `Accept: text/csv` to receive the same page as a CSV download instead of JSON: same filters, same authorization, same page window and the same maximum of 100 rows — it is this page in another format, not a bulk export, so a whole collection is still read by paging. The CSV carries no `total`, because a table whose every row is a record has nowhere to put one; read it from the JSON representation of the same request. A list-valued field is joined into one cell with `; ` as a display projection — parse the JSON if you need the structure. Cells beginning with `=`, `+`, `-` or `@` are prefixed with an apostrophe so a spreadsheet treats them as text rather than running them as formulas.
546
+
547
+ ### Examples
548
+
549
+ ```ruby
550
+ require 'time'
551
+ require 'mencoro'
552
+ # setup authorization
553
+ Mencoro.configure do |config|
554
+ # Configure Bearer authorization: ApiKey
555
+ config.access_token = 'YOUR_BEARER_TOKEN'
556
+ end
557
+
558
+ api_instance = Mencoro::ProjectsApi.new
559
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
560
+ opts = {
561
+ limit: 2, # Integer | Page size. A larger value is rejected, never silently reduced.
562
+ offset: 4, # Integer | Rows to skip before the page starts. Page by advancing it in steps of `limit` until it reaches `total`.
563
+ search: 'search_example', # String |
564
+ status: 'active', # String |
565
+ sort_by: 'createdAt', # String |
566
+ sort_order: 'asc' # String |
567
+ }
568
+
569
+ begin
570
+ # List an organization's projects
571
+ result = api_instance.list_projects(organization_id, opts)
572
+ p result
573
+ rescue Mencoro::ApiError => e
574
+ puts "Error when calling ProjectsApi->list_projects: #{e}"
575
+ end
576
+ ```
577
+
578
+ #### Using the list_projects_with_http_info variant
579
+
580
+ This returns an Array which contains the response data, status code and headers.
581
+
582
+ > <Array(<ListProjects200Response>, Integer, Hash)> list_projects_with_http_info(organization_id, opts)
583
+
584
+ ```ruby
585
+ begin
586
+ # List an organization's projects
587
+ data, status_code, headers = api_instance.list_projects_with_http_info(organization_id, opts)
588
+ p status_code # => 2xx
589
+ p headers # => { ... }
590
+ p data # => <ListProjects200Response>
591
+ rescue Mencoro::ApiError => e
592
+ puts "Error when calling ProjectsApi->list_projects_with_http_info: #{e}"
593
+ end
594
+ ```
595
+
596
+ ### Parameters
597
+
598
+ | Name | Type | Description | Notes |
599
+ | ---- | ---- | ----------- | ----- |
600
+ | **organization_id** | **String** | | |
601
+ | **limit** | **Integer** | Page size. A larger value is rejected, never silently reduced. | [optional][default to 20] |
602
+ | **offset** | **Integer** | Rows to skip before the page starts. Page by advancing it in steps of &#x60;limit&#x60; until it reaches &#x60;total&#x60;. | [optional][default to 0] |
603
+ | **search** | **String** | | [optional] |
604
+ | **status** | **String** | | [optional] |
605
+ | **sort_by** | **String** | | [optional][default to &#39;createdAt&#39;] |
606
+ | **sort_order** | **String** | | [optional][default to &#39;desc&#39;] |
607
+
608
+ ### Return type
609
+
610
+ [**ListProjects200Response**](ListProjects200Response.md)
611
+
612
+ ### Authorization
613
+
614
+ [ApiKey](../README.md#ApiKey)
615
+
616
+ ### HTTP request headers
617
+
618
+ - **Content-Type**: Not defined
619
+ - **Accept**: application/json, text/csv
620
+
621
+
622
+ ## list_query_clusters
623
+
624
+ > <ListQueryClusters200Response> list_query_clusters(organization_id, project_id, opts)
625
+
626
+ List the keyword clusters of a project
627
+
628
+ Minimum role: viewer. The keyword clusters configured on a project, one page at a time. Each cluster id is exactly what the analytics operations accept in their queryClusterIds filter — pass the id, never the name. Names are unique within a project and are stored lower-cased, so the listing is ordered by name with no ties and paging over it neither repeats nor skips a cluster. `total` counts every cluster in the project, not the size of the page returned. A cluster carries no metrics of its own and no membership count: for the tracked queries inside a cluster, filter the tracked-query operations by its id. An empty list means the project has no clusters configured, which is not an error and is not a statement about whether any data has been collected.Send `Accept: text/csv` to receive the same page as a CSV download instead of JSON: same filters, same authorization, same page window and the same maximum of 100 rows — it is this page in another format, not a bulk export, so a whole collection is still read by paging. The CSV carries no `total`, because a table whose every row is a record has nowhere to put one; read it from the JSON representation of the same request. A list-valued field is joined into one cell with `; ` as a display projection — parse the JSON if you need the structure. Cells beginning with `=`, `+`, `-` or `@` are prefixed with an apostrophe so a spreadsheet treats them as text rather than running them as formulas.
629
+
630
+ ### Examples
631
+
632
+ ```ruby
633
+ require 'time'
634
+ require 'mencoro'
635
+ # setup authorization
636
+ Mencoro.configure do |config|
637
+ # Configure Bearer authorization: ApiKey
638
+ config.access_token = 'YOUR_BEARER_TOKEN'
639
+ end
640
+
641
+ api_instance = Mencoro::ProjectsApi.new
642
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
643
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
644
+ opts = {
645
+ limit: 56, # Integer | Page size. A larger value is rejected, never silently reduced.
646
+ offset: 56, # Integer | Number of clusters to skip before the page starts.
647
+ sort_order: 'asc' # String | Direction of the name ordering. An unknown value is rejected, not replaced by the default.
648
+ }
649
+
650
+ begin
651
+ # List the keyword clusters of a project
652
+ result = api_instance.list_query_clusters(organization_id, project_id, opts)
653
+ p result
654
+ rescue Mencoro::ApiError => e
655
+ puts "Error when calling ProjectsApi->list_query_clusters: #{e}"
656
+ end
657
+ ```
658
+
659
+ #### Using the list_query_clusters_with_http_info variant
660
+
661
+ This returns an Array which contains the response data, status code and headers.
662
+
663
+ > <Array(<ListQueryClusters200Response>, Integer, Hash)> list_query_clusters_with_http_info(organization_id, project_id, opts)
664
+
665
+ ```ruby
666
+ begin
667
+ # List the keyword clusters of a project
668
+ data, status_code, headers = api_instance.list_query_clusters_with_http_info(organization_id, project_id, opts)
669
+ p status_code # => 2xx
670
+ p headers # => { ... }
671
+ p data # => <ListQueryClusters200Response>
672
+ rescue Mencoro::ApiError => e
673
+ puts "Error when calling ProjectsApi->list_query_clusters_with_http_info: #{e}"
674
+ end
675
+ ```
676
+
677
+ ### Parameters
678
+
679
+ | Name | Type | Description | Notes |
680
+ | ---- | ---- | ----------- | ----- |
681
+ | **organization_id** | **String** | | |
682
+ | **project_id** | **String** | | |
683
+ | **limit** | **Integer** | Page size. A larger value is rejected, never silently reduced. | [optional][default to 20] |
684
+ | **offset** | **Integer** | Number of clusters to skip before the page starts. | [optional][default to 0] |
685
+ | **sort_order** | **String** | Direction of the name ordering. An unknown value is rejected, not replaced by the default. | [optional][default to &#39;asc&#39;] |
686
+
687
+ ### Return type
688
+
689
+ [**ListQueryClusters200Response**](ListQueryClusters200Response.md)
690
+
691
+ ### Authorization
692
+
693
+ [ApiKey](../README.md#ApiKey)
694
+
695
+ ### HTTP request headers
696
+
697
+ - **Content-Type**: Not defined
698
+ - **Accept**: application/json, text/csv
699
+
700
+
701
+ ## restore_project
702
+
703
+ > <ProjectDetailResource> restore_project(organization_id, project_id, idempotency_key)
704
+
705
+ Restore an archived project
706
+
707
+ Minimum role: manager, in an active organization. Requires the \"write\" capability. Brings an archived project back to active, with every tracked query, capture and metric it had when it was archived. What is NOT done: no check is run and no scraping is scheduled as a result — collection resumes on the project's own schedule. Restoring clears the record of who archived the project, so a project restored here is treated as an ordinary active project by any later organization archive. A project archived because its organization was archived cannot be restored on its own: restore the organization, which restores them all. Restoring a project that is already active answers 409, unless the call is a retry carrying the key that restored it. This endpoint takes no body, and one carrying fields is refused. Send an Idempotency-Key; a retry with the same key returns the recorded answer.
708
+
709
+ ### Examples
710
+
711
+ ```ruby
712
+ require 'time'
713
+ require 'mencoro'
714
+ # setup authorization
715
+ Mencoro.configure do |config|
716
+ # Configure Bearer authorization: ApiKey
717
+ config.access_token = 'YOUR_BEARER_TOKEN'
718
+ end
719
+
720
+ api_instance = Mencoro::ProjectsApi.new
721
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
722
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
723
+ idempotency_key = 'idempotency_key_example' # String |
724
+
725
+ begin
726
+ # Restore an archived project
727
+ result = api_instance.restore_project(organization_id, project_id, idempotency_key)
728
+ p result
729
+ rescue Mencoro::ApiError => e
730
+ puts "Error when calling ProjectsApi->restore_project: #{e}"
731
+ end
732
+ ```
733
+
734
+ #### Using the restore_project_with_http_info variant
735
+
736
+ This returns an Array which contains the response data, status code and headers.
737
+
738
+ > <Array(<ProjectDetailResource>, Integer, Hash)> restore_project_with_http_info(organization_id, project_id, idempotency_key)
739
+
740
+ ```ruby
741
+ begin
742
+ # Restore an archived project
743
+ data, status_code, headers = api_instance.restore_project_with_http_info(organization_id, project_id, idempotency_key)
744
+ p status_code # => 2xx
745
+ p headers # => { ... }
746
+ p data # => <ProjectDetailResource>
747
+ rescue Mencoro::ApiError => e
748
+ puts "Error when calling ProjectsApi->restore_project_with_http_info: #{e}"
749
+ end
750
+ ```
751
+
752
+ ### Parameters
753
+
754
+ | Name | Type | Description | Notes |
755
+ | ---- | ---- | ----------- | ----- |
756
+ | **organization_id** | **String** | | |
757
+ | **project_id** | **String** | | |
758
+ | **idempotency_key** | **String** | | |
759
+
760
+ ### Return type
761
+
762
+ [**ProjectDetailResource**](ProjectDetailResource.md)
763
+
764
+ ### Authorization
765
+
766
+ [ApiKey](../README.md#ApiKey)
767
+
768
+ ### HTTP request headers
769
+
770
+ - **Content-Type**: Not defined
771
+ - **Accept**: application/json
772
+
773
+
774
+ ## update_competitor
775
+
776
+ > <CompetitorResource> update_competitor(organization_id, project_id, competitor_id, idempotency_key, create_competitor_request)
777
+
778
+ Replace a competitor
779
+
780
+ Minimum role: manager, on an active organization and a project that is not archived. Replaces the competitor's name, domains and brand names: the lists sent become the lists stored, so a term left out is removed. Both lists are required and neither may be empty — a competitor that matches on nothing would never be found in an answer. A domain may be sent as a full URL or as a bare host; a URL is reduced to its host and a leading \"www.\" is dropped. Duplicates are collapsed. The auto-generated brand description cannot be set, and sending it is refused as an unknown field. Changing the matching rules does NOT re-match the answers already captured: it applies to checks from here on. A competitor belonging to another project answers 404, the same answer an unknown id gets. An Idempotency-Key header is required.
781
+
782
+ ### Examples
783
+
784
+ ```ruby
785
+ require 'time'
786
+ require 'mencoro'
787
+ # setup authorization
788
+ Mencoro.configure do |config|
789
+ # Configure Bearer authorization: ApiKey
790
+ config.access_token = 'YOUR_BEARER_TOKEN'
791
+ end
792
+
793
+ api_instance = Mencoro::ProjectsApi.new
794
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
795
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the organization in the path.
796
+ competitor_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the project in the path.
797
+ idempotency_key = 'idempotency_key_example' # String | Unique per attempt. A retry carrying the same key and the same body is answered from the record instead of running again.
798
+ create_competitor_request = Mencoro::CreateCompetitorRequest.new # CreateCompetitorRequest |
799
+
800
+ begin
801
+ # Replace a competitor
802
+ result = api_instance.update_competitor(organization_id, project_id, competitor_id, idempotency_key, create_competitor_request)
803
+ p result
804
+ rescue Mencoro::ApiError => e
805
+ puts "Error when calling ProjectsApi->update_competitor: #{e}"
806
+ end
807
+ ```
808
+
809
+ #### Using the update_competitor_with_http_info variant
810
+
811
+ This returns an Array which contains the response data, status code and headers.
812
+
813
+ > <Array(<CompetitorResource>, Integer, Hash)> update_competitor_with_http_info(organization_id, project_id, competitor_id, idempotency_key, create_competitor_request)
814
+
815
+ ```ruby
816
+ begin
817
+ # Replace a competitor
818
+ data, status_code, headers = api_instance.update_competitor_with_http_info(organization_id, project_id, competitor_id, idempotency_key, create_competitor_request)
819
+ p status_code # => 2xx
820
+ p headers # => { ... }
821
+ p data # => <CompetitorResource>
822
+ rescue Mencoro::ApiError => e
823
+ puts "Error when calling ProjectsApi->update_competitor_with_http_info: #{e}"
824
+ end
825
+ ```
826
+
827
+ ### Parameters
828
+
829
+ | Name | Type | Description | Notes |
830
+ | ---- | ---- | ----------- | ----- |
831
+ | **organization_id** | **String** | | |
832
+ | **project_id** | **String** | Must belong to the organization in the path. | |
833
+ | **competitor_id** | **String** | Must belong to the project in the path. | |
834
+ | **idempotency_key** | **String** | Unique per attempt. A retry carrying the same key and the same body is answered from the record instead of running again. | |
835
+ | **create_competitor_request** | [**CreateCompetitorRequest**](CreateCompetitorRequest.md) | | |
836
+
837
+ ### Return type
838
+
839
+ [**CompetitorResource**](CompetitorResource.md)
840
+
841
+ ### Authorization
842
+
843
+ [ApiKey](../README.md#ApiKey)
844
+
845
+ ### HTTP request headers
846
+
847
+ - **Content-Type**: application/json
848
+ - **Accept**: application/json
849
+
850
+
851
+ ## update_project
852
+
853
+ > <ProjectDetailResource> update_project(organization_id, project_id, idempotency_key, update_project_request)
854
+
855
+ Rename a project
856
+
857
+ Minimum role: manager, in an active organization. Requires the \"write\" capability. `name` is the only writable field and it is required. What is NOT done: the monitored domains and brand names are not touched (use updateProjectBrandProfile) and competitors are not touched, added or removed (use the competitor endpoints). Sending `websiteDomains`, `brandNames` or `competitors` here is refused with the field named, never applied in part and never ignored. Renaming a project changes nothing about the data already collected against it. A project that belongs to another organization answers 404, never 403. An archived project answers 409: restore it first — unless the call is a retry carrying the key of a rename that already succeeded, which is answered from the record whatever the project's state is now. Send an Idempotency-Key; a retry with the same key and body returns the recorded answer.
858
+
859
+ ### Examples
860
+
861
+ ```ruby
862
+ require 'time'
863
+ require 'mencoro'
864
+ # setup authorization
865
+ Mencoro.configure do |config|
866
+ # Configure Bearer authorization: ApiKey
867
+ config.access_token = 'YOUR_BEARER_TOKEN'
868
+ end
869
+
870
+ api_instance = Mencoro::ProjectsApi.new
871
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
872
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
873
+ idempotency_key = 'idempotency_key_example' # String |
874
+ update_project_request = Mencoro::UpdateProjectRequest.new({name: 'name_example'}) # UpdateProjectRequest |
875
+
876
+ begin
877
+ # Rename a project
878
+ result = api_instance.update_project(organization_id, project_id, idempotency_key, update_project_request)
879
+ p result
880
+ rescue Mencoro::ApiError => e
881
+ puts "Error when calling ProjectsApi->update_project: #{e}"
882
+ end
883
+ ```
884
+
885
+ #### Using the update_project_with_http_info variant
886
+
887
+ This returns an Array which contains the response data, status code and headers.
888
+
889
+ > <Array(<ProjectDetailResource>, Integer, Hash)> update_project_with_http_info(organization_id, project_id, idempotency_key, update_project_request)
890
+
891
+ ```ruby
892
+ begin
893
+ # Rename a project
894
+ data, status_code, headers = api_instance.update_project_with_http_info(organization_id, project_id, idempotency_key, update_project_request)
895
+ p status_code # => 2xx
896
+ p headers # => { ... }
897
+ p data # => <ProjectDetailResource>
898
+ rescue Mencoro::ApiError => e
899
+ puts "Error when calling ProjectsApi->update_project_with_http_info: #{e}"
900
+ end
901
+ ```
902
+
903
+ ### Parameters
904
+
905
+ | Name | Type | Description | Notes |
906
+ | ---- | ---- | ----------- | ----- |
907
+ | **organization_id** | **String** | | |
908
+ | **project_id** | **String** | | |
909
+ | **idempotency_key** | **String** | | |
910
+ | **update_project_request** | [**UpdateProjectRequest**](UpdateProjectRequest.md) | | |
911
+
912
+ ### Return type
913
+
914
+ [**ProjectDetailResource**](ProjectDetailResource.md)
915
+
916
+ ### Authorization
917
+
918
+ [ApiKey](../README.md#ApiKey)
919
+
920
+ ### HTTP request headers
921
+
922
+ - **Content-Type**: application/json
923
+ - **Accept**: application/json
924
+
925
+
926
+ ## update_project_brand_profile
927
+
928
+ > <BrandProfileResource> update_project_brand_profile(organization_id, project_id, idempotency_key, update_project_brand_profile_request)
929
+
930
+ Replace a project's brand monitoring profile
931
+
932
+ Minimum role: manager, on an active organization and a project that is not archived. Replaces the brand terms and website domains every check of this project is matched against: the lists sent become the lists stored, so a term left out is removed. Both lists are required and neither may be empty — a project must keep at least one brand name and one domain to match anything. A domain may be sent as a full URL or as a bare host; a URL is reduced to its host and a leading \"www.\" is dropped, which is the form the profile is read back in. Duplicates, including two URLs that reduce to the same host, are collapsed. This operation does NOT touch the project name or its competitors, which are separate resources, and it does not regenerate the brand description: that runs asynchronously afterwards, so the description in the response is the one stored at the time of the write. An Idempotency-Key header is required.
933
+
934
+ ### Examples
935
+
936
+ ```ruby
937
+ require 'time'
938
+ require 'mencoro'
939
+ # setup authorization
940
+ Mencoro.configure do |config|
941
+ # Configure Bearer authorization: ApiKey
942
+ config.access_token = 'YOUR_BEARER_TOKEN'
943
+ end
944
+
945
+ api_instance = Mencoro::ProjectsApi.new
946
+ organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
947
+ project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the organization in the path.
948
+ idempotency_key = 'idempotency_key_example' # String | Unique per attempt. A retry carrying the same key and the same body is answered from the record instead of running again.
949
+ update_project_brand_profile_request = Mencoro::UpdateProjectBrandProfileRequest.new # UpdateProjectBrandProfileRequest |
950
+
951
+ begin
952
+ # Replace a project's brand monitoring profile
953
+ result = api_instance.update_project_brand_profile(organization_id, project_id, idempotency_key, update_project_brand_profile_request)
954
+ p result
955
+ rescue Mencoro::ApiError => e
956
+ puts "Error when calling ProjectsApi->update_project_brand_profile: #{e}"
957
+ end
958
+ ```
959
+
960
+ #### Using the update_project_brand_profile_with_http_info variant
961
+
962
+ This returns an Array which contains the response data, status code and headers.
963
+
964
+ > <Array(<BrandProfileResource>, Integer, Hash)> update_project_brand_profile_with_http_info(organization_id, project_id, idempotency_key, update_project_brand_profile_request)
965
+
966
+ ```ruby
967
+ begin
968
+ # Replace a project's brand monitoring profile
969
+ data, status_code, headers = api_instance.update_project_brand_profile_with_http_info(organization_id, project_id, idempotency_key, update_project_brand_profile_request)
970
+ p status_code # => 2xx
971
+ p headers # => { ... }
972
+ p data # => <BrandProfileResource>
973
+ rescue Mencoro::ApiError => e
974
+ puts "Error when calling ProjectsApi->update_project_brand_profile_with_http_info: #{e}"
975
+ end
976
+ ```
977
+
978
+ ### Parameters
979
+
980
+ | Name | Type | Description | Notes |
981
+ | ---- | ---- | ----------- | ----- |
982
+ | **organization_id** | **String** | | |
983
+ | **project_id** | **String** | Must belong to the organization in the path. | |
984
+ | **idempotency_key** | **String** | Unique per attempt. A retry carrying the same key and the same body is answered from the record instead of running again. | |
985
+ | **update_project_brand_profile_request** | [**UpdateProjectBrandProfileRequest**](UpdateProjectBrandProfileRequest.md) | | |
986
+
987
+ ### Return type
988
+
989
+ [**BrandProfileResource**](BrandProfileResource.md)
990
+
991
+ ### Authorization
992
+
993
+ [ApiKey](../README.md#ApiKey)
994
+
995
+ ### HTTP request headers
996
+
997
+ - **Content-Type**: application/json
998
+ - **Accept**: application/json
999
+