-
Notifications
You must be signed in to change notification settings - Fork 334
Expand file tree
/
Copy pathadminorganizationprojectmodelpermission.go
More file actions
157 lines (139 loc) · 6.63 KB
/
Copy pathadminorganizationprojectmodelpermission.go
File metadata and controls
157 lines (139 loc) · 6.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
package openai
import (
"context"
"errors"
"net/http"
"slices"
"github.com/openai/openai-go/v3/internal/apijson"
"github.com/openai/openai-go/v3/internal/requestconfig"
"github.com/openai/openai-go/v3/option"
"github.com/openai/openai-go/v3/packages/param"
"github.com/openai/openai-go/v3/packages/respjson"
"github.com/openai/openai-go/v3/shared/constant"
)
// AdminOrganizationProjectModelPermissionService contains methods and other
// services that help with interacting with the openai 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 [NewAdminOrganizationProjectModelPermissionService] method instead.
type AdminOrganizationProjectModelPermissionService struct {
Options []option.RequestOption
}
// NewAdminOrganizationProjectModelPermissionService 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 NewAdminOrganizationProjectModelPermissionService(opts ...option.RequestOption) (r AdminOrganizationProjectModelPermissionService) {
r = AdminOrganizationProjectModelPermissionService{}
r.Options = opts
return
}
// Returns model permissions for a project.
func (r *AdminOrganizationProjectModelPermissionService) Get(ctx context.Context, projectID string, opts ...option.RequestOption) (res *ProjectModelPermissions, err error) {
var preClientOpts = []option.RequestOption{requestconfig.WithAdminAPIKeyAuthSecurity()}
opts = slices.Concat(preClientOpts, r.Options, opts)
if projectID == "" {
err = errors.New("missing required project_id parameter")
return nil, err
}
path := requestconfig.FormatPath("organization/projects/%s/model_permissions", projectID)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
return res, err
}
// Updates model permissions for a project.
func (r *AdminOrganizationProjectModelPermissionService) Update(ctx context.Context, projectID string, body AdminOrganizationProjectModelPermissionUpdateParams, opts ...option.RequestOption) (res *ProjectModelPermissions, err error) {
var preClientOpts = []option.RequestOption{requestconfig.WithAdminAPIKeyAuthSecurity()}
opts = slices.Concat(preClientOpts, r.Options, opts)
if projectID == "" {
err = errors.New("missing required project_id parameter")
return nil, err
}
path := requestconfig.FormatPath("organization/projects/%s/model_permissions", projectID)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
return res, err
}
// Deletes model permissions for a project.
func (r *AdminOrganizationProjectModelPermissionService) Delete(ctx context.Context, projectID string, opts ...option.RequestOption) (res *ProjectModelPermissionsDeleted, err error) {
var preClientOpts = []option.RequestOption{requestconfig.WithAdminAPIKeyAuthSecurity()}
opts = slices.Concat(preClientOpts, r.Options, opts)
if projectID == "" {
err = errors.New("missing required project_id parameter")
return nil, err
}
path := requestconfig.FormatPath("organization/projects/%s/model_permissions", projectID)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...)
return res, err
}
// Represents the model allowlist or denylist policy for a project.
type ProjectModelPermissions struct {
// Whether the project uses an allowlist or a denylist.
//
// Any of "allow_list", "deny_list".
Mode ProjectModelPermissionsMode `json:"mode" api:"required"`
// The model IDs included in the model permissions policy.
ModelIDs []string `json:"model_ids" api:"required"`
// The object type, which is always `project.model_permissions`.
Object constant.ProjectModelPermissions `json:"object" default:"project.model_permissions"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Mode respjson.Field
ModelIDs respjson.Field
Object respjson.Field
ExtraFields map[string]respjson.Field
raw string
} `json:"-"`
}
// Returns the unmodified JSON received from the API
func (r ProjectModelPermissions) RawJSON() string { return r.JSON.raw }
func (r *ProjectModelPermissions) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, r)
}
// Whether the project uses an allowlist or a denylist.
type ProjectModelPermissionsMode string
const (
ProjectModelPermissionsModeAllowList ProjectModelPermissionsMode = "allow_list"
ProjectModelPermissionsModeDenyList ProjectModelPermissionsMode = "deny_list"
)
// Confirmation payload returned after deleting project model permissions.
type ProjectModelPermissionsDeleted struct {
// Whether the project model permissions were deleted.
Deleted bool `json:"deleted" api:"required"`
// The object type, which is always `project.model_permissions.deleted`.
Object constant.ProjectModelPermissionsDeleted `json:"object" default:"project.model_permissions.deleted"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Deleted respjson.Field
Object respjson.Field
ExtraFields map[string]respjson.Field
raw string
} `json:"-"`
}
// Returns the unmodified JSON received from the API
func (r ProjectModelPermissionsDeleted) RawJSON() string { return r.JSON.raw }
func (r *ProjectModelPermissionsDeleted) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, r)
}
type AdminOrganizationProjectModelPermissionUpdateParams struct {
// The model permissions mode to apply.
//
// Any of "allow_list", "deny_list".
Mode AdminOrganizationProjectModelPermissionUpdateParamsMode `json:"mode,omitzero" api:"required"`
// The model IDs included in this permissions policy.
ModelIDs []string `json:"model_ids,omitzero" api:"required"`
paramObj
}
func (r AdminOrganizationProjectModelPermissionUpdateParams) MarshalJSON() (data []byte, err error) {
type shadow AdminOrganizationProjectModelPermissionUpdateParams
return param.MarshalObject(r, (*shadow)(&r))
}
func (r *AdminOrganizationProjectModelPermissionUpdateParams) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, r)
}
// The model permissions mode to apply.
type AdminOrganizationProjectModelPermissionUpdateParamsMode string
const (
AdminOrganizationProjectModelPermissionUpdateParamsModeAllowList AdminOrganizationProjectModelPermissionUpdateParamsMode = "allow_list"
AdminOrganizationProjectModelPermissionUpdateParamsModeDenyList AdminOrganizationProjectModelPermissionUpdateParamsMode = "deny_list"
)