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.
- checksums.yaml +7 -0
- data/Gemfile +9 -0
- data/README.md +304 -0
- data/Rakefile +10 -0
- data/docs/AcceptedJobResource.md +22 -0
- data/docs/AccountApi.md +141 -0
- data/docs/AiResponseReportResource.md +28 -0
- data/docs/AiResponseResource.md +36 -0
- data/docs/AnalyticsApi.md +1320 -0
- data/docs/ApplyClusteringJobOutcome.md +26 -0
- data/docs/ApplyClusteringJobOutcomeClustersInner.md +22 -0
- data/docs/ApplyClusteringJobOutcomeFailedInner.md +22 -0
- data/docs/ApplyClusteringJobOutcomeSkippedClustersInner.md +20 -0
- data/docs/ApplyClusteringJobOutcomeSuccessfulInner.md +20 -0
- data/docs/AsyncJobResource.md +24 -0
- data/docs/BatchChangeTrackedQueryCheckFrequencyRequestData.md +20 -0
- data/docs/BatchChangeTrackedQueryPassesRequestData.md +20 -0
- data/docs/BatchCreateQueryClustersOutcome.md +20 -0
- data/docs/BatchCreateQueryClustersOutcomeFailedInner.md +22 -0
- data/docs/BatchCreateQueryClustersOutcomeSuccessfulInner.md +20 -0
- data/docs/BatchCreateQueryClustersRequestData.md +18 -0
- data/docs/BatchCreateTrackedQueriesRequestData.md +30 -0
- data/docs/BatchCreateTrackedQueriesResultResource.md +20 -0
- data/docs/BatchCreateTrackedQueriesResultResourceFailedInner.md +26 -0
- data/docs/BatchCreateTrackedQueriesResultResourceSuccessfulInner.md +24 -0
- data/docs/BatchForceCheckTrackedQueries200Response.md +20 -0
- data/docs/BatchForceCheckTrackedQueries200ResponseFailedInner.md +22 -0
- data/docs/BatchPauseTrackedQueries200Response.md +20 -0
- data/docs/BatchPauseTrackedQueries200ResponseFailedInner.md +22 -0
- data/docs/BatchPauseTrackedQueries200ResponseSuccessfulInner.md +18 -0
- data/docs/BatchResumeTrackedQueries200Response.md +20 -0
- data/docs/BatchTargetsRequestData.md +18 -0
- data/docs/BatchWriteOutcome.md +20 -0
- data/docs/BatchWriteOutcomeFailedInner.md +22 -0
- data/docs/BillingApi.md +77 -0
- data/docs/BrandProfileResource.md +24 -0
- data/docs/BulkAddClustersToTrackedQueries200Response.md +20 -0
- data/docs/BulkAddClustersToTrackedQueriesRequest.md +20 -0
- data/docs/BulkRemoveClustersFromTrackedQueries200Response.md +20 -0
- data/docs/BulkRemoveClustersFromTrackedQueriesRequest.md +20 -0
- data/docs/CapturesApi.md +267 -0
- data/docs/ChangeMemberRoleRequest.md +18 -0
- data/docs/ChangeTrackedQueryCheckFrequencyRequestData.md +18 -0
- data/docs/ChangeTrackedQueryPassesRequestData.md +18 -0
- data/docs/CitationResource.md +36 -0
- data/docs/ClusterMembershipRequestData.md +18 -0
- data/docs/ClustersApi.md +465 -0
- data/docs/CompetitorResource.md +24 -0
- data/docs/CreateCompetitorRequest.md +22 -0
- data/docs/CreateInvitation200Response.md +22 -0
- data/docs/CreateInvitation201Response.md +32 -0
- data/docs/CreateInvitationRequest.md +20 -0
- data/docs/CreateOrganization201Response.md +22 -0
- data/docs/CreateOrganizationRequest.md +18 -0
- data/docs/CreateProjectRequest.md +24 -0
- data/docs/CreateProjectRequestCompetitorsInner.md +22 -0
- data/docs/CreateQueryCluster409Response.md +22 -0
- data/docs/CreateQueryClusterRequest.md +18 -0
- data/docs/DeleteQueryCluster200Response.md +22 -0
- data/docs/DiscoveryApi.md +311 -0
- data/docs/EntitlementsResource.md +38 -0
- data/docs/GetAvailableFilters200Response.md +22 -0
- data/docs/GetAvailableFilters200ResponseClustersInner.md +20 -0
- data/docs/GetMeStats200Response.md +20 -0
- data/docs/GetMeStats200ResponseOrganizations.md +18 -0
- data/docs/GetMeStats200ResponseProjects.md +20 -0
- data/docs/GetMembershipStats200Response.md +30 -0
- data/docs/GetMentionSamples400Response.md +24 -0
- data/docs/GetMentionSamples400ResponseDetailsValueInner.md +22 -0
- data/docs/GetMetricGlossary200Response.md +18 -0
- data/docs/GetMetricGlossary200ResponseMetricsInner.md +30 -0
- data/docs/GetOrganizationOverview200Response.md +20 -0
- data/docs/GetOrganizationOverview200ResponseAggregate.md +30 -0
- data/docs/GetOrganizationOverview200ResponseProjectsInner.md +32 -0
- data/docs/GetOrganizationStats200Response.md +22 -0
- data/docs/GetOrganizationStats200ResponseInvitations.md +18 -0
- data/docs/GetOrganizationStats200ResponseMembers.md +18 -0
- data/docs/GetOrganizationStats200ResponseProjects.md +20 -0
- data/docs/GetShareOfVoiceFormula200Response.md +24 -0
- data/docs/GetTrackingCoverage200Response.md +30 -0
- data/docs/GetTrackingCoverage200ResponseSampleInner.md +28 -0
- data/docs/InvitationResource.md +30 -0
- data/docs/InvitationsApi.md +243 -0
- data/docs/JobsApi.md +79 -0
- data/docs/KeywordListingResource.md +88 -0
- data/docs/KeywordListingResourceMentionTypeCounts.md +26 -0
- data/docs/ListAiResponses200Response.md +20 -0
- data/docs/ListCompetitors200Response.md +20 -0
- data/docs/ListInvitations200Response.md +20 -0
- data/docs/ListKeywordListings200Response.md +24 -0
- data/docs/ListMembers200Response.md +20 -0
- data/docs/ListOrganizations200Response.md +20 -0
- data/docs/ListProjects200Response.md +20 -0
- data/docs/ListQueryClusters200Response.md +20 -0
- data/docs/ListSearchSnapshots200Response.md +20 -0
- data/docs/ListShoppingSnapshots200Response.md +20 -0
- data/docs/MeResource.md +34 -0
- data/docs/MemberResource.md +28 -0
- data/docs/MembersApi.md +391 -0
- data/docs/OperationEffect.md +22 -0
- data/docs/OrganizationOperationsApi.md +77 -0
- data/docs/OrganizationResource.md +32 -0
- data/docs/OrganizationsApi.md +807 -0
- data/docs/PreviewOrganizationOperation200Response.md +34 -0
- data/docs/PreviewOrganizationOperation200ResponseOrganization.md +20 -0
- data/docs/PreviewOrganizationOperationRequest.md +24 -0
- data/docs/ProjectDetailResource.md +32 -0
- data/docs/ProjectDetailResourceCompetitorsInner.md +24 -0
- data/docs/ProjectResource.md +50 -0
- data/docs/ProjectedMonthlyChecksResource.md +20 -0
- data/docs/ProjectsApi.md +999 -0
- data/docs/QueryClusterResource.md +22 -0
- data/docs/ReportAiResponseRequest.md +22 -0
- data/docs/SearchResultResource.md +32 -0
- data/docs/SearchSnapshotResource.md +28 -0
- data/docs/SearchTrackedQueries200Response.md +20 -0
- data/docs/ShoppingOfferResource.md +38 -0
- data/docs/ShoppingSnapshotResource.md +28 -0
- data/docs/StartBrandDiscoveryJobRequest.md +20 -0
- data/docs/StartBrandNameSuggestionJobRequest.md +24 -0
- data/docs/StartClusteringJobRequestData.md +22 -0
- data/docs/StartKeywordDiscoveryJobRequest.md +24 -0
- data/docs/StartPromptDiscoveryJobRequest.md +24 -0
- data/docs/SubmittedChecksResource.md +20 -0
- data/docs/SubscriptionResource.md +42 -0
- data/docs/TrackedQueriesApi.md +1549 -0
- data/docs/TrackedQueryCountResource.md +20 -0
- data/docs/TrackedQueryDetailResource.md +38 -0
- data/docs/TrackedQueryResource.md +52 -0
- data/docs/TrackedQueryUsageResource.md +18 -0
- data/docs/UpdateOrganizationRequest.md +22 -0
- data/docs/UpdateProjectBrandProfileRequest.md +20 -0
- data/docs/UpdateProjectRequest.md +18 -0
- data/git_push.sh +57 -0
- data/lib/mencoro/api/account_api.rb +136 -0
- data/lib/mencoro/api/analytics_api.rb +1555 -0
- data/lib/mencoro/api/billing_api.rb +85 -0
- data/lib/mencoro/api/captures_api.rb +338 -0
- data/lib/mencoro/api/clusters_api.rb +548 -0
- data/lib/mencoro/api/discovery_api.rb +360 -0
- data/lib/mencoro/api/invitations_api.rb +302 -0
- data/lib/mencoro/api/jobs_api.rb +91 -0
- data/lib/mencoro/api/members_api.rb +453 -0
- data/lib/mencoro/api/organization_operations_api.rb +90 -0
- data/lib/mencoro/api/organizations_api.rb +835 -0
- data/lib/mencoro/api/projects_api.rb +1158 -0
- data/lib/mencoro/api/tracked_queries_api.rb +1792 -0
- data/lib/mencoro/api_client.rb +441 -0
- data/lib/mencoro/api_error.rb +58 -0
- data/lib/mencoro/api_model_base.rb +88 -0
- data/lib/mencoro/configuration.rb +392 -0
- data/lib/mencoro/models/accepted_job_resource.rb +220 -0
- data/lib/mencoro/models/ai_response_report_resource.rb +311 -0
- data/lib/mencoro/models/ai_response_resource.rb +412 -0
- data/lib/mencoro/models/apply_clustering_job_outcome.rb +199 -0
- data/lib/mencoro/models/apply_clustering_job_outcome_clusters_inner.rb +165 -0
- data/lib/mencoro/models/apply_clustering_job_outcome_failed_inner.rb +165 -0
- data/lib/mencoro/models/apply_clustering_job_outcome_skipped_clusters_inner.rb +156 -0
- data/lib/mencoro/models/apply_clustering_job_outcome_successful_inner.rb +158 -0
- data/lib/mencoro/models/async_job_resource.rb +256 -0
- data/lib/mencoro/models/batch_change_tracked_query_check_frequency_request_data.rb +237 -0
- data/lib/mencoro/models/batch_change_tracked_query_passes_request_data.rb +231 -0
- data/lib/mencoro/models/batch_create_query_clusters_outcome.rb +163 -0
- data/lib/mencoro/models/batch_create_query_clusters_outcome_failed_inner.rb +165 -0
- data/lib/mencoro/models/batch_create_query_clusters_outcome_successful_inner.rb +156 -0
- data/lib/mencoro/models/batch_create_query_clusters_request_data.rb +186 -0
- data/lib/mencoro/models/batch_create_tracked_queries_request_data.rb +399 -0
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource.rb +163 -0
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_failed_inner.rb +183 -0
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_successful_inner.rb +174 -0
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response_failed_inner.rb +165 -0
- data/lib/mencoro/models/batch_pause_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_failed_inner.rb +165 -0
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_successful_inner.rb +147 -0
- data/lib/mencoro/models/batch_resume_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/batch_targets_request_data.rb +186 -0
- data/lib/mencoro/models/batch_write_outcome.rb +163 -0
- data/lib/mencoro/models/batch_write_outcome_failed_inner.rb +166 -0
- data/lib/mencoro/models/brand_profile_resource.rb +235 -0
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries_request.rb +218 -0
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries_request.rb +218 -0
- data/lib/mencoro/models/change_member_role_request.rb +181 -0
- data/lib/mencoro/models/change_tracked_query_check_frequency_request_data.rb +190 -0
- data/lib/mencoro/models/change_tracked_query_passes_request_data.rb +184 -0
- data/lib/mencoro/models/citation_resource.rb +306 -0
- data/lib/mencoro/models/cluster_membership_request_data.rb +186 -0
- data/lib/mencoro/models/competitor_resource.rb +250 -0
- data/lib/mencoro/models/create_competitor_request.rb +247 -0
- data/lib/mencoro/models/create_invitation200_response.rb +202 -0
- data/lib/mencoro/models/create_invitation201_response.rb +347 -0
- data/lib/mencoro/models/create_invitation_request.rb +192 -0
- data/lib/mencoro/models/create_organization201_response.rb +166 -0
- data/lib/mencoro/models/create_organization_request.rb +175 -0
- data/lib/mencoro/models/create_project_request.rb +307 -0
- data/lib/mencoro/models/create_project_request_competitors_inner.rb +256 -0
- data/lib/mencoro/models/create_query_cluster409_response.rb +165 -0
- data/lib/mencoro/models/create_query_cluster_request.rb +167 -0
- data/lib/mencoro/models/delete_query_cluster200_response.rb +168 -0
- data/lib/mencoro/models/entitlements_resource.rb +328 -0
- data/lib/mencoro/models/get_available_filters200_response.rb +173 -0
- data/lib/mencoro/models/get_available_filters200_response_clusters_inner.rb +157 -0
- data/lib/mencoro/models/get_me_stats200_response.rb +156 -0
- data/lib/mencoro/models/get_me_stats200_response_organizations.rb +167 -0
- data/lib/mencoro/models/get_me_stats200_response_projects.rb +196 -0
- data/lib/mencoro/models/get_membership_stats200_response.rb +322 -0
- data/lib/mencoro/models/get_mention_samples400_response.rb +231 -0
- data/lib/mencoro/models/get_mention_samples400_response_details_value_inner.rb +168 -0
- data/lib/mencoro/models/get_metric_glossary200_response.rb +149 -0
- data/lib/mencoro/models/get_metric_glossary200_response_metrics_inner.rb +240 -0
- data/lib/mencoro/models/get_organization_overview200_response.rb +158 -0
- data/lib/mencoro/models/get_organization_overview200_response_aggregate.rb +209 -0
- data/lib/mencoro/models/get_organization_overview200_response_projects_inner.rb +218 -0
- data/lib/mencoro/models/get_organization_stats200_response.rb +165 -0
- data/lib/mencoro/models/get_organization_stats200_response_invitations.rb +167 -0
- data/lib/mencoro/models/get_organization_stats200_response_members.rb +167 -0
- data/lib/mencoro/models/get_organization_stats200_response_projects.rb +196 -0
- data/lib/mencoro/models/get_share_of_voice_formula200_response.rb +182 -0
- data/lib/mencoro/models/get_tracking_coverage200_response.rb +209 -0
- data/lib/mencoro/models/get_tracking_coverage200_response_sample_inner.rb +229 -0
- data/lib/mencoro/models/invitation_resource.rb +331 -0
- data/lib/mencoro/models/keyword_listing_resource.rb +798 -0
- data/lib/mencoro/models/keyword_listing_resource_mention_type_counts.rb +184 -0
- data/lib/mencoro/models/list_ai_responses200_response.rb +159 -0
- data/lib/mencoro/models/list_competitors200_response.rb +159 -0
- data/lib/mencoro/models/list_invitations200_response.rb +158 -0
- data/lib/mencoro/models/list_keyword_listings200_response.rb +180 -0
- data/lib/mencoro/models/list_members200_response.rb +158 -0
- data/lib/mencoro/models/list_organizations200_response.rb +158 -0
- data/lib/mencoro/models/list_projects200_response.rb +159 -0
- data/lib/mencoro/models/list_query_clusters200_response.rb +159 -0
- data/lib/mencoro/models/list_search_snapshots200_response.rb +159 -0
- data/lib/mencoro/models/list_shopping_snapshots200_response.rb +159 -0
- data/lib/mencoro/models/me_resource.rb +394 -0
- data/lib/mencoro/models/member_resource.rb +322 -0
- data/lib/mencoro/models/operation_effect.rb +204 -0
- data/lib/mencoro/models/organization_resource.rb +326 -0
- data/lib/mencoro/models/preview_organization_operation200_response.rb +236 -0
- data/lib/mencoro/models/preview_organization_operation200_response_organization.rb +158 -0
- data/lib/mencoro/models/preview_organization_operation_request.rb +213 -0
- data/lib/mencoro/models/project_detail_resource.rb +380 -0
- data/lib/mencoro/models/project_detail_resource_competitors_inner.rb +178 -0
- data/lib/mencoro/models/project_resource.rb +422 -0
- data/lib/mencoro/models/projected_monthly_checks_resource.rb +211 -0
- data/lib/mencoro/models/query_cluster_resource.rb +229 -0
- data/lib/mencoro/models/report_ai_response_request.rb +227 -0
- data/lib/mencoro/models/search_result_resource.rb +284 -0
- data/lib/mencoro/models/search_snapshot_resource.rb +302 -0
- data/lib/mencoro/models/search_tracked_queries200_response.rb +158 -0
- data/lib/mencoro/models/shopping_offer_resource.rb +381 -0
- data/lib/mencoro/models/shopping_snapshot_resource.rb +302 -0
- data/lib/mencoro/models/start_brand_discovery_job_request.rb +185 -0
- data/lib/mencoro/models/start_brand_name_suggestion_job_request.rb +287 -0
- data/lib/mencoro/models/start_clustering_job_request_data.rb +249 -0
- data/lib/mencoro/models/start_keyword_discovery_job_request.rb +266 -0
- data/lib/mencoro/models/start_prompt_discovery_job_request.rb +276 -0
- data/lib/mencoro/models/submitted_checks_resource.rb +195 -0
- data/lib/mencoro/models/subscription_resource.rb +362 -0
- data/lib/mencoro/models/tracked_query_count_resource.rb +193 -0
- data/lib/mencoro/models/tracked_query_detail_resource.rb +440 -0
- data/lib/mencoro/models/tracked_query_resource.rb +492 -0
- data/lib/mencoro/models/tracked_query_usage_resource.rb +175 -0
- data/lib/mencoro/models/update_organization_request.rb +195 -0
- data/lib/mencoro/models/update_project_brand_profile_request.rb +218 -0
- data/lib/mencoro/models/update_project_request.rb +182 -0
- data/lib/mencoro/version.rb +15 -0
- data/lib/mencoro.rb +169 -0
- data/mencoro.gemspec +41 -0
- data/spec/api/account_api_spec.rb +57 -0
- data/spec/api/analytics_api_spec.rb +318 -0
- data/spec/api/billing_api_spec.rb +47 -0
- data/spec/api/captures_api_spec.rb +93 -0
- data/spec/api/clusters_api_spec.rb +126 -0
- data/spec/api/discovery_api_spec.rb +94 -0
- data/spec/api/invitations_api_spec.rb +83 -0
- data/spec/api/jobs_api_spec.rb +48 -0
- data/spec/api/members_api_spec.rb +111 -0
- data/spec/api/organization_operations_api_spec.rb +47 -0
- data/spec/api/organizations_api_spec.rb +181 -0
- data/spec/api/projects_api_spec.rb +229 -0
- data/spec/api/tracked_queries_api_spec.rb +344 -0
- data/spec/models/accepted_job_resource_spec.rb +48 -0
- data/spec/models/ai_response_report_resource_spec.rb +70 -0
- data/spec/models/ai_response_resource_spec.rb +90 -0
- data/spec/models/apply_clustering_job_outcome_clusters_inner_spec.rb +48 -0
- data/spec/models/apply_clustering_job_outcome_failed_inner_spec.rb +48 -0
- data/spec/models/apply_clustering_job_outcome_skipped_clusters_inner_spec.rb +42 -0
- data/spec/models/apply_clustering_job_outcome_spec.rb +60 -0
- data/spec/models/apply_clustering_job_outcome_successful_inner_spec.rb +42 -0
- data/spec/models/async_job_resource_spec.rb +62 -0
- data/spec/models/batch_change_tracked_query_check_frequency_request_data_spec.rb +46 -0
- data/spec/models/batch_change_tracked_query_passes_request_data_spec.rb +42 -0
- data/spec/models/batch_create_query_clusters_outcome_failed_inner_spec.rb +48 -0
- data/spec/models/batch_create_query_clusters_outcome_spec.rb +42 -0
- data/spec/models/batch_create_query_clusters_outcome_successful_inner_spec.rb +42 -0
- data/spec/models/batch_create_query_clusters_request_data_spec.rb +36 -0
- data/spec/models/batch_create_tracked_queries_request_data_spec.rb +80 -0
- data/spec/models/batch_create_tracked_queries_result_resource_failed_inner_spec.rb +60 -0
- data/spec/models/batch_create_tracked_queries_result_resource_spec.rb +42 -0
- data/spec/models/batch_create_tracked_queries_result_resource_successful_inner_spec.rb +54 -0
- data/spec/models/batch_force_check_tracked_queries200_response_failed_inner_spec.rb +48 -0
- data/spec/models/batch_force_check_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/batch_pause_tracked_queries200_response_failed_inner_spec.rb +48 -0
- data/spec/models/batch_pause_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/batch_pause_tracked_queries200_response_successful_inner_spec.rb +36 -0
- data/spec/models/batch_resume_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/batch_targets_request_data_spec.rb +36 -0
- data/spec/models/batch_write_outcome_failed_inner_spec.rb +48 -0
- data/spec/models/batch_write_outcome_spec.rb +42 -0
- data/spec/models/brand_profile_resource_spec.rb +54 -0
- data/spec/models/bulk_add_clusters_to_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/bulk_add_clusters_to_tracked_queries_request_spec.rb +42 -0
- data/spec/models/bulk_remove_clusters_from_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/bulk_remove_clusters_from_tracked_queries_request_spec.rb +42 -0
- data/spec/models/change_member_role_request_spec.rb +40 -0
- data/spec/models/change_tracked_query_check_frequency_request_data_spec.rb +40 -0
- data/spec/models/change_tracked_query_passes_request_data_spec.rb +36 -0
- data/spec/models/citation_resource_spec.rb +90 -0
- data/spec/models/cluster_membership_request_data_spec.rb +36 -0
- data/spec/models/competitor_resource_spec.rb +54 -0
- data/spec/models/create_competitor_request_spec.rb +48 -0
- data/spec/models/create_invitation200_response_spec.rb +52 -0
- data/spec/models/create_invitation201_response_spec.rb +86 -0
- data/spec/models/create_invitation_request_spec.rb +46 -0
- data/spec/models/create_organization201_response_spec.rb +48 -0
- data/spec/models/create_organization_request_spec.rb +36 -0
- data/spec/models/create_project_request_competitors_inner_spec.rb +48 -0
- data/spec/models/create_project_request_spec.rb +54 -0
- data/spec/models/create_query_cluster409_response_spec.rb +48 -0
- data/spec/models/create_query_cluster_request_spec.rb +36 -0
- data/spec/models/delete_query_cluster200_response_spec.rb +48 -0
- data/spec/models/entitlements_resource_spec.rb +104 -0
- data/spec/models/get_available_filters200_response_clusters_inner_spec.rb +42 -0
- data/spec/models/get_available_filters200_response_spec.rb +48 -0
- data/spec/models/get_me_stats200_response_organizations_spec.rb +36 -0
- data/spec/models/get_me_stats200_response_projects_spec.rb +42 -0
- data/spec/models/get_me_stats200_response_spec.rb +42 -0
- data/spec/models/get_membership_stats200_response_spec.rb +72 -0
- data/spec/models/get_mention_samples400_response_details_value_inner_spec.rb +48 -0
- data/spec/models/get_mention_samples400_response_spec.rb +54 -0
- data/spec/models/get_metric_glossary200_response_metrics_inner_spec.rb +76 -0
- data/spec/models/get_metric_glossary200_response_spec.rb +36 -0
- data/spec/models/get_organization_overview200_response_aggregate_spec.rb +72 -0
- data/spec/models/get_organization_overview200_response_projects_inner_spec.rb +78 -0
- data/spec/models/get_organization_overview200_response_spec.rb +42 -0
- data/spec/models/get_organization_stats200_response_invitations_spec.rb +36 -0
- data/spec/models/get_organization_stats200_response_members_spec.rb +36 -0
- data/spec/models/get_organization_stats200_response_projects_spec.rb +42 -0
- data/spec/models/get_organization_stats200_response_spec.rb +48 -0
- data/spec/models/get_share_of_voice_formula200_response_spec.rb +54 -0
- data/spec/models/get_tracking_coverage200_response_sample_inner_spec.rb +70 -0
- data/spec/models/get_tracking_coverage200_response_spec.rb +72 -0
- data/spec/models/invitation_resource_spec.rb +80 -0
- data/spec/models/keyword_listing_resource_mention_type_counts_spec.rb +60 -0
- data/spec/models/keyword_listing_resource_spec.rb +262 -0
- data/spec/models/list_ai_responses200_response_spec.rb +42 -0
- data/spec/models/list_competitors200_response_spec.rb +42 -0
- data/spec/models/list_invitations200_response_spec.rb +42 -0
- data/spec/models/list_keyword_listings200_response_spec.rb +54 -0
- data/spec/models/list_members200_response_spec.rb +42 -0
- data/spec/models/list_organizations200_response_spec.rb +42 -0
- data/spec/models/list_projects200_response_spec.rb +42 -0
- data/spec/models/list_query_clusters200_response_spec.rb +42 -0
- data/spec/models/list_search_snapshots200_response_spec.rb +42 -0
- data/spec/models/list_shopping_snapshots200_response_spec.rb +42 -0
- data/spec/models/me_resource_spec.rb +92 -0
- data/spec/models/member_resource_spec.rb +74 -0
- data/spec/models/operation_effect_spec.rb +48 -0
- data/spec/models/organization_resource_spec.rb +86 -0
- data/spec/models/preview_organization_operation200_response_organization_spec.rb +42 -0
- data/spec/models/preview_organization_operation200_response_spec.rb +84 -0
- data/spec/models/preview_organization_operation_request_spec.rb +58 -0
- data/spec/models/project_detail_resource_competitors_inner_spec.rb +54 -0
- data/spec/models/project_detail_resource_spec.rb +82 -0
- data/spec/models/project_resource_spec.rb +136 -0
- data/spec/models/projected_monthly_checks_resource_spec.rb +42 -0
- data/spec/models/query_cluster_resource_spec.rb +48 -0
- data/spec/models/report_ai_response_request_spec.rb +52 -0
- data/spec/models/search_result_resource_spec.rb +78 -0
- data/spec/models/search_snapshot_resource_spec.rb +66 -0
- data/spec/models/search_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/shopping_offer_resource_spec.rb +96 -0
- data/spec/models/shopping_snapshot_resource_spec.rb +66 -0
- data/spec/models/start_brand_discovery_job_request_spec.rb +42 -0
- data/spec/models/start_brand_name_suggestion_job_request_spec.rb +54 -0
- data/spec/models/start_clustering_job_request_data_spec.rb +52 -0
- data/spec/models/start_keyword_discovery_job_request_spec.rb +54 -0
- data/spec/models/start_prompt_discovery_job_request_spec.rb +54 -0
- data/spec/models/submitted_checks_resource_spec.rb +42 -0
- data/spec/models/subscription_resource_spec.rb +120 -0
- data/spec/models/tracked_query_count_resource_spec.rb +42 -0
- data/spec/models/tracked_query_detail_resource_spec.rb +108 -0
- data/spec/models/tracked_query_resource_spec.rb +150 -0
- data/spec/models/tracked_query_usage_resource_spec.rb +36 -0
- data/spec/models/update_organization_request_spec.rb +48 -0
- data/spec/models/update_project_brand_profile_request_spec.rb +42 -0
- data/spec/models/update_project_request_spec.rb +36 -0
- data/spec/spec_helper.rb +111 -0
- metadata +641 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'cgi'
|
|
14
|
+
|
|
15
|
+
module Mencoro
|
|
16
|
+
class BillingApi
|
|
17
|
+
attr_accessor :api_client
|
|
18
|
+
|
|
19
|
+
def initialize(api_client = ApiClient.default)
|
|
20
|
+
@api_client = api_client
|
|
21
|
+
end
|
|
22
|
+
# Get the subscription of an organization
|
|
23
|
+
# Minimum role: viewer. The most recent subscription contract of the organization, whatever its state: tier, billing interval, check budget and consumption, and the cancellation and grace dates. An organization that has never subscribed answers 200 with \"status\": \"none\" and every other field null - a null is \"not applicable\", never a stand-in for a zero budget or zero consumption. Stripe identifiers, prices and payment methods are not part of this API.
|
|
24
|
+
# @param organization_id [String]
|
|
25
|
+
# @param [Hash] opts the optional parameters
|
|
26
|
+
# @return [SubscriptionResource]
|
|
27
|
+
def get_subscription(organization_id, opts = {})
|
|
28
|
+
data, _status_code, _headers = get_subscription_with_http_info(organization_id, opts)
|
|
29
|
+
data
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Get the subscription of an organization
|
|
33
|
+
# Minimum role: viewer. The most recent subscription contract of the organization, whatever its state: tier, billing interval, check budget and consumption, and the cancellation and grace dates. An organization that has never subscribed answers 200 with \"status\": \"none\" and every other field null - a null is \"not applicable\", never a stand-in for a zero budget or zero consumption. Stripe identifiers, prices and payment methods are not part of this API.
|
|
34
|
+
# @param organization_id [String]
|
|
35
|
+
# @param [Hash] opts the optional parameters
|
|
36
|
+
# @return [Array<(SubscriptionResource, Integer, Hash)>] SubscriptionResource data, response status code and response headers
|
|
37
|
+
def get_subscription_with_http_info(organization_id, opts = {})
|
|
38
|
+
if @api_client.config.debugging
|
|
39
|
+
@api_client.config.logger.debug 'Calling API: BillingApi.get_subscription ...'
|
|
40
|
+
end
|
|
41
|
+
# verify the required parameter 'organization_id' is set
|
|
42
|
+
if @api_client.config.client_side_validation && organization_id.nil?
|
|
43
|
+
fail ArgumentError, "Missing the required parameter 'organization_id' when calling BillingApi.get_subscription"
|
|
44
|
+
end
|
|
45
|
+
# resource path
|
|
46
|
+
local_var_path = '/api/v1/organizations/{organizationId}/subscription'.sub('{organizationId}', CGI.escape(organization_id.to_s))
|
|
47
|
+
|
|
48
|
+
# query parameters
|
|
49
|
+
query_params = opts[:query_params] || {}
|
|
50
|
+
|
|
51
|
+
# header parameters
|
|
52
|
+
header_params = opts[:header_params] || {}
|
|
53
|
+
# HTTP header 'Accept' (if needed)
|
|
54
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
55
|
+
|
|
56
|
+
# form parameters
|
|
57
|
+
form_params = opts[:form_params] || {}
|
|
58
|
+
|
|
59
|
+
# http body (model)
|
|
60
|
+
post_body = opts[:debug_body]
|
|
61
|
+
|
|
62
|
+
# return_type
|
|
63
|
+
return_type = opts[:debug_return_type] || 'SubscriptionResource'
|
|
64
|
+
|
|
65
|
+
# auth_names
|
|
66
|
+
auth_names = opts[:debug_auth_names] || ['ApiKey']
|
|
67
|
+
|
|
68
|
+
new_options = opts.merge(
|
|
69
|
+
:operation => :"BillingApi.get_subscription",
|
|
70
|
+
:header_params => header_params,
|
|
71
|
+
:query_params => query_params,
|
|
72
|
+
:form_params => form_params,
|
|
73
|
+
:body => post_body,
|
|
74
|
+
:auth_names => auth_names,
|
|
75
|
+
:return_type => return_type
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
79
|
+
if @api_client.config.debugging
|
|
80
|
+
@api_client.config.logger.debug "API called: BillingApi#get_subscription\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
81
|
+
end
|
|
82
|
+
return data, status_code, headers
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'cgi'
|
|
14
|
+
|
|
15
|
+
module Mencoro
|
|
16
|
+
class CapturesApi
|
|
17
|
+
attr_accessor :api_client
|
|
18
|
+
|
|
19
|
+
def initialize(api_client = ApiClient.default)
|
|
20
|
+
@api_client = api_client
|
|
21
|
+
end
|
|
22
|
+
# List captured AI answers
|
|
23
|
+
# Minimum role: viewer. Every AI answer captured for a project, newest first, one page at a time. This is the evidence under the analytics operations: the full answer text and the sources the engine cited, exactly as captured. Read `unresolved` on a citation before attributing its domain — a true value means the URL is still a redirector and the domain belongs to that redirector, not to the publisher; count the citation, do not credit the site. `passIndex` and `passCount` describe multi-pass sampling: rows sharing a `trackedQueryId` and `capturedAt` are passes of one run, not duplicates, so aggregating across them without dividing by `passCount` double-counts that run. `responseText` is the whole answer, so a page of 100 is a large response — lower `limit` rather than paging blind. Captures are kept for 16 months and purged after that; a `dateFrom` before the window is rejected rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
24
|
+
# @param organization_id [String]
|
|
25
|
+
# @param project_id [String]
|
|
26
|
+
# @param [Hash] opts the optional parameters
|
|
27
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. Must be inside the retention window.
|
|
28
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
29
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
30
|
+
# @option opts [Array<String>] :engines Only captures from these AI engines. Repeat the parameter or pass a comma-separated list. An empty filter means every engine.
|
|
31
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced. (default to 20)
|
|
32
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts. (default to 0)
|
|
33
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default. (default to 'desc')
|
|
34
|
+
# @return [ListAiResponses200Response]
|
|
35
|
+
def list_ai_responses(organization_id, project_id, opts = {})
|
|
36
|
+
data, _status_code, _headers = list_ai_responses_with_http_info(organization_id, project_id, opts)
|
|
37
|
+
data
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# List captured AI answers
|
|
41
|
+
# Minimum role: viewer. Every AI answer captured for a project, newest first, one page at a time. This is the evidence under the analytics operations: the full answer text and the sources the engine cited, exactly as captured. Read `unresolved` on a citation before attributing its domain — a true value means the URL is still a redirector and the domain belongs to that redirector, not to the publisher; count the citation, do not credit the site. `passIndex` and `passCount` describe multi-pass sampling: rows sharing a `trackedQueryId` and `capturedAt` are passes of one run, not duplicates, so aggregating across them without dividing by `passCount` double-counts that run. `responseText` is the whole answer, so a page of 100 is a large response — lower `limit` rather than paging blind. Captures are kept for 16 months and purged after that; a `dateFrom` before the window is rejected rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
42
|
+
# @param organization_id [String]
|
|
43
|
+
# @param project_id [String]
|
|
44
|
+
# @param [Hash] opts the optional parameters
|
|
45
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. Must be inside the retention window.
|
|
46
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
47
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
48
|
+
# @option opts [Array<String>] :engines Only captures from these AI engines. Repeat the parameter or pass a comma-separated list. An empty filter means every engine.
|
|
49
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced. (default to 20)
|
|
50
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts. (default to 0)
|
|
51
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default. (default to 'desc')
|
|
52
|
+
# @return [Array<(ListAiResponses200Response, Integer, Hash)>] ListAiResponses200Response data, response status code and response headers
|
|
53
|
+
def list_ai_responses_with_http_info(organization_id, project_id, opts = {})
|
|
54
|
+
if @api_client.config.debugging
|
|
55
|
+
@api_client.config.logger.debug 'Calling API: CapturesApi.list_ai_responses ...'
|
|
56
|
+
end
|
|
57
|
+
# verify the required parameter 'organization_id' is set
|
|
58
|
+
if @api_client.config.client_side_validation && organization_id.nil?
|
|
59
|
+
fail ArgumentError, "Missing the required parameter 'organization_id' when calling CapturesApi.list_ai_responses"
|
|
60
|
+
end
|
|
61
|
+
# verify the required parameter 'project_id' is set
|
|
62
|
+
if @api_client.config.client_side_validation && project_id.nil?
|
|
63
|
+
fail ArgumentError, "Missing the required parameter 'project_id' when calling CapturesApi.list_ai_responses"
|
|
64
|
+
end
|
|
65
|
+
allowable_values = ["chatgpt", "perplexity", "google_ai_overview", "google_ai_mode"]
|
|
66
|
+
if @api_client.config.client_side_validation && opts[:'engines'] && !opts[:'engines'].all? { |item| allowable_values.include?(item) }
|
|
67
|
+
fail ArgumentError, "invalid value for \"engines\", must include one of #{allowable_values}"
|
|
68
|
+
end
|
|
69
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
|
|
70
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CapturesApi.list_ai_responses, must be smaller than or equal to 100.'
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
|
|
74
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CapturesApi.list_ai_responses, must be greater than or equal to 1.'
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
|
|
78
|
+
fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling CapturesApi.list_ai_responses, must be greater than or equal to 0.'
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
allowable_values = ["asc", "desc"]
|
|
82
|
+
if @api_client.config.client_side_validation && opts[:'sort_order'] && !allowable_values.include?(opts[:'sort_order'])
|
|
83
|
+
fail ArgumentError, "invalid value for \"sort_order\", must be one of #{allowable_values}"
|
|
84
|
+
end
|
|
85
|
+
# resource path
|
|
86
|
+
local_var_path = '/api/v1/organizations/{organizationId}/projects/{projectId}/ai-responses'.sub('{organizationId}', CGI.escape(organization_id.to_s)).sub('{projectId}', CGI.escape(project_id.to_s))
|
|
87
|
+
|
|
88
|
+
# query parameters
|
|
89
|
+
query_params = opts[:query_params] || {}
|
|
90
|
+
query_params[:'dateFrom'] = opts[:'date_from'] if !opts[:'date_from'].nil?
|
|
91
|
+
query_params[:'dateTo'] = opts[:'date_to'] if !opts[:'date_to'].nil?
|
|
92
|
+
query_params[:'trackedQueryId'] = opts[:'tracked_query_id'] if !opts[:'tracked_query_id'].nil?
|
|
93
|
+
query_params[:'engines'] = @api_client.build_collection_param(opts[:'engines'], :multi) if !opts[:'engines'].nil?
|
|
94
|
+
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
95
|
+
query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
|
|
96
|
+
query_params[:'sortOrder'] = opts[:'sort_order'] if !opts[:'sort_order'].nil?
|
|
97
|
+
|
|
98
|
+
# header parameters
|
|
99
|
+
header_params = opts[:header_params] || {}
|
|
100
|
+
# HTTP header 'Accept' (if needed)
|
|
101
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
102
|
+
|
|
103
|
+
# form parameters
|
|
104
|
+
form_params = opts[:form_params] || {}
|
|
105
|
+
|
|
106
|
+
# http body (model)
|
|
107
|
+
post_body = opts[:debug_body]
|
|
108
|
+
|
|
109
|
+
# return_type
|
|
110
|
+
return_type = opts[:debug_return_type] || 'ListAiResponses200Response'
|
|
111
|
+
|
|
112
|
+
# auth_names
|
|
113
|
+
auth_names = opts[:debug_auth_names] || ['ApiKey']
|
|
114
|
+
|
|
115
|
+
new_options = opts.merge(
|
|
116
|
+
:operation => :"CapturesApi.list_ai_responses",
|
|
117
|
+
:header_params => header_params,
|
|
118
|
+
:query_params => query_params,
|
|
119
|
+
:form_params => form_params,
|
|
120
|
+
:body => post_body,
|
|
121
|
+
:auth_names => auth_names,
|
|
122
|
+
:return_type => return_type
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
126
|
+
if @api_client.config.debugging
|
|
127
|
+
@api_client.config.logger.debug "API called: CapturesApi#list_ai_responses\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
128
|
+
end
|
|
129
|
+
return data, status_code, headers
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# List captured search-results pages
|
|
133
|
+
# Minimum role: viewer. Every organic search page captured for a project, newest first, one page at a time. This is what the rank figures in the analytics operations were computed from: the ranked results as they stood at `capturedAt`, not as they stand now. Read `unresolved` on a result before attributing its domain — a true value means the URL is still a redirector and the domain belongs to that redirector; count the result, do not credit the site. `rating` and `ratingVotes` come from a rich-result star rating when Google showed one and are absent far more often than present; their absence says nothing about the page. There is no `engines` filter because every capture here comes from Google SERP. Captures are kept for 16 months and purged after that; a `dateFrom` before the window is rejected rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
134
|
+
# @param organization_id [String]
|
|
135
|
+
# @param project_id [String]
|
|
136
|
+
# @param [Hash] opts the optional parameters
|
|
137
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. Must be inside the retention window.
|
|
138
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
139
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
140
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced. (default to 20)
|
|
141
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts. (default to 0)
|
|
142
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default. (default to 'desc')
|
|
143
|
+
# @return [ListSearchSnapshots200Response]
|
|
144
|
+
def list_search_snapshots(organization_id, project_id, opts = {})
|
|
145
|
+
data, _status_code, _headers = list_search_snapshots_with_http_info(organization_id, project_id, opts)
|
|
146
|
+
data
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# List captured search-results pages
|
|
150
|
+
# Minimum role: viewer. Every organic search page captured for a project, newest first, one page at a time. This is what the rank figures in the analytics operations were computed from: the ranked results as they stood at `capturedAt`, not as they stand now. Read `unresolved` on a result before attributing its domain — a true value means the URL is still a redirector and the domain belongs to that redirector; count the result, do not credit the site. `rating` and `ratingVotes` come from a rich-result star rating when Google showed one and are absent far more often than present; their absence says nothing about the page. There is no `engines` filter because every capture here comes from Google SERP. Captures are kept for 16 months and purged after that; a `dateFrom` before the window is rejected rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
151
|
+
# @param organization_id [String]
|
|
152
|
+
# @param project_id [String]
|
|
153
|
+
# @param [Hash] opts the optional parameters
|
|
154
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. Must be inside the retention window.
|
|
155
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
156
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
157
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced. (default to 20)
|
|
158
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts. (default to 0)
|
|
159
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default. (default to 'desc')
|
|
160
|
+
# @return [Array<(ListSearchSnapshots200Response, Integer, Hash)>] ListSearchSnapshots200Response data, response status code and response headers
|
|
161
|
+
def list_search_snapshots_with_http_info(organization_id, project_id, opts = {})
|
|
162
|
+
if @api_client.config.debugging
|
|
163
|
+
@api_client.config.logger.debug 'Calling API: CapturesApi.list_search_snapshots ...'
|
|
164
|
+
end
|
|
165
|
+
# verify the required parameter 'organization_id' is set
|
|
166
|
+
if @api_client.config.client_side_validation && organization_id.nil?
|
|
167
|
+
fail ArgumentError, "Missing the required parameter 'organization_id' when calling CapturesApi.list_search_snapshots"
|
|
168
|
+
end
|
|
169
|
+
# verify the required parameter 'project_id' is set
|
|
170
|
+
if @api_client.config.client_side_validation && project_id.nil?
|
|
171
|
+
fail ArgumentError, "Missing the required parameter 'project_id' when calling CapturesApi.list_search_snapshots"
|
|
172
|
+
end
|
|
173
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
|
|
174
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CapturesApi.list_search_snapshots, must be smaller than or equal to 100.'
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
|
|
178
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CapturesApi.list_search_snapshots, must be greater than or equal to 1.'
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
|
|
182
|
+
fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling CapturesApi.list_search_snapshots, must be greater than or equal to 0.'
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
allowable_values = ["asc", "desc"]
|
|
186
|
+
if @api_client.config.client_side_validation && opts[:'sort_order'] && !allowable_values.include?(opts[:'sort_order'])
|
|
187
|
+
fail ArgumentError, "invalid value for \"sort_order\", must be one of #{allowable_values}"
|
|
188
|
+
end
|
|
189
|
+
# resource path
|
|
190
|
+
local_var_path = '/api/v1/organizations/{organizationId}/projects/{projectId}/search-snapshots'.sub('{organizationId}', CGI.escape(organization_id.to_s)).sub('{projectId}', CGI.escape(project_id.to_s))
|
|
191
|
+
|
|
192
|
+
# query parameters
|
|
193
|
+
query_params = opts[:query_params] || {}
|
|
194
|
+
query_params[:'dateFrom'] = opts[:'date_from'] if !opts[:'date_from'].nil?
|
|
195
|
+
query_params[:'dateTo'] = opts[:'date_to'] if !opts[:'date_to'].nil?
|
|
196
|
+
query_params[:'trackedQueryId'] = opts[:'tracked_query_id'] if !opts[:'tracked_query_id'].nil?
|
|
197
|
+
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
198
|
+
query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
|
|
199
|
+
query_params[:'sortOrder'] = opts[:'sort_order'] if !opts[:'sort_order'].nil?
|
|
200
|
+
|
|
201
|
+
# header parameters
|
|
202
|
+
header_params = opts[:header_params] || {}
|
|
203
|
+
# HTTP header 'Accept' (if needed)
|
|
204
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
205
|
+
|
|
206
|
+
# form parameters
|
|
207
|
+
form_params = opts[:form_params] || {}
|
|
208
|
+
|
|
209
|
+
# http body (model)
|
|
210
|
+
post_body = opts[:debug_body]
|
|
211
|
+
|
|
212
|
+
# return_type
|
|
213
|
+
return_type = opts[:debug_return_type] || 'ListSearchSnapshots200Response'
|
|
214
|
+
|
|
215
|
+
# auth_names
|
|
216
|
+
auth_names = opts[:debug_auth_names] || ['ApiKey']
|
|
217
|
+
|
|
218
|
+
new_options = opts.merge(
|
|
219
|
+
:operation => :"CapturesApi.list_search_snapshots",
|
|
220
|
+
:header_params => header_params,
|
|
221
|
+
:query_params => query_params,
|
|
222
|
+
:form_params => form_params,
|
|
223
|
+
:body => post_body,
|
|
224
|
+
:auth_names => auth_names,
|
|
225
|
+
:return_type => return_type
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
229
|
+
if @api_client.config.debugging
|
|
230
|
+
@api_client.config.logger.debug "API called: CapturesApi#list_search_snapshots\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
231
|
+
end
|
|
232
|
+
return data, status_code, headers
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
# List captured shopping-results pages
|
|
236
|
+
# Minimum role: viewer. Every shopping page captured for a project, newest first, one page at a time: the ranked offers as they stood at `capturedAt`. `price` and `currency` are what the seller showed at that moment — no tax normalisation, no shipping, no conversion — and two offers in one snapshot may carry different currencies, so convert before comparing. `productId` is the marketplace's own identifier for the listing, stable enough to follow one offer across snapshots, and it is not a Mencoro id. Offers turn over far faster than organic results, so two snapshots days apart routinely share none; that is the marketplace behaving normally, not a gap in the capture. Unlike organic results, a shopping offer carries no `unresolved` flag: the capture pipeline does not record one for this surface. Shopping captures are trimmed by the same raw-data purge as AI answers and search pages, so the same retention floor applies: a `dateFrom` before it is refused rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
237
|
+
# @param organization_id [String]
|
|
238
|
+
# @param project_id [String]
|
|
239
|
+
# @param [Hash] opts the optional parameters
|
|
240
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. A date before the retention floor is refused rather than answered with an empty page: shopping captures are aged out by the raw-data purge like every other capture.
|
|
241
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
242
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
243
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced. (default to 20)
|
|
244
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts. (default to 0)
|
|
245
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default. (default to 'desc')
|
|
246
|
+
# @return [ListShoppingSnapshots200Response]
|
|
247
|
+
def list_shopping_snapshots(organization_id, project_id, opts = {})
|
|
248
|
+
data, _status_code, _headers = list_shopping_snapshots_with_http_info(organization_id, project_id, opts)
|
|
249
|
+
data
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
# List captured shopping-results pages
|
|
253
|
+
# Minimum role: viewer. Every shopping page captured for a project, newest first, one page at a time: the ranked offers as they stood at `capturedAt`. `price` and `currency` are what the seller showed at that moment — no tax normalisation, no shipping, no conversion — and two offers in one snapshot may carry different currencies, so convert before comparing. `productId` is the marketplace's own identifier for the listing, stable enough to follow one offer across snapshots, and it is not a Mencoro id. Offers turn over far faster than organic results, so two snapshots days apart routinely share none; that is the marketplace behaving normally, not a gap in the capture. Unlike organic results, a shopping offer carries no `unresolved` flag: the capture pipeline does not record one for this surface. Shopping captures are trimmed by the same raw-data purge as AI answers and search pages, so the same retention floor applies: a `dateFrom` before it is refused rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
254
|
+
# @param organization_id [String]
|
|
255
|
+
# @param project_id [String]
|
|
256
|
+
# @param [Hash] opts the optional parameters
|
|
257
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. A date before the retention floor is refused rather than answered with an empty page: shopping captures are aged out by the raw-data purge like every other capture.
|
|
258
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
259
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
260
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced. (default to 20)
|
|
261
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts. (default to 0)
|
|
262
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default. (default to 'desc')
|
|
263
|
+
# @return [Array<(ListShoppingSnapshots200Response, Integer, Hash)>] ListShoppingSnapshots200Response data, response status code and response headers
|
|
264
|
+
def list_shopping_snapshots_with_http_info(organization_id, project_id, opts = {})
|
|
265
|
+
if @api_client.config.debugging
|
|
266
|
+
@api_client.config.logger.debug 'Calling API: CapturesApi.list_shopping_snapshots ...'
|
|
267
|
+
end
|
|
268
|
+
# verify the required parameter 'organization_id' is set
|
|
269
|
+
if @api_client.config.client_side_validation && organization_id.nil?
|
|
270
|
+
fail ArgumentError, "Missing the required parameter 'organization_id' when calling CapturesApi.list_shopping_snapshots"
|
|
271
|
+
end
|
|
272
|
+
# verify the required parameter 'project_id' is set
|
|
273
|
+
if @api_client.config.client_side_validation && project_id.nil?
|
|
274
|
+
fail ArgumentError, "Missing the required parameter 'project_id' when calling CapturesApi.list_shopping_snapshots"
|
|
275
|
+
end
|
|
276
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
|
|
277
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CapturesApi.list_shopping_snapshots, must be smaller than or equal to 100.'
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
|
|
281
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CapturesApi.list_shopping_snapshots, must be greater than or equal to 1.'
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
|
|
285
|
+
fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling CapturesApi.list_shopping_snapshots, must be greater than or equal to 0.'
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
allowable_values = ["asc", "desc"]
|
|
289
|
+
if @api_client.config.client_side_validation && opts[:'sort_order'] && !allowable_values.include?(opts[:'sort_order'])
|
|
290
|
+
fail ArgumentError, "invalid value for \"sort_order\", must be one of #{allowable_values}"
|
|
291
|
+
end
|
|
292
|
+
# resource path
|
|
293
|
+
local_var_path = '/api/v1/organizations/{organizationId}/projects/{projectId}/shopping-snapshots'.sub('{organizationId}', CGI.escape(organization_id.to_s)).sub('{projectId}', CGI.escape(project_id.to_s))
|
|
294
|
+
|
|
295
|
+
# query parameters
|
|
296
|
+
query_params = opts[:query_params] || {}
|
|
297
|
+
query_params[:'dateFrom'] = opts[:'date_from'] if !opts[:'date_from'].nil?
|
|
298
|
+
query_params[:'dateTo'] = opts[:'date_to'] if !opts[:'date_to'].nil?
|
|
299
|
+
query_params[:'trackedQueryId'] = opts[:'tracked_query_id'] if !opts[:'tracked_query_id'].nil?
|
|
300
|
+
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
301
|
+
query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
|
|
302
|
+
query_params[:'sortOrder'] = opts[:'sort_order'] if !opts[:'sort_order'].nil?
|
|
303
|
+
|
|
304
|
+
# header parameters
|
|
305
|
+
header_params = opts[:header_params] || {}
|
|
306
|
+
# HTTP header 'Accept' (if needed)
|
|
307
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
308
|
+
|
|
309
|
+
# form parameters
|
|
310
|
+
form_params = opts[:form_params] || {}
|
|
311
|
+
|
|
312
|
+
# http body (model)
|
|
313
|
+
post_body = opts[:debug_body]
|
|
314
|
+
|
|
315
|
+
# return_type
|
|
316
|
+
return_type = opts[:debug_return_type] || 'ListShoppingSnapshots200Response'
|
|
317
|
+
|
|
318
|
+
# auth_names
|
|
319
|
+
auth_names = opts[:debug_auth_names] || ['ApiKey']
|
|
320
|
+
|
|
321
|
+
new_options = opts.merge(
|
|
322
|
+
:operation => :"CapturesApi.list_shopping_snapshots",
|
|
323
|
+
:header_params => header_params,
|
|
324
|
+
:query_params => query_params,
|
|
325
|
+
:form_params => form_params,
|
|
326
|
+
:body => post_body,
|
|
327
|
+
:auth_names => auth_names,
|
|
328
|
+
:return_type => return_type
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
332
|
+
if @api_client.config.debugging
|
|
333
|
+
@api_client.config.logger.debug "API called: CapturesApi#list_shopping_snapshots\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
334
|
+
end
|
|
335
|
+
return data, status_code, headers
|
|
336
|
+
end
|
|
337
|
+
end
|
|
338
|
+
end
|