| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
- package opencode
- import (
- "context"
- "errors"
- "fmt"
- "net/http"
- "github.com/sst/opencode-sdk-go/internal/apijson"
- "github.com/sst/opencode-sdk-go/internal/param"
- "github.com/sst/opencode-sdk-go/internal/requestconfig"
- "github.com/sst/opencode-sdk-go/option"
- )
- // SessionPermissionService contains methods and other services that help with
- // interacting with the opencode API.
- //
- // Note, unlike clients, this service does not read variables from the environment
- // automatically. You should not instantiate this service directly, and instead use
- // the [NewSessionPermissionService] method instead.
- type SessionPermissionService struct {
- Options []option.RequestOption
- }
- // NewSessionPermissionService generates a new service that applies the given
- // options to each request. These options are applied after the parent client's
- // options (if there is one), and before any request-specific options.
- func NewSessionPermissionService(opts ...option.RequestOption) (r *SessionPermissionService) {
- r = &SessionPermissionService{}
- r.Options = opts
- return
- }
- // Respond to a permission request
- func (r *SessionPermissionService) Respond(ctx context.Context, id string, permissionID string, body SessionPermissionRespondParams, opts ...option.RequestOption) (res *bool, err error) {
- opts = append(r.Options[:], opts...)
- if id == "" {
- err = errors.New("missing required id parameter")
- return
- }
- if permissionID == "" {
- err = errors.New("missing required permissionID parameter")
- return
- }
- path := fmt.Sprintf("session/%s/permissions/%s", id, permissionID)
- err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
- return
- }
- type Permission struct {
- ID string `json:"id,required"`
- MessageID string `json:"messageID,required"`
- Metadata map[string]interface{} `json:"metadata,required"`
- SessionID string `json:"sessionID,required"`
- Time PermissionTime `json:"time,required"`
- Title string `json:"title,required"`
- Type string `json:"type,required"`
- CallID string `json:"callID"`
- Pattern string `json:"pattern"`
- JSON permissionJSON `json:"-"`
- }
- // permissionJSON contains the JSON metadata for the struct [Permission]
- type permissionJSON struct {
- ID apijson.Field
- MessageID apijson.Field
- Metadata apijson.Field
- SessionID apijson.Field
- Time apijson.Field
- Title apijson.Field
- Type apijson.Field
- CallID apijson.Field
- Pattern apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
- }
- func (r *Permission) UnmarshalJSON(data []byte) (err error) {
- return apijson.UnmarshalRoot(data, r)
- }
- func (r permissionJSON) RawJSON() string {
- return r.raw
- }
- type PermissionTime struct {
- Created float64 `json:"created,required"`
- JSON permissionTimeJSON `json:"-"`
- }
- // permissionTimeJSON contains the JSON metadata for the struct [PermissionTime]
- type permissionTimeJSON struct {
- Created apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
- }
- func (r *PermissionTime) UnmarshalJSON(data []byte) (err error) {
- return apijson.UnmarshalRoot(data, r)
- }
- func (r permissionTimeJSON) RawJSON() string {
- return r.raw
- }
- type SessionPermissionRespondParams struct {
- Response param.Field[SessionPermissionRespondParamsResponse] `json:"response,required"`
- }
- func (r SessionPermissionRespondParams) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
- type SessionPermissionRespondParamsResponse string
- const (
- SessionPermissionRespondParamsResponseOnce SessionPermissionRespondParamsResponse = "once"
- SessionPermissionRespondParamsResponseAlways SessionPermissionRespondParamsResponse = "always"
- SessionPermissionRespondParamsResponseReject SessionPermissionRespondParamsResponse = "reject"
- )
- func (r SessionPermissionRespondParamsResponse) IsKnown() bool {
- switch r {
- case SessionPermissionRespondParamsResponseOnce, SessionPermissionRespondParamsResponseAlways, SessionPermissionRespondParamsResponseReject:
- return true
- }
- return false
- }
|