Packages
opencode_sdk
0.1.81
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/project_copy.ex
defmodule OpenCode.Generated.ProjectCopy do
@moduledoc """
Provides API endpoints related to project copy
"""
@default_client OpenCode.Client
@doc """
Create project copy
Create a local physical copy of a project using the selected strategy.
## Options
* `workspace`
## Request Body
**Content Types**: `application/json`
"""
@spec experimental_project_copy_create(projectID :: String.t(), body :: map, opts :: keyword) ::
{:ok, OpenCode.Generated.ProjectCopyCopy.t()}
| {:error,
OpenCode.Generated.InvalidRequestError.t() | OpenCode.Generated.ProjectCopyError.t()}
def experimental_project_copy_create(projectID, body, opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:workspace])
client.request(%{
args: [projectID: projectID, body: body],
call: {OpenCode.Generated.ProjectCopy, :experimental_project_copy_create},
url: "/experimental/project/#{projectID}/copy",
body: body,
method: :post,
query: query,
request: [{"application/json", :map}],
response: [
{200, {OpenCode.Generated.ProjectCopyCopy, :t}},
{400,
{:union,
[
{OpenCode.Generated.InvalidRequestError, :t},
{OpenCode.Generated.ProjectCopyError, :t}
]}}
],
opts: opts
})
end
@doc """
Refresh project copies
Discover local project copies using one or all configured strategies.
## Options
* `directory`
* `workspace`
"""
@spec experimental_project_copy_refresh(projectID :: String.t(), opts :: keyword) ::
:ok
| {:error,
OpenCode.Generated.InvalidRequestError.t() | OpenCode.Generated.ProjectCopyError.t()}
def experimental_project_copy_refresh(projectID, opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:directory, :workspace])
client.request(%{
args: [projectID: projectID],
call: {OpenCode.Generated.ProjectCopy, :experimental_project_copy_refresh},
url: "/experimental/project/#{projectID}/copy/refresh",
method: :post,
query: query,
response: [
{204, :null},
{400,
{:union,
[
{OpenCode.Generated.InvalidRequestError, :t},
{OpenCode.Generated.ProjectCopyError, :t}
]}}
],
opts: opts
})
end
@doc """
Remove project copy
Remove a local physical copy of a project using the selected strategy.
## Options
* `workspace`
## Request Body
**Content Types**: `application/json`
"""
@spec experimental_project_copy_remove(projectID :: String.t(), body :: map, opts :: keyword) ::
:ok
| {:error,
OpenCode.Generated.InvalidRequestError.t() | OpenCode.Generated.ProjectCopyError.t()}
def experimental_project_copy_remove(projectID, body, opts \\ []) do
client = opts[:client] || @default_client
query = Keyword.take(opts, [:workspace])
client.request(%{
args: [projectID: projectID, body: body],
call: {OpenCode.Generated.ProjectCopy, :experimental_project_copy_remove},
url: "/experimental/project/#{projectID}/copy",
body: body,
method: :delete,
query: query,
request: [{"application/json", :map}],
response: [
{204, :null},
{400,
{:union,
[
{OpenCode.Generated.InvalidRequestError, :t},
{OpenCode.Generated.ProjectCopyError, :t}
]}}
],
opts: opts
})
end
end