lib/generated/scheduled_query_run.ex

defmodule Stripe.ScheduledQueryRun do
  use Stripe.Entity

  @moduledoc "If you have [scheduled a Sigma query](https://stripe.com/docs/sigma/scheduled-queries), you'll\nreceive a `sigma.scheduled_query_run.created` webhook each time the query\nruns. The webhook contains a `ScheduledQueryRun` object, which you can use to\nretrieve the query results."
  (
    defstruct [
      :created,
      :data_load_time,
      :error,
      :file,
      :id,
      :livemode,
      :object,
      :result_available_until,
      :sql,
      :status,
      :title
    ]

    @typedoc "The `scheduled_query_run` type.\n\n  * `created` Time at which the object was created. Measured in seconds since the Unix epoch.\n  * `data_load_time` When the query was run, Sigma contained a snapshot of your Stripe data at this time.\n  * `error` \n  * `file` The file object representing the results of the query.\n  * `id` Unique identifier for the object.\n  * `livemode` Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.\n  * `object` String representing the object's type. Objects of the same type share the same value.\n  * `result_available_until` Time at which the result expires and is no longer available for download.\n  * `sql` SQL for the query.\n  * `status` The query's execution status, which will be `completed` for successful runs, and `canceled`, `failed`, or `timed_out` otherwise.\n  * `title` Title of the query.\n"
    @type t :: %__MODULE__{
            created: integer,
            data_load_time: integer,
            error: term,
            file: Stripe.File.t() | nil,
            id: binary,
            livemode: boolean,
            object: binary,
            result_available_until: integer,
            sql: binary,
            status: binary,
            title: binary
          }
  )

  (
    nil

    @doc "<p>Returns a list of scheduled query runs.</p>\n\n#### Details\n\n * Method: `get`\n * Path: `/v1/sigma/scheduled_query_runs`\n"
    (
      @spec list(
              params :: %{
                optional(:ending_before) => binary,
                optional(:expand) => list(binary),
                optional(:limit) => integer,
                optional(:starting_after) => binary
              },
              opts :: Keyword.t()
            ) ::
              {:ok, Stripe.List.t(Stripe.ScheduledQueryRun.t())}
              | {:error, Stripe.ApiErrors.t()}
              | {:error, term()}
      def list(params \\ %{}, opts \\ []) do
        path = Stripe.OpenApi.Path.replace_path_params("/v1/sigma/scheduled_query_runs", [], [])

        Stripe.Request.new_request(opts)
        |> Stripe.Request.put_endpoint(path)
        |> Stripe.Request.put_params(params)
        |> Stripe.Request.put_method(:get)
        |> Stripe.Request.make_request()
      end
    )
  )

  (
    nil

    @doc "<p>Retrieves the details of an scheduled query run.</p>\n\n#### Details\n\n * Method: `get`\n * Path: `/v1/sigma/scheduled_query_runs/{scheduled_query_run}`\n"
    (
      @spec retrieve(
              scheduled_query_run :: binary(),
              params :: %{optional(:expand) => list(binary)},
              opts :: Keyword.t()
            ) ::
              {:ok, Stripe.ScheduledQueryRun.t()}
              | {:error, Stripe.ApiErrors.t()}
              | {:error, term()}
      def retrieve(scheduled_query_run, params \\ %{}, opts \\ []) do
        path =
          Stripe.OpenApi.Path.replace_path_params(
            "/v1/sigma/scheduled_query_runs/{scheduled_query_run}",
            [
              %OpenApiGen.Blueprint.Parameter{
                in: "path",
                name: "scheduled_query_run",
                required: true,
                schema: %OpenApiGen.Blueprint.Parameter.Schema{
                  name: "scheduled_query_run",
                  title: nil,
                  type: "string",
                  items: [],
                  properties: [],
                  any_of: []
                }
              }
            ],
            [scheduled_query_run]
          )

        Stripe.Request.new_request(opts)
        |> Stripe.Request.put_endpoint(path)
        |> Stripe.Request.put_params(params)
        |> Stripe.Request.put_method(:get)
        |> Stripe.Request.make_request()
      end
    )
  )
end