Packages

ory_client

1.22.86
1.22.86 1.22.85 1.22.84 1.22.83 1.22.82 1.22.81 1.22.80 1.22.79 1.22.78 1.22.66 1.22.65 1.22.64 1.22.63 1.22.62 1.22.61 1.22.60 1.22.59 1.22.58 1.22.57 1.22.56 1.22.55 1.22.54 1.22.53 1.22.52 1.22.51 1.22.50 1.22.49 1.22.48 1.22.47 1.22.46 1.22.45 1.22.44 1.22.43 1.22.42 1.22.41 1.22.40 1.22.39 1.22.38 1.22.37 1.22.36 1.22.35 1.22.34 1.22.33 1.22.32 1.22.28 1.22.27 1.22.26 1.22.25 1.22.24 1.22.23 1.22.22 1.22.21 1.22.16 1.22.15 1.22.14 1.22.13 1.22.12 1.22.11 1.22.10 1.22.9 1.22.8 1.22.7 1.22.6 1.22.5 1.22.4 1.22.3 1.22.2 1.22.1 1.22.0 1.21.6 1.21.5 1.21.4 1.21.3 1.21.2 1.21.1 1.21.0 1.20.23 1.20.22 1.20.11 1.20.10 1.20.9 1.20.8 1.20.7 1.20.6 1.20.5 1.20.4 1.20.3 1.20.2 1.20.1 1.20.0 1.19.0 1.18.5 1.18.4 1.17.2 1.17.1 1.16.10 1.6.2 1.6.1 1.5.2 1.5.1 1.5.0 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.0 1.2.17 1.2.16 1.2.15 1.2.14 1.2.11 1.2.10 1.2.9 1.2.8 1.2.7 1.2.6 1.2.5 1.2.4 1.2.3 1.2.2 1.2.1 1.2.0 1.1.51 1.1.50 1.1.49 1.1.48 1.1.47 1.1.46 1.1.45 1.1.44 1.1.41 1.1.40 1.1.39 1.1.39-alpha.0 1.1.38 1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.26 1.1.25 1.1.24 1.1.23 1.1.22 1.1.21 1.1.20 1.1.19 1.1.18 1.1.17 1.1.7 1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.2 1.0.1 1.0.0 1.0.0-alpha.0 0.2.0-alpha.60 0.2.0-alpha.48 0.2.0-alpha.47 0.2.0-alpha.46 0.2.0-alpha.45 0.2.0-alpha.44 0.2.0-alpha.43 0.2.0-alpha.42 0.2.0-alpha.41 0.2.0-alpha.40 0.2.0-alpha.39 0.2.0-alpha.38 0.2.0-alpha.37 0.2.0-alpha.36 0.2.0-alpha.35 0.2.0-alpha.34 0.2.0-alpha.33 0.2.0-alpha.32 0.2.0-alpha.31 0.2.0-alpha.30 0.2.0-alpha.29 0.2.0-alpha.28 0.2.0-alpha.27 0.2.0-alpha.26 0.2.0-alpha.25 0.2.0-alpha.24 0.2.0-alpha.23 0.2.0-alpha.22 0.2.0-alpha.21 0.2.0-alpha.20 0.2.0-alpha.19 0.2.0-alpha.18 0.2.0-alpha.16 0.2.0-alpha.15 0.2.0-alpha.14 0.2.0-alpha.4 0.2.0-alpha.2 0.1.0-alpha.12 0.1.0-alpha.11 0.1.0-alpha.10 0.1.0-alpha.9 0.1.0-alpha.8 0.1.0-alpha.7 0.1.0-alpha.6 0.1.0-alpha.5 0.1.0-alpha.4 0.1.0-alpha.3 0.1.0-alpha.2 0.1.0-alpha.1 0.0.1-alpha.189 0.0.1-alpha.188 0.0.1-alpha.187

OpenAPI API client for Ory Network, Ory's web-scale API for identity and access control.

Current section

Files

Jump to
ory_client lib ory api workspace.ex
Raw

lib/ory/api/workspace.ex

