defmodule PlausibleWeb.Plugins.API.Schemas.Goal.CreateRequest do @moduledoc """ OpenAPI schema for Goal creation request """ use Plausible.Funnel.Const use PlausibleWeb, :open_api_schema OpenApiSpex.schema(%{ title: "Goal.CreateRequest", description: "Goal creation params", type: :object, oneOf: [ %Schema{ title: "Goal.CreateRequest.BulkGetOrCreate", type: :object, description: "Bulk goal creation request", required: [:goals], properties: %{ goals: %Schema{ type: :array, minItems: 1, maxItems: Funnel.Const.max_steps(), items: %Schema{ oneOf: [ Schemas.Goal.CreateRequest.CustomEvent, Schemas.Goal.CreateRequest.Revenue, Schemas.Goal.CreateRequest.Pageview ] } } } }, Schemas.Goal.CreateRequest.CustomEvent, Schemas.Goal.CreateRequest.Revenue, Schemas.Goal.CreateRequest.Pageview ] }) end