Packages

CircleCI API Client for Elixir

Current section

Files

Jump to
circleci_client lib operations workflow.ex
Raw

lib/operations/workflow.ex

defmodule CircleCI.Workflow do
@moduledoc """
Provides API endpoints related to workflow
"""
@default_client CircleCI.Client
@type get_workflow_by_id_default_json_resp :: %{message: String.t() | nil}
@doc """
Get a workflow
Returns summary fields of a workflow by ID.
"""
@spec get_workflow_by_id(String.t(), keyword) :: {:ok, map} | {:error, map}
def get_workflow_by_id(id, opts \\ []) do
client = opts[:client] || @default_client
client.request(%{
args: [id: id],
call: {CircleCI.Workflow, :get_workflow_by_id},
url: "/workflow/#{id}",
method: :get,
response: [
{200, {CircleCI.Workflow, :t}},
default: {CircleCI.Workflow, :get_workflow_by_id_default_json_resp}
],
opts: opts
})
end
@type list_workflow_jobs_200_json_resp :: %{
items: [CircleCI.Job.t()],
next_page_token: String.t() | nil
}
@type list_workflow_jobs_default_json_resp :: %{message: String.t() | nil}
@doc """
Get a workflow's jobs
Returns a sequence of jobs for a workflow.
"""
@spec list_workflow_jobs(String.t(), keyword) :: {:ok, map} | {:error, map}
def list_workflow_jobs(id, opts \\ []) do
client = opts[:client] || @default_client
client.request(%{
args: [id: id],
call: {CircleCI.Workflow, :list_workflow_jobs},
url: "/workflow/#{id}/job",
method: :get,
response: [
{200, {CircleCI.Workflow, :list_workflow_jobs_200_json_resp}},
default: {CircleCI.Workflow, :list_workflow_jobs_default_json_resp}
],
opts: opts
})
end
@type t :: %__MODULE__{
canceled_by: String.t() | nil,
created_at: DateTime.t(),
errored_by: String.t() | nil,
id: String.t(),
name: String.t(),
pipeline_id: String.t(),
pipeline_number: integer,
project_slug: String.t(),
started_by: String.t(),
status: String.t(),
stopped_at: DateTime.t() | nil,
tag: String.t() | nil
}
defstruct [
:canceled_by,
:created_at,
:errored_by,
:id,
:name,
:pipeline_id,
:pipeline_number,
:project_slug,
:started_by,
:status,
:stopped_at,
:tag
]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:get_workflow_by_id_default_json_resp) do
[message: {:string, :generic}]
end
def __fields__(:list_workflow_jobs_200_json_resp) do
[items: [{CircleCI.Job, :t}], next_page_token: {:string, :generic}]
end
def __fields__(:list_workflow_jobs_default_json_resp) do
[message: {:string, :generic}]
end
def __fields__(:t) do
[
canceled_by: {:string, :uuid},
created_at: {:string, :date_time},
errored_by: {:string, :uuid},
id: {:string, :uuid},
name: {:string, :generic},
pipeline_id: {:string, :uuid},
pipeline_number: :integer,
project_slug: {:string, :generic},
started_by: {:string, :uuid},
status:
{:enum,
[
"success",
"running",
"not_run",
"failed",
"error",
"failing",
"on_hold",
"canceled",
"unauthorized"
]},
stopped_at: {:string, :date_time},
tag: {:string, :generic}
]
end
end