# NOTE: This file is auto generated by OpenAPI Generator 7.12.0 (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule Ory.Api.Workspace do
  @moduledoc """
  API calls for all endpoints tagged `Workspace`.
  """

  alias Ory.Connection
  import Ory.RequestBuilder

  @doc """
  Create a new workspace

  ### Parameters

  - `connection` (Ory.Connection): Connection to server
  - `opts` (keyword): Optional parameters
    - `:body` (CreateWorkspaceBody): 

  ### Returns

  - `{:ok, Ory.Model.Workspace.t}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec create_workspace(Tesla.Env.client, keyword()) :: {:ok, Ory.Model.Workspace.t} | {:ok, Ory.Model.ErrorGeneric.t} | {:error, Tesla.Env.t}
  def create_workspace(connection, opts \\ []) do
    optional_params = %{
      :body => :body
    }

    request =
      %{}
      |> method(:post)
      |> url("/workspaces")
      |> add_optional_params(optional_params, opts)
      |> ensure_body()
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {201, Ory.Model.Workspace},
      {400, Ory.Model.ErrorGeneric},
      {401, Ory.Model.ErrorGeneric},
      {403, Ory.Model.ErrorGeneric},
      {500, Ory.Model.ErrorGeneric},
      {:default, Ory.Model.ErrorGeneric}
    ])
  end

  @doc """
  Create workspace API key
  Create an API key for a workspace.

  ### Parameters

  - `connection` (Ory.Connection): Connection to server
  - `workspace` (String.t): The Workspace ID
  - `opts` (keyword): Optional parameters
    - `:body` (CreateWorkspaceApiKeyBody): 

  ### Returns

  - `{:ok, Ory.Model.WorkspaceApiKey.t}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec create_workspace_api_key(Tesla.Env.client, String.t, keyword()) :: {:ok, Ory.Model.ErrorGeneric.t} | {:ok, Ory.Model.WorkspaceApiKey.t} | {:error, Tesla.Env.t}
  def create_workspace_api_key(connection, workspace, opts \\ []) do
    optional_params = %{
      :body => :body
    }

    request =
      %{}
      |> method(:post)
      |> url("/workspaces/#{workspace}/tokens")
      |> add_optional_params(optional_params, opts)
      |> ensure_body()
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {201, Ory.Model.WorkspaceApiKey},
      {:default, Ory.Model.ErrorGeneric}
    ])
  end

  @doc """
  Delete workspace API key
  Deletes an API key and immediately removes it.

  ### Parameters

  - `connection` (Ory.Connection): Connection to server
  - `workspace` (String.t): The Workspace ID or Workspace slug
  - `token_id` (String.t): The Token ID
  - `opts` (keyword): Optional parameters

  ### Returns

  - `{:ok, nil}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec delete_workspace_api_key(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, nil} | {:ok, Ory.Model.ErrorGeneric.t} | {:error, Tesla.Env.t}
  def delete_workspace_api_key(connection, workspace, token_id, _opts \\ []) do
    request =
      %{}
      |> method(:delete)
      |> url("/workspaces/#{workspace}/tokens/#{token_id}")
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {204, false},
      {:default, Ory.Model.ErrorGeneric}
    ])
  end

  @doc """
  Get a workspace
  Any workspace member can access this endpoint.

  ### Parameters

  - `connection` (Ory.Connection): Connection to server
  - `workspace` (String.t): 
  - `opts` (keyword): Optional parameters

  ### Returns

  - `{:ok, Ory.Model.Workspace.t}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec get_workspace(Tesla.Env.client, String.t, keyword()) :: {:ok, Ory.Model.Workspace.t} | {:ok, Ory.Model.ErrorGeneric.t} | {:error, Tesla.Env.t}
  def get_workspace(connection, workspace, _opts \\ []) do
    request =
      %{}
      |> method(:get)
      |> url("/workspaces/#{workspace}")
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {200, Ory.Model.Workspace},
      {400, Ory.Model.ErrorGeneric},
      {401, Ory.Model.ErrorGeneric},
      {403, Ory.Model.ErrorGeneric},
      {500, Ory.Model.ErrorGeneric},
      {:default, Ory.Model.ErrorGeneric}
    ])
  end

  @doc """
  List a workspace's API keys
  A list of all the workspace's API keys.

  ### Parameters

  - `connection` (Ory.Connection): Connection to server
  - `workspace` (String.t): The Workspace ID or Workspace slug
  - `opts` (keyword): Optional parameters

  ### Returns

  - `{:ok, [%WorkspaceApiKey{}, ...]}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec list_workspace_api_keys(Tesla.Env.client, String.t, keyword()) :: {:ok, Ory.Model.ErrorGeneric.t} | {:ok, [Ory.Model.WorkspaceApiKey.t]} | {:error, Tesla.Env.t}
  def list_workspace_api_keys(connection, workspace, _opts \\ []) do
    request =
      %{}
      |> method(:get)
      |> url("/workspaces/#{workspace}/tokens")
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {200, Ory.Model.WorkspaceApiKey},
      {:default, Ory.Model.ErrorGeneric}
    ])
  end

  @doc """
  List all projects of a workspace
  Any workspace member can access this endpoint.

  ### Parameters

  - `connection` (Ory.Connection): Connection to server
  - `workspace` (String.t): 
  - `opts` (keyword): Optional parameters

  ### Returns

  - `{:ok, Ory.Model.ListWorkspaceProjects.t}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec list_workspace_projects(Tesla.Env.client, String.t, keyword()) :: {:ok, Ory.Model.ErrorGeneric.t} | {:ok, Ory.Model.ListWorkspaceProjects.t} | {:error, Tesla.Env.t}
  def list_workspace_projects(connection, workspace, _opts \\ []) do
    request =
      %{}
      |> method(:get)
      |> url("/workspaces/#{workspace}/projects")
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {200, Ory.Model.ListWorkspaceProjects},
      {400, Ory.Model.ErrorGeneric},
      {401, Ory.Model.ErrorGeneric},
      {403, Ory.Model.ErrorGeneric},
      {500, Ory.Model.ErrorGeneric},
      {:default, Ory.Model.ErrorGeneric}
    ])
  end

  @doc """
  List workspaces the user is a member of

  ### Parameters

  - `connection` (Ory.Connection): Connection to server
  - `opts` (keyword): Optional parameters
    - `:page_size` (integer()): Items per Page  This is the number of items per page to return. For details on pagination please head over to the [pagination documentation](https://www.ory.com/docs/ecosystem/api-design#pagination).
    - `:page_token` (String.t): Next Page Token  The next page token. For details on pagination please head over to the [pagination documentation](https://www.ory.com/docs/ecosystem/api-design#pagination).

  ### Returns

  - `{:ok, Ory.Model.ListWorkspaces.t}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec list_workspaces(Tesla.Env.client, keyword()) :: {:ok, Ory.Model.ErrorGeneric.t} | {:ok, Ory.Model.ListWorkspaces.t} | {:error, Tesla.Env.t}
  def list_workspaces(connection, opts \\ []) do
    optional_params = %{
      :page_size => :query,
      :page_token => :query
    }

    request =
      %{}
      |> method(:get)
      |> url("/workspaces")
      |> add_optional_params(optional_params, opts)
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {200, Ory.Model.ListWorkspaces},
      {400, Ory.Model.ErrorGeneric},
      {401, Ory.Model.ErrorGeneric},
      {403, Ory.Model.ErrorGeneric},
      {500, Ory.Model.ErrorGeneric},
      {:default, Ory.Model.ErrorGeneric}
    ])
  end

  @doc """
  Update an workspace
  Workspace members with the role `OWNER` can access this endpoint.

  ### Parameters

  - `connection` (Ory.Connection): Connection to server
  - `workspace` (String.t): 
  - `opts` (keyword): Optional parameters
    - `:body` (UpdateWorkspaceBody): 

  ### Returns

  - `{:ok, Ory.Model.Workspace.t}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec update_workspace(Tesla.Env.client, String.t, keyword()) :: {:ok, Ory.Model.Workspace.t} | {:ok, Ory.Model.ErrorGeneric.t} | {:error, Tesla.Env.t}
  def update_workspace(connection, workspace, opts \\ []) do
    optional_params = %{
      :body => :body
    }

    request =
      %{}
      |> method(:put)
      |> url("/workspaces/#{workspace}")
      |> add_optional_params(optional_params, opts)
      |> ensure_body()
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {200, Ory.Model.Workspace},
      {400, Ory.Model.ErrorGeneric},
      {401, Ory.Model.ErrorGeneric},
      {403, Ory.Model.ErrorGeneric},
      {500, Ory.Model.ErrorGeneric},
      {:default, Ory.Model.ErrorGeneric}
    ])
  end
end