analytics / lib /plausible_web /plugins /api /schemas /capabilities.ex
Leon4gr45's picture
Upload folder using huggingface_hub (part 3)
88211d3 verified
Raw
History Blame Contribute Delete
1.25 kB
defmodule PlausibleWeb.Plugins.API.Schemas.Capabilities do
@moduledoc """
OpenAPI schema for Capabilities
"""
use PlausibleWeb, :open_api_schema
require Plausible.Billing.Feature
@features Plausible.Billing.Feature.list_short_names()
@features_schema Enum.reduce(@features, %{}, fn feature, acc ->
Map.put(acc, feature, %Schema{type: :boolean})
end)
OpenApiSpex.schema(%{
title: "Capabilities",
description: "Capabilities object",
type: :object,
required: [:authorized, :data_domain, :features],
properties: %{
authorized: %Schema{type: :boolean},
data_domain: %Schema{type: :string, nullable: true},
features: %Schema{
type: :object,
required: @features,
properties: @features_schema
}
},
example: %{
authorized: true,
data_domain: "example.com",
features: %{
Funnels: false,
Goals: true,
Props: false,
RevenueGoals: false,
StatsAPI: false,
SitesAPI: false,
SiteSegments: false,
SiteAnnotations: false,
Teams: false,
SharedLinks: false,
SSO: false,
ConsolidatedView: false
}
}
})
end