Packages
opencode_sdk
0.1.83
0.1.84
0.1.83
0.1.82
0.1.81
0.1.80
0.1.79
0.1.78
0.1.77
0.1.76
0.1.75
0.1.74
0.1.73
0.1.72
0.1.71
0.1.70
0.1.69
0.1.68
0.1.67
0.1.66
0.1.65
0.1.64
0.1.63
0.1.62
0.1.61
0.1.60
0.1.59
0.1.58
0.1.57
0.1.56
0.1.55
0.1.54
0.1.53
0.1.52
0.1.51
0.1.50
0.1.49
0.1.48
0.1.47
0.1.46
0.1.45
0.1.44
0.1.43
0.1.42
0.1.41
0.1.40
0.1.39
0.1.38
0.1.37
0.1.36
0.1.35
0.1.34
0.1.33
0.1.32
0.1.31
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Unofficial OpenCode SDK for Elixir. A complete Elixir SDK for OpenCode, providing server creation, session management, messaging, file operations, and more. Mirrors the functionality of the official JavaScript SDK (@opencode-ai/sdk). Not affiliated with or built by the OpenCode team.
Current section
Files
Jump to
Current section
Files
lib/opencode/generated/permissions.ex
defmodule OpenCode.Generated.Permissions do
@moduledoc """
Provides API endpoints related to permissions
"""
@default_client OpenCode.Client
@type v2_permission_request_list_200_json_resp :: %{
data: [OpenCode.Generated.PermissionV2Request.t()],
location: OpenCode.Generated.LocationInfo.t()
}
@doc """
List pending permission requests
Retrieve pending permission requests for a location.
## Options
* `location`
"""
@spec v2_permission_request_list(opts :: keyword) ::
{:ok, OpenCode.Generated.Permissions.v2_permission_request_list_200_json_resp()}
| {:error,
OpenCode.Generated.InvalidRequestError.t() | OpenCode.Generated.UnauthorizedError.t()}
def v2_permission_request_list(opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:location])
client.request(%{
args: [],
call: {OpenCode.Generated.Permissions, :v2_permission_request_list},
url: "/api/permission/request",
method: :get,
query: query,
response: [
{200, {OpenCode.Generated.Permissions, :v2_permission_request_list_200_json_resp}},
{400, {OpenCode.Generated.InvalidRequestError, :t}},
{401, {OpenCode.Generated.UnauthorizedError, :t}}
],
opts: opts
})
end
@type v2_permission_saved_list_200_json_resp :: %{
data: [OpenCode.Generated.PermissionSavedInfo.t()]
}
@doc """
List saved permissions
Retrieve saved permissions, optionally filtered by project.
## Options
* `projectID`
"""
@spec v2_permission_saved_list(opts :: keyword) ::
{:ok, OpenCode.Generated.Permissions.v2_permission_saved_list_200_json_resp()}
| {:error,
OpenCode.Generated.InvalidRequestError.t() | OpenCode.Generated.UnauthorizedError.t()}
def v2_permission_saved_list(opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:projectID])
client.request(%{
args: [],
call: {OpenCode.Generated.Permissions, :v2_permission_saved_list},
url: "/api/permission/saved",
method: :get,
query: query,
response: [
{200, {OpenCode.Generated.Permissions, :v2_permission_saved_list_200_json_resp}},
{400, {OpenCode.Generated.InvalidRequestError, :t}},
{401, {OpenCode.Generated.UnauthorizedError, :t}}
],
opts: opts
})
end
@doc """
Remove saved permission
Remove a saved permission by ID.
"""
@spec v2_permission_saved_remove(id :: String.t(), opts :: keyword) ::
:ok
| {:error,
OpenCode.Generated.InvalidRequestError.t() | OpenCode.Generated.UnauthorizedError.t()}
def v2_permission_saved_remove(id, opts \\ []) do
client = opts[:client] || @default_client
client.request(%{
args: [id: id],
call: {OpenCode.Generated.Permissions, :v2_permission_saved_remove},
url: "/api/permission/saved/#{id}",
method: :delete,
response: [
{204, :null},
{400, {OpenCode.Generated.InvalidRequestError, :t}},
{401, {OpenCode.Generated.UnauthorizedError, :t}}
],
opts: opts
})
end
@type v2_session_permission_list_200_json_resp :: %{
data: [OpenCode.Generated.PermissionV2Request.t()]
}
@doc """
List session permission requests
Retrieve pending permission requests owned by a session.
"""
@spec v2_session_permission_list(sessionID :: String.t(), opts :: keyword) ::
{:ok, OpenCode.Generated.Permissions.v2_session_permission_list_200_json_resp()}
| {:error,
OpenCode.Generated.InvalidRequestError.t()
| OpenCode.Generated.SessionNotFoundError.t()
| OpenCode.Generated.UnauthorizedError.t()}
def v2_session_permission_list(sessionID, opts \\ []) do
client = opts[:client] || @default_client
client.request(%{
args: [sessionID: sessionID],
call: {OpenCode.Generated.Permissions, :v2_session_permission_list},
url: "/api/session/#{sessionID}/permission",
method: :get,
response: [
{200, {OpenCode.Generated.Permissions, :v2_session_permission_list_200_json_resp}},
{400, {OpenCode.Generated.InvalidRequestError, :t}},
{401, {OpenCode.Generated.UnauthorizedError, :t}},
{404, {OpenCode.Generated.SessionNotFoundError, :t}}
],
opts: opts
})
end
@doc """
Reply to pending permission request
Respond to a pending permission request owned by a session.
## Request Body
**Content Types**: `application/json`
"""
@spec v2_session_permission_reply(
sessionID :: String.t(),
requestID :: String.t(),
body :: map,
opts :: keyword
) ::
:ok
| {:error,
OpenCode.Generated.InvalidRequestError.t()
| OpenCode.Generated.PermissionNotFoundError.t()
| OpenCode.Generated.SessionNotFoundError.t()
| OpenCode.Generated.UnauthorizedError.t()}
def v2_session_permission_reply(sessionID, requestID, body, opts \\ []) do
client = opts[:client] || @default_client
client.request(%{
args: [sessionID: sessionID, requestID: requestID, body: body],
call: {OpenCode.Generated.Permissions, :v2_session_permission_reply},
url: "/api/session/#{sessionID}/permission/#{requestID}/reply",
body: body,
method: :post,
request: [{"application/json", :map}],
response: [
{204, :null},
{400, {OpenCode.Generated.InvalidRequestError, :t}},
{401, {OpenCode.Generated.UnauthorizedError, :t}},
{404,
{:union,
[
{OpenCode.Generated.PermissionNotFoundError, :t},
{OpenCode.Generated.SessionNotFoundError, :t}
]}}
],
opts: opts
})
end
@doc false
@spec __fields__(atom) :: keyword
def __fields__(:v2_permission_request_list_200_json_resp) do
[
data: [{OpenCode.Generated.PermissionV2Request, :t}],
location: {OpenCode.Generated.LocationInfo, :t}
]
end
def __fields__(:v2_permission_saved_list_200_json_resp) do
[data: [{OpenCode.Generated.PermissionSavedInfo, :t}]]
end
def __fields__(:v2_session_permission_list_200_json_resp) do
[data: [{OpenCode.Generated.PermissionV2Request, :t}]]
end
end