mencoro 1.0.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +41 -5
- data/docs/AccountApi.md +1 -1
- data/docs/AnalyticsApi.md +96 -86
- data/docs/AsyncJobResource.md +3 -1
- data/docs/AsyncJobResourceError.md +20 -0
- data/docs/BillingApi.md +1 -1
- data/docs/CitedSourceRow.md +32 -0
- data/docs/CitedSourcesResponse.md +20 -0
- data/docs/ClusterBreakdownRow.md +82 -0
- data/docs/ClustersApi.md +74 -0
- data/docs/CompetitorCoOccurrenceResponse.md +18 -0
- data/docs/CompetitorCoOccurrenceRow.md +36 -0
- data/docs/CompetitorShareOfVoice.md +20 -0
- data/docs/CreateInvitation201Response.md +4 -0
- data/docs/CreateInvitationRequest.md +3 -1
- data/docs/CreateInvitationRequestProjectAccess.md +20 -0
- data/docs/DiscoveryApi.md +1 -1
- data/docs/GetMeStats200ResponseProjects.md +1 -1
- data/docs/GetOrganizationOverview200ResponseAggregate.md +1 -1
- data/docs/GetOrganizationOverview200ResponseProjectsInner.md +8 -2
- data/docs/GetOrganizationStats200ResponseInvitations.md +1 -1
- data/docs/GetOrganizationStats200ResponseMembers.md +1 -1
- data/docs/GetOrganizationStats200ResponseProjects.md +1 -1
- data/docs/InvitationResource.md +5 -1
- data/docs/JobsApi.md +1 -1
- data/docs/KeywordListingResource.md +12 -10
- data/docs/KeywordListingResourceCarriedPositions.md +24 -0
- data/docs/KeywordListingResourceCarriedPositionsSerp.md +20 -0
- data/docs/ListProjects200Response.md +1 -1
- data/docs/MemberResource.md +5 -1
- data/docs/MembersApi.md +78 -0
- data/docs/MentionMatchResource.md +44 -0
- data/docs/MentionSampleResponse.md +46 -0
- data/docs/MentionTypeCounts.md +26 -0
- data/docs/OrganizationsApi.md +3 -3
- data/docs/PerCompetitorSentiment.md +30 -0
- data/docs/PerEngineSentiment.md +28 -0
- data/docs/PerEntityMetrics.md +32 -0
- data/docs/PositionDistributionBucket.md +20 -0
- data/docs/ProjectMentionMixResponse.md +22 -0
- data/docs/ProjectMentionSamplesResponse.md +20 -0
- data/docs/ProjectRankTrackingClusterBreakdown.md +20 -0
- data/docs/ProjectRankTrackingStats.md +96 -0
- data/docs/ProjectRankTrackingTimeSeries.md +20 -0
- data/docs/ProjectSentimentBreakdown.md +20 -0
- data/docs/ProjectedMonthlyChecksResource.md +2 -2
- data/docs/ProjectsApi.md +76 -2
- data/docs/SearchTrackedQueryMentionMatches200Response.md +20 -0
- data/docs/SearchTrackedQuerySerpMatches200Response.md +20 -0
- data/docs/SerpMatchResource.md +30 -0
- data/docs/SetMemberProjectAccessRequest.md +20 -0
- data/docs/SubscriptionResource.md +1 -1
- data/docs/TimeSeriesPoint.md +22 -0
- data/docs/TrackedQueriesApi.md +175 -3
- data/docs/TrackedQueryCountResource.md +1 -1
- data/docs/TrackedQueryMoverRow.md +58 -0
- data/docs/TrackedQueryMoversResponse.md +22 -0
- data/docs/TrackedQueryRankTrackingTimeSeries.md +20 -0
- data/docs/TrackedQueryUsageResource.md +1 -1
- data/lib/mencoro/api/account_api.rb +3 -3
- data/lib/mencoro/api/analytics_api.rb +103 -85
- data/lib/mencoro/api/billing_api.rb +3 -3
- data/lib/mencoro/api/captures_api.rb +2 -2
- data/lib/mencoro/api/clusters_api.rb +76 -1
- data/lib/mencoro/api/discovery_api.rb +3 -3
- data/lib/mencoro/api/invitations_api.rb +1 -1
- data/lib/mencoro/api/jobs_api.rb +3 -3
- data/lib/mencoro/api/members_api.rb +95 -1
- data/lib/mencoro/api/organization_operations_api.rb +1 -1
- data/lib/mencoro/api/organizations_api.rb +7 -7
- data/lib/mencoro/api/projects_api.rb +80 -5
- data/lib/mencoro/api/tracked_queries_api.rb +220 -8
- data/lib/mencoro/api_client.rb +2 -2
- data/lib/mencoro/api_error.rb +1 -1
- data/lib/mencoro/api_model_base.rb +1 -1
- data/lib/mencoro/configuration.rb +1 -1
- data/lib/mencoro/models/accepted_job_resource.rb +1 -1
- data/lib/mencoro/models/ai_response_report_resource.rb +1 -1
- data/lib/mencoro/models/ai_response_resource.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_clusters_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_skipped_clusters_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_successful_inner.rb +1 -1
- data/lib/mencoro/models/async_job_resource.rb +17 -7
- data/lib/mencoro/models/async_job_resource_error.rb +217 -0
- data/lib/mencoro/models/batch_change_tracked_query_check_frequency_request_data.rb +1 -1
- data/lib/mencoro/models/batch_change_tracked_query_passes_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_resume_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_targets_request_data.rb +1 -1
- data/lib/mencoro/models/batch_write_outcome.rb +1 -1
- data/lib/mencoro/models/batch_write_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/brand_profile_resource.rb +1 -1
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries_request.rb +1 -1
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries_request.rb +1 -1
- data/lib/mencoro/models/change_member_role_request.rb +1 -1
- data/lib/mencoro/models/change_tracked_query_check_frequency_request_data.rb +1 -1
- data/lib/mencoro/models/change_tracked_query_passes_request_data.rb +1 -1
- data/lib/mencoro/models/citation_resource.rb +1 -1
- data/lib/mencoro/models/cited_source_row.rb +298 -0
- data/lib/mencoro/models/cited_sources_response.rb +192 -0
- data/lib/mencoro/models/cluster_breakdown_row.rb +580 -0
- data/lib/mencoro/models/cluster_membership_request_data.rb +1 -1
- data/lib/mencoro/models/competitor_co_occurrence_response.rb +166 -0
- data/lib/mencoro/models/competitor_co_occurrence_row.rb +318 -0
- data/lib/mencoro/models/competitor_resource.rb +1 -1
- data/lib/mencoro/models/competitor_share_of_voice.rb +174 -0
- data/lib/mencoro/models/create_competitor_request.rb +1 -1
- data/lib/mencoro/models/create_invitation200_response.rb +1 -1
- data/lib/mencoro/models/create_invitation201_response.rb +60 -2
- data/lib/mencoro/models/create_invitation_request.rb +15 -5
- data/lib/mencoro/models/create_invitation_request_project_access.rb +201 -0
- data/lib/mencoro/models/create_organization201_response.rb +1 -1
- data/lib/mencoro/models/create_organization_request.rb +1 -1
- data/lib/mencoro/models/create_project_request.rb +1 -1
- data/lib/mencoro/models/create_project_request_competitors_inner.rb +1 -1
- data/lib/mencoro/models/create_query_cluster409_response.rb +1 -1
- data/lib/mencoro/models/create_query_cluster_request.rb +1 -1
- data/lib/mencoro/models/delete_query_cluster200_response.rb +1 -1
- data/lib/mencoro/models/entitlements_resource.rb +1 -1
- data/lib/mencoro/models/get_available_filters200_response.rb +1 -1
- data/lib/mencoro/models/get_available_filters200_response_clusters_inner.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response_organizations.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response_projects.rb +2 -2
- data/lib/mencoro/models/get_membership_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_mention_samples400_response.rb +1 -1
- data/lib/mencoro/models/get_mention_samples400_response_details_value_inner.rb +1 -1
- data/lib/mencoro/models/get_metric_glossary200_response.rb +1 -1
- data/lib/mencoro/models/get_metric_glossary200_response_metrics_inner.rb +1 -1
- data/lib/mencoro/models/get_organization_overview200_response.rb +1 -1
- data/lib/mencoro/models/get_organization_overview200_response_aggregate.rb +2 -2
- data/lib/mencoro/models/get_organization_overview200_response_projects_inner.rb +34 -3
- data/lib/mencoro/models/get_organization_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_organization_stats200_response_invitations.rb +4 -7
- data/lib/mencoro/models/get_organization_stats200_response_members.rb +4 -7
- data/lib/mencoro/models/get_organization_stats200_response_projects.rb +2 -2
- data/lib/mencoro/models/get_share_of_voice_formula200_response.rb +1 -1
- data/lib/mencoro/models/get_tracking_coverage200_response.rb +1 -1
- data/lib/mencoro/models/get_tracking_coverage200_response_sample_inner.rb +1 -1
- data/lib/mencoro/models/invitation_resource.rb +64 -6
- data/lib/mencoro/models/keyword_listing_resource.rb +40 -14
- data/lib/mencoro/models/keyword_listing_resource_carried_positions.rb +187 -0
- data/lib/mencoro/models/keyword_listing_resource_carried_positions_serp.rb +192 -0
- data/lib/mencoro/models/keyword_listing_resource_mention_type_counts.rb +1 -1
- data/lib/mencoro/models/list_ai_responses200_response.rb +1 -1
- data/lib/mencoro/models/list_competitors200_response.rb +1 -1
- data/lib/mencoro/models/list_invitations200_response.rb +1 -1
- data/lib/mencoro/models/list_keyword_listings200_response.rb +1 -1
- data/lib/mencoro/models/list_members200_response.rb +1 -1
- data/lib/mencoro/models/list_organizations200_response.rb +1 -1
- data/lib/mencoro/models/list_projects200_response.rb +2 -2
- data/lib/mencoro/models/list_query_clusters200_response.rb +1 -1
- data/lib/mencoro/models/list_search_snapshots200_response.rb +1 -1
- data/lib/mencoro/models/list_shopping_snapshots200_response.rb +1 -1
- data/lib/mencoro/models/me_resource.rb +1 -1
- data/lib/mencoro/models/member_resource.rb +63 -5
- data/lib/mencoro/models/mention_match_resource.rb +432 -0
- data/lib/mencoro/models/mention_sample_response.rb +450 -0
- data/lib/mencoro/models/mention_type_counts.rb +268 -0
- data/lib/mencoro/models/operation_effect.rb +1 -1
- data/lib/mencoro/models/organization_resource.rb +1 -1
- data/lib/mencoro/models/per_competitor_sentiment.rb +304 -0
- data/lib/mencoro/models/per_engine_sentiment.rb +278 -0
- data/lib/mencoro/models/per_entity_metrics.rb +218 -0
- data/lib/mencoro/models/position_distribution_bucket.rb +190 -0
- data/lib/mencoro/models/preview_organization_operation200_response.rb +1 -1
- data/lib/mencoro/models/preview_organization_operation200_response_organization.rb +1 -1
- data/lib/mencoro/models/preview_organization_operation_request.rb +3 -3
- data/lib/mencoro/models/project_detail_resource.rb +1 -1
- data/lib/mencoro/models/project_detail_resource_competitors_inner.rb +1 -1
- data/lib/mencoro/models/project_mention_mix_response.rb +222 -0
- data/lib/mencoro/models/project_mention_samples_response.rb +192 -0
- data/lib/mencoro/models/project_rank_tracking_cluster_breakdown.rb +176 -0
- data/lib/mencoro/models/project_rank_tracking_stats.rb +718 -0
- data/lib/mencoro/models/project_rank_tracking_time_series.rb +176 -0
- data/lib/mencoro/models/project_resource.rb +1 -1
- data/lib/mencoro/models/project_sentiment_breakdown.rb +194 -0
- data/lib/mencoro/models/projected_monthly_checks_resource.rb +3 -3
- data/lib/mencoro/models/query_cluster_resource.rb +1 -1
- data/lib/mencoro/models/report_ai_response_request.rb +1 -1
- data/lib/mencoro/models/search_result_resource.rb +1 -1
- data/lib/mencoro/models/search_snapshot_resource.rb +1 -1
- data/lib/mencoro/models/search_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/search_tracked_query_mention_matches200_response.rb +158 -0
- data/lib/mencoro/models/search_tracked_query_serp_matches200_response.rb +158 -0
- data/lib/mencoro/models/serp_match_resource.rb +314 -0
- data/lib/mencoro/models/set_member_project_access_request.rb +200 -0
- data/lib/mencoro/models/shopping_offer_resource.rb +1 -1
- data/lib/mencoro/models/shopping_snapshot_resource.rb +1 -1
- data/lib/mencoro/models/start_brand_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/start_brand_name_suggestion_job_request.rb +1 -1
- data/lib/mencoro/models/start_clustering_job_request_data.rb +1 -1
- data/lib/mencoro/models/start_keyword_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/start_prompt_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/submitted_checks_resource.rb +1 -1
- data/lib/mencoro/models/subscription_resource.rb +3 -3
- data/lib/mencoro/models/time_series_point.rb +218 -0
- data/lib/mencoro/models/tracked_query_count_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_detail_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_mover_row.rb +492 -0
- data/lib/mencoro/models/tracked_query_movers_response.rb +202 -0
- data/lib/mencoro/models/tracked_query_rank_tracking_time_series.rb +176 -0
- data/lib/mencoro/models/tracked_query_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_usage_resource.rb +2 -2
- data/lib/mencoro/models/update_organization_request.rb +1 -1
- data/lib/mencoro/models/update_project_brand_profile_request.rb +1 -1
- data/lib/mencoro/models/update_project_request.rb +1 -1
- data/lib/mencoro/version.rb +2 -2
- data/lib/mencoro.rb +32 -1
- data/mencoro.gemspec +2 -2
- data/spec/models/async_job_resource_error_spec.rb +46 -0
- data/spec/models/cited_source_row_spec.rb +78 -0
- data/spec/models/cited_sources_response_spec.rb +42 -0
- data/spec/models/cluster_breakdown_row_spec.rb +228 -0
- data/spec/models/competitor_co_occurrence_response_spec.rb +36 -0
- data/spec/models/competitor_co_occurrence_row_spec.rb +90 -0
- data/spec/models/competitor_share_of_voice_spec.rb +42 -0
- data/spec/models/create_invitation_request_project_access_spec.rb +46 -0
- data/spec/models/keyword_listing_resource_carried_positions_serp_spec.rb +42 -0
- data/spec/models/keyword_listing_resource_carried_positions_spec.rb +54 -0
- data/spec/models/mention_match_resource_spec.rb +114 -0
- data/spec/models/mention_sample_response_spec.rb +114 -0
- data/spec/models/mention_type_counts_spec.rb +60 -0
- data/spec/models/per_competitor_sentiment_spec.rb +72 -0
- data/spec/models/per_engine_sentiment_spec.rb +66 -0
- data/spec/models/per_entity_metrics_spec.rb +78 -0
- data/spec/models/position_distribution_bucket_spec.rb +42 -0
- data/spec/models/project_mention_mix_response_spec.rb +48 -0
- data/spec/models/project_mention_samples_response_spec.rb +42 -0
- data/spec/models/project_rank_tracking_cluster_breakdown_spec.rb +42 -0
- data/spec/models/project_rank_tracking_stats_spec.rb +270 -0
- data/spec/models/project_rank_tracking_time_series_spec.rb +42 -0
- data/spec/models/project_sentiment_breakdown_spec.rb +42 -0
- data/spec/models/search_tracked_query_mention_matches200_response_spec.rb +42 -0
- data/spec/models/search_tracked_query_serp_matches200_response_spec.rb +42 -0
- data/spec/models/serp_match_resource_spec.rb +72 -0
- data/spec/models/set_member_project_access_request_spec.rb +46 -0
- data/spec/models/time_series_point_spec.rb +48 -0
- data/spec/models/tracked_query_mover_row_spec.rb +156 -0
- data/spec/models/tracked_query_movers_response_spec.rb +48 -0
- data/spec/models/tracked_query_rank_tracking_time_series_spec.rb +42 -0
- data/spec/spec_helper.rb +1 -1
- metadata +235 -108
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -20,7 +20,7 @@ module Mencoro
|
|
|
20
20
|
@api_client = api_client
|
|
21
21
|
end
|
|
22
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.
|
|
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. For a member restricted to selected projects, `tierCode`, `billingCycleType`, `billingCycleAnchor`, `checkBudget`, `checksConsumed`, `checksAvailable`, `nextResetAt` and `deactivationReason` are null: they keep `status`, `isEntitled` and the cancellation and grace dates.
|
|
24
24
|
# @param organization_id [String]
|
|
25
25
|
# @param [Hash] opts the optional parameters
|
|
26
26
|
# @return [SubscriptionResource]
|
|
@@ -30,7 +30,7 @@ module Mencoro
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
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.
|
|
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. For a member restricted to selected projects, `tierCode`, `billingCycleType`, `billingCycleAnchor`, `checkBudget`, `checksConsumed`, `checksAvailable`, `nextResetAt` and `deactivationReason` are null: they keep `status`, `isEntitled` and the cancellation and grace dates.
|
|
34
34
|
# @param organization_id [String]
|
|
35
35
|
# @param [Hash] opts the optional parameters
|
|
36
36
|
# @return [Array<(SubscriptionResource, Integer, Hash)>] SubscriptionResource data, response status code and response headers
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -62,7 +62,7 @@ module Mencoro
|
|
|
62
62
|
if @api_client.config.client_side_validation && project_id.nil?
|
|
63
63
|
fail ArgumentError, "Missing the required parameter 'project_id' when calling CapturesApi.list_ai_responses"
|
|
64
64
|
end
|
|
65
|
-
allowable_values = ["chatgpt", "perplexity", "google_ai_overview", "google_ai_mode"]
|
|
65
|
+
allowable_values = ["chatgpt", "claude", "perplexity", "google_ai_overview", "google_ai_mode"]
|
|
66
66
|
if @api_client.config.client_side_validation && opts[:'engines'] && !opts[:'engines'].all? { |item| allowable_values.include?(item) }
|
|
67
67
|
fail ArgumentError, "invalid value for \"engines\", must include one of #{allowable_values}"
|
|
68
68
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -365,6 +365,81 @@ module Mencoro
|
|
|
365
365
|
return data, status_code, headers
|
|
366
366
|
end
|
|
367
367
|
|
|
368
|
+
# Get one of a project's keyword clusters
|
|
369
|
+
# Minimum role: viewer. Returns a single keyword cluster of the project, the same projection the cluster listing returns for each of its rows. A cluster belonging to another project answers 404, the same answer an unknown id and a malformed one get, so the API never confirms that a cluster the caller cannot reach exists.
|
|
370
|
+
# @param organization_id [String]
|
|
371
|
+
# @param project_id [String] Must belong to the organization in the path.
|
|
372
|
+
# @param cluster_id [String] Must be a cluster of the project in the path.
|
|
373
|
+
# @param [Hash] opts the optional parameters
|
|
374
|
+
# @return [QueryClusterResource]
|
|
375
|
+
def get_query_cluster(organization_id, project_id, cluster_id, opts = {})
|
|
376
|
+
data, _status_code, _headers = get_query_cluster_with_http_info(organization_id, project_id, cluster_id, opts)
|
|
377
|
+
data
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
# Get one of a project's keyword clusters
|
|
381
|
+
# Minimum role: viewer. Returns a single keyword cluster of the project, the same projection the cluster listing returns for each of its rows. A cluster belonging to another project answers 404, the same answer an unknown id and a malformed one get, so the API never confirms that a cluster the caller cannot reach exists.
|
|
382
|
+
# @param organization_id [String]
|
|
383
|
+
# @param project_id [String] Must belong to the organization in the path.
|
|
384
|
+
# @param cluster_id [String] Must be a cluster of the project in the path.
|
|
385
|
+
# @param [Hash] opts the optional parameters
|
|
386
|
+
# @return [Array<(QueryClusterResource, Integer, Hash)>] QueryClusterResource data, response status code and response headers
|
|
387
|
+
def get_query_cluster_with_http_info(organization_id, project_id, cluster_id, opts = {})
|
|
388
|
+
if @api_client.config.debugging
|
|
389
|
+
@api_client.config.logger.debug 'Calling API: ClustersApi.get_query_cluster ...'
|
|
390
|
+
end
|
|
391
|
+
# verify the required parameter 'organization_id' is set
|
|
392
|
+
if @api_client.config.client_side_validation && organization_id.nil?
|
|
393
|
+
fail ArgumentError, "Missing the required parameter 'organization_id' when calling ClustersApi.get_query_cluster"
|
|
394
|
+
end
|
|
395
|
+
# verify the required parameter 'project_id' is set
|
|
396
|
+
if @api_client.config.client_side_validation && project_id.nil?
|
|
397
|
+
fail ArgumentError, "Missing the required parameter 'project_id' when calling ClustersApi.get_query_cluster"
|
|
398
|
+
end
|
|
399
|
+
# verify the required parameter 'cluster_id' is set
|
|
400
|
+
if @api_client.config.client_side_validation && cluster_id.nil?
|
|
401
|
+
fail ArgumentError, "Missing the required parameter 'cluster_id' when calling ClustersApi.get_query_cluster"
|
|
402
|
+
end
|
|
403
|
+
# resource path
|
|
404
|
+
local_var_path = '/api/v1/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}'.sub('{organizationId}', CGI.escape(organization_id.to_s)).sub('{projectId}', CGI.escape(project_id.to_s)).sub('{clusterId}', CGI.escape(cluster_id.to_s))
|
|
405
|
+
|
|
406
|
+
# query parameters
|
|
407
|
+
query_params = opts[:query_params] || {}
|
|
408
|
+
|
|
409
|
+
# header parameters
|
|
410
|
+
header_params = opts[:header_params] || {}
|
|
411
|
+
# HTTP header 'Accept' (if needed)
|
|
412
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
413
|
+
|
|
414
|
+
# form parameters
|
|
415
|
+
form_params = opts[:form_params] || {}
|
|
416
|
+
|
|
417
|
+
# http body (model)
|
|
418
|
+
post_body = opts[:debug_body]
|
|
419
|
+
|
|
420
|
+
# return_type
|
|
421
|
+
return_type = opts[:debug_return_type] || 'QueryClusterResource'
|
|
422
|
+
|
|
423
|
+
# auth_names
|
|
424
|
+
auth_names = opts[:debug_auth_names] || ['ApiKey']
|
|
425
|
+
|
|
426
|
+
new_options = opts.merge(
|
|
427
|
+
:operation => :"ClustersApi.get_query_cluster",
|
|
428
|
+
:header_params => header_params,
|
|
429
|
+
:query_params => query_params,
|
|
430
|
+
:form_params => form_params,
|
|
431
|
+
:body => post_body,
|
|
432
|
+
:auth_names => auth_names,
|
|
433
|
+
:return_type => return_type
|
|
434
|
+
)
|
|
435
|
+
|
|
436
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
437
|
+
if @api_client.config.debugging
|
|
438
|
+
@api_client.config.logger.debug "API called: ClustersApi#get_query_cluster\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
439
|
+
end
|
|
440
|
+
return data, status_code, headers
|
|
441
|
+
end
|
|
442
|
+
|
|
368
443
|
# Rename a keyword cluster
|
|
369
444
|
# Minimum role: manager. Changes the name of one keyword cluster and nothing else: the tracked queries assigned to it are untouched, and its id does not change, so nothing a client stored breaks. The new name is trimmed and lower-cased and must be unique within the project; a collision is refused with 409. Renaming to the name the cluster already has is accepted and is a no-op. The organization must not be archived; an archived project IS refused with 409, stricter than the Mencoro app, which lets cluster writes into one. Requires the write capability and an Idempotency-Key header.
|
|
370
445
|
# @param organization_id [String]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -103,7 +103,7 @@ module Mencoro
|
|
|
103
103
|
end
|
|
104
104
|
|
|
105
105
|
# Start a brand-name alias suggestion job
|
|
106
|
-
# Minimum role: manager. Starts a background, web-search-grounded job that suggests alias spellings for one entity - a brand, a project or a competitor - described entirely by the body, and answers 202 with the job to poll; it never returns suggestions inline. The entity need not exist: nothing is looked up, nothing is attached and nothing is saved, so the suggestions are the caller's to apply. Names sent in `enteredBrandNames` are excluded from the result. The organization must be active; no subscription is required, matching the application behaviour this mirrors. Ten starts per minute per organization, counted across every key of every member; a retry carrying an Idempotency-Key already answered is served from the record and does not count.
|
|
106
|
+
# Minimum role: manager, with access to every project of the organization: the job names no project, so a member restricted to selected projects is refused as a role below the minimum is. Starts a background, web-search-grounded job that suggests alias spellings for one entity - a brand, a project or a competitor - described entirely by the body, and answers 202 with the job to poll; it never returns suggestions inline. The entity need not exist: nothing is looked up, nothing is attached and nothing is saved, so the suggestions are the caller's to apply. Names sent in `enteredBrandNames` are excluded from the result. The organization must be active; no subscription is required, matching the application behaviour this mirrors. Ten starts per minute per organization, counted across every key of every member; a retry carrying an Idempotency-Key already answered is served from the record and does not count.
|
|
107
107
|
# @param organization_id [String]
|
|
108
108
|
# @param idempotency_key [String] Repeat it to retry a start whose response was lost; the same key returns the same job instead of starting a second one.
|
|
109
109
|
# @param start_brand_name_suggestion_job_request [StartBrandNameSuggestionJobRequest]
|
|
@@ -115,7 +115,7 @@ module Mencoro
|
|
|
115
115
|
end
|
|
116
116
|
|
|
117
117
|
# Start a brand-name alias suggestion job
|
|
118
|
-
# Minimum role: manager. Starts a background, web-search-grounded job that suggests alias spellings for one entity - a brand, a project or a competitor - described entirely by the body, and answers 202 with the job to poll; it never returns suggestions inline. The entity need not exist: nothing is looked up, nothing is attached and nothing is saved, so the suggestions are the caller's to apply. Names sent in `enteredBrandNames` are excluded from the result. The organization must be active; no subscription is required, matching the application behaviour this mirrors. Ten starts per minute per organization, counted across every key of every member; a retry carrying an Idempotency-Key already answered is served from the record and does not count.
|
|
118
|
+
# Minimum role: manager, with access to every project of the organization: the job names no project, so a member restricted to selected projects is refused as a role below the minimum is. Starts a background, web-search-grounded job that suggests alias spellings for one entity - a brand, a project or a competitor - described entirely by the body, and answers 202 with the job to poll; it never returns suggestions inline. The entity need not exist: nothing is looked up, nothing is attached and nothing is saved, so the suggestions are the caller's to apply. Names sent in `enteredBrandNames` are excluded from the result. The organization must be active; no subscription is required, matching the application behaviour this mirrors. Ten starts per minute per organization, counted across every key of every member; a retry carrying an Idempotency-Key already answered is served from the record and does not count.
|
|
119
119
|
# @param organization_id [String]
|
|
120
120
|
# @param idempotency_key [String] Repeat it to retry a start whose response was lost; the same key returns the same job instead of starting a second one.
|
|
121
121
|
# @param start_brand_name_suggestion_job_request [StartBrandNameSuggestionJobRequest]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
data/lib/mencoro/api/jobs_api.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -20,7 +20,7 @@ module Mencoro
|
|
|
20
20
|
@api_client = api_client
|
|
21
21
|
end
|
|
22
22
|
# Get an asynchronous job
|
|
23
|
-
# Minimum role: manager. The status of one asynchronous job started inside this organization — geo prompt discovery, keyword discovery, query clustering, brand discovery or brand-name suggestion — and, once it has completed, its result. Poll it until `status` is terminal: `completed` or `failed`. A null `result` means the result is not known, either because the job is still in flight or because it failed; it never means the job produced an empty result. A failed job carries
|
|
23
|
+
# Minimum role: manager. The status of one asynchronous job started inside this organization — geo prompt discovery, keyword discovery, query clustering, brand discovery or brand-name suggestion — and, once it has completed, its result. Poll it until `status` is terminal: `completed` or `failed`. A null `result` means the result is not known, either because the job is still in flight or because it failed; it never means the job produced an empty result. A failed job carries `error`: a stable `code` (`timed_out`, `provider_failed`, `submission_failed` or `internal_error`) and a fixed `message` saying what to do next; `error` is null for a job that has not failed. A job started by another organization, a job of a type this API does not publish, and a job id that does not exist all answer 404 alike, so the API never confirms that an inaccessible job exists.
|
|
24
24
|
# @param organization_id [String]
|
|
25
25
|
# @param job_id [String] Must be a job started inside the organization in the path.
|
|
26
26
|
# @param [Hash] opts the optional parameters
|
|
@@ -31,7 +31,7 @@ module Mencoro
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
# Get an asynchronous job
|
|
34
|
-
# Minimum role: manager. The status of one asynchronous job started inside this organization — geo prompt discovery, keyword discovery, query clustering, brand discovery or brand-name suggestion — and, once it has completed, its result. Poll it until `status` is terminal: `completed` or `failed`. A null `result` means the result is not known, either because the job is still in flight or because it failed; it never means the job produced an empty result. A failed job carries
|
|
34
|
+
# Minimum role: manager. The status of one asynchronous job started inside this organization — geo prompt discovery, keyword discovery, query clustering, brand discovery or brand-name suggestion — and, once it has completed, its result. Poll it until `status` is terminal: `completed` or `failed`. A null `result` means the result is not known, either because the job is still in flight or because it failed; it never means the job produced an empty result. A failed job carries `error`: a stable `code` (`timed_out`, `provider_failed`, `submission_failed` or `internal_error`) and a fixed `message` saying what to do next; `error` is null for a job that has not failed. A job started by another organization, a job of a type this API does not publish, and a job id that does not exist all answer 404 alike, so the API never confirms that an inaccessible job exists.
|
|
35
35
|
# @param organization_id [String]
|
|
36
36
|
# @param job_id [String] Must be a job started inside the organization in the path.
|
|
37
37
|
# @param [Hash] opts the optional parameters
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -367,6 +367,100 @@ module Mencoro
|
|
|
367
367
|
return data, status_code, headers
|
|
368
368
|
end
|
|
369
369
|
|
|
370
|
+
# Set which projects a member reaches
|
|
371
|
+
# Minimum role: owner. A member reaches every project of the organization (`all`) or only the listed projects (`selected`); a project outside a selection answers as if it did not exist. The change applies from the member's next request, including through any API key or MCP connection they own. An owner always reaches every project and cannot be limited. Setting the access a member already has changes nothing. Preview it first: the confirmation is bound to the member's access at preview time, so another change in between invalidates it.
|
|
372
|
+
# @param organization_id [String]
|
|
373
|
+
# @param member_id [String]
|
|
374
|
+
# @param x_mencoro_confirmation [String]
|
|
375
|
+
# @param idempotency_key [String]
|
|
376
|
+
# @param set_member_project_access_request [SetMemberProjectAccessRequest]
|
|
377
|
+
# @param [Hash] opts the optional parameters
|
|
378
|
+
# @return [MemberResource]
|
|
379
|
+
def set_member_project_access(organization_id, member_id, x_mencoro_confirmation, idempotency_key, set_member_project_access_request, opts = {})
|
|
380
|
+
data, _status_code, _headers = set_member_project_access_with_http_info(organization_id, member_id, x_mencoro_confirmation, idempotency_key, set_member_project_access_request, opts)
|
|
381
|
+
data
|
|
382
|
+
end
|
|
383
|
+
|
|
384
|
+
# Set which projects a member reaches
|
|
385
|
+
# Minimum role: owner. A member reaches every project of the organization (`all`) or only the listed projects (`selected`); a project outside a selection answers as if it did not exist. The change applies from the member's next request, including through any API key or MCP connection they own. An owner always reaches every project and cannot be limited. Setting the access a member already has changes nothing. Preview it first: the confirmation is bound to the member's access at preview time, so another change in between invalidates it.
|
|
386
|
+
# @param organization_id [String]
|
|
387
|
+
# @param member_id [String]
|
|
388
|
+
# @param x_mencoro_confirmation [String]
|
|
389
|
+
# @param idempotency_key [String]
|
|
390
|
+
# @param set_member_project_access_request [SetMemberProjectAccessRequest]
|
|
391
|
+
# @param [Hash] opts the optional parameters
|
|
392
|
+
# @return [Array<(MemberResource, Integer, Hash)>] MemberResource data, response status code and response headers
|
|
393
|
+
def set_member_project_access_with_http_info(organization_id, member_id, x_mencoro_confirmation, idempotency_key, set_member_project_access_request, opts = {})
|
|
394
|
+
if @api_client.config.debugging
|
|
395
|
+
@api_client.config.logger.debug 'Calling API: MembersApi.set_member_project_access ...'
|
|
396
|
+
end
|
|
397
|
+
# verify the required parameter 'organization_id' is set
|
|
398
|
+
if @api_client.config.client_side_validation && organization_id.nil?
|
|
399
|
+
fail ArgumentError, "Missing the required parameter 'organization_id' when calling MembersApi.set_member_project_access"
|
|
400
|
+
end
|
|
401
|
+
# verify the required parameter 'member_id' is set
|
|
402
|
+
if @api_client.config.client_side_validation && member_id.nil?
|
|
403
|
+
fail ArgumentError, "Missing the required parameter 'member_id' when calling MembersApi.set_member_project_access"
|
|
404
|
+
end
|
|
405
|
+
# verify the required parameter 'x_mencoro_confirmation' is set
|
|
406
|
+
if @api_client.config.client_side_validation && x_mencoro_confirmation.nil?
|
|
407
|
+
fail ArgumentError, "Missing the required parameter 'x_mencoro_confirmation' when calling MembersApi.set_member_project_access"
|
|
408
|
+
end
|
|
409
|
+
# verify the required parameter 'idempotency_key' is set
|
|
410
|
+
if @api_client.config.client_side_validation && idempotency_key.nil?
|
|
411
|
+
fail ArgumentError, "Missing the required parameter 'idempotency_key' when calling MembersApi.set_member_project_access"
|
|
412
|
+
end
|
|
413
|
+
# verify the required parameter 'set_member_project_access_request' is set
|
|
414
|
+
if @api_client.config.client_side_validation && set_member_project_access_request.nil?
|
|
415
|
+
fail ArgumentError, "Missing the required parameter 'set_member_project_access_request' when calling MembersApi.set_member_project_access"
|
|
416
|
+
end
|
|
417
|
+
# resource path
|
|
418
|
+
local_var_path = '/api/v1/organizations/{organizationId}/members/{memberId}/project-access'.sub('{organizationId}', CGI.escape(organization_id.to_s)).sub('{memberId}', CGI.escape(member_id.to_s))
|
|
419
|
+
|
|
420
|
+
# query parameters
|
|
421
|
+
query_params = opts[:query_params] || {}
|
|
422
|
+
|
|
423
|
+
# header parameters
|
|
424
|
+
header_params = opts[:header_params] || {}
|
|
425
|
+
# HTTP header 'Accept' (if needed)
|
|
426
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
427
|
+
# HTTP header 'Content-Type'
|
|
428
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
429
|
+
if !content_type.nil?
|
|
430
|
+
header_params['Content-Type'] = content_type
|
|
431
|
+
end
|
|
432
|
+
header_params[:'X-Mencoro-Confirmation'] = x_mencoro_confirmation
|
|
433
|
+
header_params[:'Idempotency-Key'] = idempotency_key
|
|
434
|
+
|
|
435
|
+
# form parameters
|
|
436
|
+
form_params = opts[:form_params] || {}
|
|
437
|
+
|
|
438
|
+
# http body (model)
|
|
439
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(set_member_project_access_request)
|
|
440
|
+
|
|
441
|
+
# return_type
|
|
442
|
+
return_type = opts[:debug_return_type] || 'MemberResource'
|
|
443
|
+
|
|
444
|
+
# auth_names
|
|
445
|
+
auth_names = opts[:debug_auth_names] || ['ApiKey']
|
|
446
|
+
|
|
447
|
+
new_options = opts.merge(
|
|
448
|
+
:operation => :"MembersApi.set_member_project_access",
|
|
449
|
+
:header_params => header_params,
|
|
450
|
+
:query_params => query_params,
|
|
451
|
+
:form_params => form_params,
|
|
452
|
+
:body => post_body,
|
|
453
|
+
:auth_names => auth_names,
|
|
454
|
+
:return_type => return_type
|
|
455
|
+
)
|
|
456
|
+
|
|
457
|
+
data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
|
|
458
|
+
if @api_client.config.debugging
|
|
459
|
+
@api_client.config.logger.debug "API called: MembersApi#set_member_project_access\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
460
|
+
end
|
|
461
|
+
return data, status_code, headers
|
|
462
|
+
end
|
|
463
|
+
|
|
370
464
|
# Suspend a member
|
|
371
465
|
# Minimum role: owner. The member loses access on their very next request, including through any API key they own that is scoped to this organization. The last active owner cannot be suspended.
|
|
372
466
|
# @param organization_id [String]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -105,7 +105,7 @@ module Mencoro
|
|
|
105
105
|
end
|
|
106
106
|
|
|
107
107
|
# Count the tracked queries an organization has configured
|
|
108
|
-
# Minimum role: viewer. How many tracked queries the organization has configured, counted live in PostgreSQL — the write model — over EVERY project it owns, archived projects included, and over every tracked query in them, active and paused alike. It is deliberately a DIFFERENT number from `aggregate.totalTrackedQueries` in getOrganizationOverview: that one sums a per-project copy held in the Elasticsearch read model and covers ACTIVE projects only, so it excludes archived projects and can lag behind a change that already shows here. Expect the two to disagree and do not treat either as wrong. This figure does reconcile exactly with countTrackedQueries, which counts one project through the same counter in the same store: sum its unfiltered `count` over every project, archived included, and you get this number. For the ACTIVE subset and what it will consume, call getOrganizationProjectedMonthlyChecks, which ranges over the same projects. Do NOT derive the paused count by subtracting one from the other: this number is read live from Postgres while that one is served from a cache invalidated by background subscribers, so the two can disagree while that invalidation catches up and the difference is then a count of nothing. For how many projects this ranges over, read `projects.total` and `projects.active` from getOrganizationStats. The value is never null: 0 means none are configured. This operation takes no query parameters — the population is fixed, and a parameter it cannot honour is rejected with 400 rather than silently ignored.
|
|
108
|
+
# Minimum role: viewer. For a member restricted to selected projects, every figure covers those projects only. How many tracked queries the organization has configured, counted live in PostgreSQL — the write model — over EVERY project it owns, archived projects included, and over every tracked query in them, active and paused alike. It is deliberately a DIFFERENT number from `aggregate.totalTrackedQueries` in getOrganizationOverview: that one sums a per-project copy held in the Elasticsearch read model and covers ACTIVE projects only, so it excludes archived projects and can lag behind a change that already shows here. Expect the two to disagree and do not treat either as wrong. This figure does reconcile exactly with countTrackedQueries, which counts one project through the same counter in the same store: sum its unfiltered `count` over every project, archived included, and you get this number. For the ACTIVE subset and what it will consume, call getOrganizationProjectedMonthlyChecks, which ranges over the same projects. Do NOT derive the paused count by subtracting one from the other: this number is read live from Postgres while that one is served from a cache invalidated by background subscribers, so the two can disagree while that invalidation catches up and the difference is then a count of nothing. For how many projects this ranges over, read `projects.total` and `projects.active` from getOrganizationStats. The value is never null: 0 means none are configured. This operation takes no query parameters — the population is fixed, and a parameter it cannot honour is rejected with 400 rather than silently ignored.
|
|
109
109
|
# @param organization_id [String]
|
|
110
110
|
# @param [Hash] opts the optional parameters
|
|
111
111
|
# @return [TrackedQueryUsageResource]
|
|
@@ -115,7 +115,7 @@ module Mencoro
|
|
|
115
115
|
end
|
|
116
116
|
|
|
117
117
|
# Count the tracked queries an organization has configured
|
|
118
|
-
# Minimum role: viewer. How many tracked queries the organization has configured, counted live in PostgreSQL — the write model — over EVERY project it owns, archived projects included, and over every tracked query in them, active and paused alike. It is deliberately a DIFFERENT number from `aggregate.totalTrackedQueries` in getOrganizationOverview: that one sums a per-project copy held in the Elasticsearch read model and covers ACTIVE projects only, so it excludes archived projects and can lag behind a change that already shows here. Expect the two to disagree and do not treat either as wrong. This figure does reconcile exactly with countTrackedQueries, which counts one project through the same counter in the same store: sum its unfiltered `count` over every project, archived included, and you get this number. For the ACTIVE subset and what it will consume, call getOrganizationProjectedMonthlyChecks, which ranges over the same projects. Do NOT derive the paused count by subtracting one from the other: this number is read live from Postgres while that one is served from a cache invalidated by background subscribers, so the two can disagree while that invalidation catches up and the difference is then a count of nothing. For how many projects this ranges over, read `projects.total` and `projects.active` from getOrganizationStats. The value is never null: 0 means none are configured. This operation takes no query parameters — the population is fixed, and a parameter it cannot honour is rejected with 400 rather than silently ignored.
|
|
118
|
+
# Minimum role: viewer. For a member restricted to selected projects, every figure covers those projects only. How many tracked queries the organization has configured, counted live in PostgreSQL — the write model — over EVERY project it owns, archived projects included, and over every tracked query in them, active and paused alike. It is deliberately a DIFFERENT number from `aggregate.totalTrackedQueries` in getOrganizationOverview: that one sums a per-project copy held in the Elasticsearch read model and covers ACTIVE projects only, so it excludes archived projects and can lag behind a change that already shows here. Expect the two to disagree and do not treat either as wrong. This figure does reconcile exactly with countTrackedQueries, which counts one project through the same counter in the same store: sum its unfiltered `count` over every project, archived included, and you get this number. For the ACTIVE subset and what it will consume, call getOrganizationProjectedMonthlyChecks, which ranges over the same projects. Do NOT derive the paused count by subtracting one from the other: this number is read live from Postgres while that one is served from a cache invalidated by background subscribers, so the two can disagree while that invalidation catches up and the difference is then a count of nothing. For how many projects this ranges over, read `projects.total` and `projects.active` from getOrganizationStats. The value is never null: 0 means none are configured. This operation takes no query parameters — the population is fixed, and a parameter it cannot honour is rejected with 400 rather than silently ignored.
|
|
119
119
|
# @param organization_id [String]
|
|
120
120
|
# @param [Hash] opts the optional parameters
|
|
121
121
|
# @return [Array<(TrackedQueryUsageResource, Integer, Hash)>] TrackedQueryUsageResource data, response status code and response headers
|
|
@@ -439,7 +439,7 @@ module Mencoro
|
|
|
439
439
|
end
|
|
440
440
|
|
|
441
441
|
# Project a month of check consumption from the current tracking configuration
|
|
442
|
-
# Minimum role: viewer. What the organization's current configuration would consume in a month, in
|
|
442
|
+
# Minimum role: viewer. For a member restricted to selected projects, every figure covers those projects only. What the organization's current configuration would consume in a month, in checks — the same unit `checkBudget` and `checksAvailable` are counted in by the entitlements operation — so the two are directly comparable when sizing a plan. The arithmetic is published so it can be reproduced rather than trusted: for each ACTIVE tracked query, runs per month (daily 30, weekly 4, monthly 1) multiplied by its nPasses and engine weight, summed. Claude uses five checks per pass; every other engine uses one. A weekly query runs 4 times per month, not 4.345: a month is modelled as 30 days and 4 weeks, a planning convention rather than a calendar. Take `checkFrequency`, `nPasses` and `engine` from the tracked-query listing and the arithmetic will match — though the two sides are read from different places and settle at different times: this figure is computed in the Postgres write model and served from a cache that background subscribers invalidate, while that listing reads an Elasticsearch projection. Immediately after a write the two can disagree; neither is wrong, they are catching up. PAUSED queries are excluded from both figures; archived PROJECTS are not — archiving a project does not pause its tracked queries, so they still count here, exactly as they do in countOrganizationTrackedQueries. `activeTrackedQueryCount` describes the same population as that count, minus the paused queries — but do not compute the difference to learn how many are paused: THIS OPERATION IS CACHED and that one is read live, so the two can disagree while the cache is invalidated in the background. This is a projection of the configuration, not a forecast of what will actually be spent: it does not look at the remaining plan budget, does not know which checks will be skipped or retried, and reserves and debits nothing. It is also not the `checkCost` of countTrackedQueries, which prices one round over one project rather than a month over the organization. Both values are never null: 0 means nothing is scheduled. This operation takes no query parameters — the population is fixed, and a parameter it cannot honour is rejected with 400 rather than silently ignored.
|
|
443
443
|
# @param organization_id [String]
|
|
444
444
|
# @param [Hash] opts the optional parameters
|
|
445
445
|
# @return [ProjectedMonthlyChecksResource]
|
|
@@ -449,7 +449,7 @@ module Mencoro
|
|
|
449
449
|
end
|
|
450
450
|
|
|
451
451
|
# Project a month of check consumption from the current tracking configuration
|
|
452
|
-
# Minimum role: viewer. What the organization's current configuration would consume in a month, in
|
|
452
|
+
# Minimum role: viewer. For a member restricted to selected projects, every figure covers those projects only. What the organization's current configuration would consume in a month, in checks — the same unit `checkBudget` and `checksAvailable` are counted in by the entitlements operation — so the two are directly comparable when sizing a plan. The arithmetic is published so it can be reproduced rather than trusted: for each ACTIVE tracked query, runs per month (daily 30, weekly 4, monthly 1) multiplied by its nPasses and engine weight, summed. Claude uses five checks per pass; every other engine uses one. A weekly query runs 4 times per month, not 4.345: a month is modelled as 30 days and 4 weeks, a planning convention rather than a calendar. Take `checkFrequency`, `nPasses` and `engine` from the tracked-query listing and the arithmetic will match — though the two sides are read from different places and settle at different times: this figure is computed in the Postgres write model and served from a cache that background subscribers invalidate, while that listing reads an Elasticsearch projection. Immediately after a write the two can disagree; neither is wrong, they are catching up. PAUSED queries are excluded from both figures; archived PROJECTS are not — archiving a project does not pause its tracked queries, so they still count here, exactly as they do in countOrganizationTrackedQueries. `activeTrackedQueryCount` describes the same population as that count, minus the paused queries — but do not compute the difference to learn how many are paused: THIS OPERATION IS CACHED and that one is read live, so the two can disagree while the cache is invalidated in the background. This is a projection of the configuration, not a forecast of what will actually be spent: it does not look at the remaining plan budget, does not know which checks will be skipped or retried, and reserves and debits nothing. It is also not the `checkCost` of countTrackedQueries, which prices one round over one project rather than a month over the organization. Both values are never null: 0 means nothing is scheduled. This operation takes no query parameters — the population is fixed, and a parameter it cannot honour is rejected with 400 rather than silently ignored.
|
|
453
453
|
# @param organization_id [String]
|
|
454
454
|
# @param [Hash] opts the optional parameters
|
|
455
455
|
# @return [Array<(ProjectedMonthlyChecksResource, Integer, Hash)>] ProjectedMonthlyChecksResource data, response status code and response headers
|
|
@@ -502,7 +502,7 @@ module Mencoro
|
|
|
502
502
|
end
|
|
503
503
|
|
|
504
504
|
# Headline counts for an organization
|
|
505
|
-
# Minimum role: viewer. Active members, projects (total and active) and pending invitations, in one call. Every value is a count
|
|
505
|
+
# Minimum role: viewer. Active members, projects (total and active) and pending invitations, in one call. Every value is a count: 0 means the organization really has none of that thing you can access. Only `members.total` and `invitations.pending` can be null, and only for a member restricted to selected projects, who is not shown them. `members.total` counts ACTIVE memberships only, so a suspended member is not included; `projects.total` counts every project you can access, archived ones included, and `projects.active` the non-archived subset. For a member restricted to selected projects, the project figures cover those projects only. This is a current-state snapshot and takes no date window.
|
|
506
506
|
# @param organization_id [String]
|
|
507
507
|
# @param [Hash] opts the optional parameters
|
|
508
508
|
# @return [GetOrganizationStats200Response]
|
|
@@ -512,7 +512,7 @@ module Mencoro
|
|
|
512
512
|
end
|
|
513
513
|
|
|
514
514
|
# Headline counts for an organization
|
|
515
|
-
# Minimum role: viewer. Active members, projects (total and active) and pending invitations, in one call. Every value is a count
|
|
515
|
+
# Minimum role: viewer. Active members, projects (total and active) and pending invitations, in one call. Every value is a count: 0 means the organization really has none of that thing you can access. Only `members.total` and `invitations.pending` can be null, and only for a member restricted to selected projects, who is not shown them. `members.total` counts ACTIVE memberships only, so a suspended member is not included; `projects.total` counts every project you can access, archived ones included, and `projects.active` the non-archived subset. For a member restricted to selected projects, the project figures cover those projects only. This is a current-state snapshot and takes no date window.
|
|
516
516
|
# @param organization_id [String]
|
|
517
517
|
# @param [Hash] opts the optional parameters
|
|
518
518
|
# @return [Array<(GetOrganizationStats200Response, Integer, Hash)>] GetOrganizationStats200Response data, response status code and response headers
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -191,7 +191,7 @@ module Mencoro
|
|
|
191
191
|
end
|
|
192
192
|
|
|
193
193
|
# Create a project and the brand monitoring profile its checks run against
|
|
194
|
-
# 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.
|
|
194
|
+
# Minimum role: manager, in an active organization, with access to every project of it: a member restricted to selected projects is refused as a role below the minimum is. 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.
|
|
195
195
|
# @param organization_id [String]
|
|
196
196
|
# @param idempotency_key [String]
|
|
197
197
|
# @param create_project_request [CreateProjectRequest]
|
|
@@ -203,7 +203,7 @@ module Mencoro
|
|
|
203
203
|
end
|
|
204
204
|
|
|
205
205
|
# Create a project and the brand monitoring profile its checks run against
|
|
206
|
-
# 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.
|
|
206
|
+
# Minimum role: manager, in an active organization, with access to every project of it: a member restricted to selected projects is refused as a role below the minimum is. 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.
|
|
207
207
|
# @param organization_id [String]
|
|
208
208
|
# @param idempotency_key [String]
|
|
209
209
|
# @param create_project_request [CreateProjectRequest]
|
|
@@ -430,6 +430,81 @@ module Mencoro
|
|
|
430
430
|
return data, status_code, headers
|
|
431
431
|
end
|
|
432
432
|
|
|
433
|
+
# Get one of a project's competitors
|
|
434
|
+
# Minimum role: viewer. Returns a single competitor of the project, the same projection the competitor listing returns for each of its rows. A competitor belonging to another project answers 404, the same answer an unknown id and a malformed one get, so the API never confirms that a competitor the caller cannot reach exists. A project whose brand monitoring profile has not been created yet has no competitors at all and answers 404 for any competitor id.
|
|
435
|
+
# @param organization_id [String]
|
|
436
|
+
# @param project_id [String] Must belong to the organization in the path.
|
|
437
|
+
# @param competitor_id [String] Must belong to the project in the path.
|
|
438
|
+
# @param [Hash] opts the optional parameters
|
|
439
|
+
# @return [CompetitorResource]
|
|
440
|
+
def get_competitor(organization_id, project_id, competitor_id, opts = {})
|
|
441
|
+
data, _status_code, _headers = get_competitor_with_http_info(organization_id, project_id, competitor_id, opts)
|
|
442
|
+
data
|
|
443
|
+
end
|
|
444
|
+
|
|
445
|
+
# Get one of a project's competitors
|
|
446
|
+
# Minimum role: viewer. Returns a single competitor of the project, the same projection the competitor listing returns for each of its rows. A competitor belonging to another project answers 404, the same answer an unknown id and a malformed one get, so the API never confirms that a competitor the caller cannot reach exists. A project whose brand monitoring profile has not been created yet has no competitors at all and answers 404 for any competitor id.
|
|
447
|
+
# @param organization_id [String]
|
|
448
|
+
# @param project_id [String] Must belong to the organization in the path.
|
|
449
|
+
# @param competitor_id [String] Must belong to the project in the path.
|
|
450
|
+
# @param [Hash] opts the optional parameters
|
|
451
|
+
# @return [Array<(CompetitorResource, Integer, Hash)>] CompetitorResource data, response status code and response headers
|
|
452
|
+
def get_competitor_with_http_info(organization_id, project_id, competitor_id, opts = {})
|
|
453
|
+
if @api_client.config.debugging
|
|
454
|
+
@api_client.config.logger.debug 'Calling API: ProjectsApi.get_competitor ...'
|
|
455
|
+
end
|
|
456
|
+
# verify the required parameter 'organization_id' is set
|
|
457
|
+
if @api_client.config.client_side_validation && organization_id.nil?
|
|
458
|
+
fail ArgumentError, "Missing the required parameter 'organization_id' when calling ProjectsApi.get_competitor"
|
|
459
|
+
end
|
|
460
|
+
# verify the required parameter 'project_id' is set
|
|
461
|
+
if @api_client.config.client_side_validation && project_id.nil?
|
|
462
|
+
fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectsApi.get_competitor"
|
|
463
|
+
end
|
|
464
|
+
# verify the required parameter 'competitor_id' is set
|
|
465
|
+
if @api_client.config.client_side_validation && competitor_id.nil?
|
|
466
|
+
fail ArgumentError, "Missing the required parameter 'competitor_id' when calling ProjectsApi.get_competitor"
|
|
467
|
+
end
|
|
468
|
+
# resource path
|
|
469
|
+
local_var_path = '/api/v1/organizations/{organizationId}/projects/{projectId}/competitors/{competitorId}'.sub('{organizationId}', CGI.escape(organization_id.to_s)).sub('{projectId}', CGI.escape(project_id.to_s)).sub('{competitorId}', CGI.escape(competitor_id.to_s))
|
|
470
|
+
|
|
471
|
+
# query parameters
|
|
472
|
+
query_params = opts[:query_params] || {}
|
|
473
|
+
|
|
474
|
+
# header parameters
|
|
475
|
+
header_params = opts[:header_params] || {}
|
|
476
|
+
# HTTP header 'Accept' (if needed)
|
|
477
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
478
|
+
|
|
479
|
+
# form parameters
|
|
480
|
+
form_params = opts[:form_params] || {}
|
|
481
|
+
|
|
482
|
+
# http body (model)
|
|
483
|
+
post_body = opts[:debug_body]
|
|
484
|
+
|
|
485
|
+
# return_type
|
|
486
|
+
return_type = opts[:debug_return_type] || 'CompetitorResource'
|
|
487
|
+
|
|
488
|
+
# auth_names
|
|
489
|
+
auth_names = opts[:debug_auth_names] || ['ApiKey']
|
|
490
|
+
|
|
491
|
+
new_options = opts.merge(
|
|
492
|
+
:operation => :"ProjectsApi.get_competitor",
|
|
493
|
+
:header_params => header_params,
|
|
494
|
+
:query_params => query_params,
|
|
495
|
+
:form_params => form_params,
|
|
496
|
+
:body => post_body,
|
|
497
|
+
:auth_names => auth_names,
|
|
498
|
+
:return_type => return_type
|
|
499
|
+
)
|
|
500
|
+
|
|
501
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
502
|
+
if @api_client.config.debugging
|
|
503
|
+
@api_client.config.logger.debug "API called: ProjectsApi#get_competitor\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
504
|
+
end
|
|
505
|
+
return data, status_code, headers
|
|
506
|
+
end
|
|
507
|
+
|
|
433
508
|
# Get a project and its brand monitoring configuration
|
|
434
509
|
# 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.
|
|
435
510
|
# @param organization_id [String]
|
|
@@ -594,7 +669,7 @@ module Mencoro
|
|
|
594
669
|
end
|
|
595
670
|
|
|
596
671
|
# List an organization's projects
|
|
597
|
-
# 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.
|
|
672
|
+
# 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. For a member restricted to selected projects, the list and `total` cover those projects only. 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.
|
|
598
673
|
# @param organization_id [String]
|
|
599
674
|
# @param [Hash] opts the optional parameters
|
|
600
675
|
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced. (default to 20)
|
|
@@ -610,7 +685,7 @@ module Mencoro
|
|
|
610
685
|
end
|
|
611
686
|
|
|
612
687
|
# List an organization's projects
|
|
613
|
-
# 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.
|
|
688
|
+
# 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. For a member restricted to selected projects, the list and `total` cover those projects only. 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.
|
|
614
689
|
# @param organization_id [String]
|
|
615
690
|
# @param [Hash] opts the optional parameters
|
|
616
691
|
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced. (default to 20)
|