1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: Apache-2.0
12 type APIEndpoint struct {
15 // "new attributes" key for create/update requests
20 EndpointConfigGet = APIEndpoint{"GET", "arvados/v1/config", ""}
21 EndpointLogin = APIEndpoint{"GET", "login", ""}
22 EndpointLogout = APIEndpoint{"GET", "logout", ""}
23 EndpointCollectionCreate = APIEndpoint{"POST", "arvados/v1/collections", "collection"}
24 EndpointCollectionUpdate = APIEndpoint{"PATCH", "arvados/v1/collections/{uuid}", "collection"}
25 EndpointCollectionGet = APIEndpoint{"GET", "arvados/v1/collections/{uuid}", ""}
26 EndpointCollectionList = APIEndpoint{"GET", "arvados/v1/collections", ""}
27 EndpointCollectionProvenance = APIEndpoint{"GET", "arvados/v1/collections/{uuid}/provenance", ""}
28 EndpointCollectionUsedBy = APIEndpoint{"GET", "arvados/v1/collections/{uuid}/used_by", ""}
29 EndpointCollectionDelete = APIEndpoint{"DELETE", "arvados/v1/collections/{uuid}", ""}
30 EndpointCollectionTrash = APIEndpoint{"POST", "arvados/v1/collections/{uuid}/trash", ""}
31 EndpointCollectionUntrash = APIEndpoint{"POST", "arvados/v1/collections/{uuid}/untrash", ""}
32 EndpointSpecimenCreate = APIEndpoint{"POST", "arvados/v1/specimens", "specimen"}
33 EndpointSpecimenUpdate = APIEndpoint{"PATCH", "arvados/v1/specimens/{uuid}", "specimen"}
34 EndpointSpecimenGet = APIEndpoint{"GET", "arvados/v1/specimens/{uuid}", ""}
35 EndpointSpecimenList = APIEndpoint{"GET", "arvados/v1/specimens", ""}
36 EndpointSpecimenDelete = APIEndpoint{"DELETE", "arvados/v1/specimens/{uuid}", ""}
37 EndpointContainerCreate = APIEndpoint{"POST", "arvados/v1/containers", "container"}
38 EndpointContainerUpdate = APIEndpoint{"PATCH", "arvados/v1/containers/{uuid}", "container"}
39 EndpointContainerGet = APIEndpoint{"GET", "arvados/v1/containers/{uuid}", ""}
40 EndpointContainerList = APIEndpoint{"GET", "arvados/v1/containers", ""}
41 EndpointContainerDelete = APIEndpoint{"DELETE", "arvados/v1/containers/{uuid}", ""}
42 EndpointContainerLock = APIEndpoint{"POST", "arvados/v1/containers/{uuid}/lock", ""}
43 EndpointContainerUnlock = APIEndpoint{"POST", "arvados/v1/containers/{uuid}/unlock", ""}
44 EndpointUserActivate = APIEndpoint{"POST", "arvados/v1/users/{uuid}/activate", ""}
45 EndpointUserCreate = APIEndpoint{"POST", "arvados/v1/users", "user"}
46 EndpointUserCurrent = APIEndpoint{"GET", "arvados/v1/users/current", ""}
47 EndpointUserDelete = APIEndpoint{"DELETE", "arvados/v1/users/{uuid}", ""}
48 EndpointUserGet = APIEndpoint{"GET", "arvados/v1/users/{uuid}", ""}
49 EndpointUserGetCurrent = APIEndpoint{"GET", "arvados/v1/users/current", ""}
50 EndpointUserGetSystem = APIEndpoint{"GET", "arvados/v1/users/system", ""}
51 EndpointUserList = APIEndpoint{"GET", "arvados/v1/users", ""}
52 EndpointUserMerge = APIEndpoint{"POST", "arvados/v1/users/merge", ""}
53 EndpointUserSetup = APIEndpoint{"POST", "arvados/v1/users/setup", "user"}
54 EndpointUserSystem = APIEndpoint{"GET", "arvados/v1/users/system", ""}
55 EndpointUserUnsetup = APIEndpoint{"POST", "arvados/v1/users/{uuid}/unsetup", ""}
56 EndpointUserUpdate = APIEndpoint{"PATCH", "arvados/v1/users/{uuid}", "user"}
57 EndpointUserUpdateUUID = APIEndpoint{"POST", "arvados/v1/users/{uuid}/update_uuid", ""}
58 EndpointUserBatchUpdate = APIEndpoint{"PATCH", "arvados/v1/users/batch_update", ""}
59 EndpointUserAuthenticate = APIEndpoint{"POST", "arvados/v1/users/authenticate", ""}
60 EndpointAPIClientAuthorizationCurrent = APIEndpoint{"GET", "arvados/v1/api_client_authorizations/current", ""}
63 type GetOptions struct {
64 UUID string `json:"uuid,omitempty"`
65 Select []string `json:"select"`
66 IncludeTrash bool `json:"include_trash"`
67 ForwardedFor string `json:"forwarded_for,omitempty"`
68 Remote string `json:"remote,omitempty"`
71 type UntrashOptions struct {
72 UUID string `json:"uuid"`
73 EnsureUniqueName bool `json:"ensure_unique_name"`
76 type ListOptions struct {
77 ClusterID string `json:"cluster_id"`
78 Select []string `json:"select"`
79 Filters []Filter `json:"filters"`
80 Where map[string]interface{} `json:"where"`
81 Limit int64 `json:"limit"`
82 Offset int64 `json:"offset"`
83 Order []string `json:"order"`
84 Distinct bool `json:"distinct"`
85 Count string `json:"count"`
86 IncludeTrash bool `json:"include_trash"`
87 IncludeOldVersions bool `json:"include_old_versions"`
88 BypassFederation bool `json:"bypass_federation"`
91 type CreateOptions struct {
92 ClusterID string `json:"cluster_id"`
93 EnsureUniqueName bool `json:"ensure_unique_name"`
94 Select []string `json:"select"`
95 Attrs map[string]interface{} `json:"attrs"`
98 type UpdateOptions struct {
99 UUID string `json:"uuid"`
100 Attrs map[string]interface{} `json:"attrs"`
101 BypassFederation bool `json:"bypass_federation"`
104 type UpdateUUIDOptions struct {
105 UUID string `json:"uuid"`
106 NewUUID string `json:"new_uuid"`
109 type UserActivateOptions struct {
110 UUID string `json:"uuid"`
113 type UserSetupOptions struct {
114 UUID string `json:"uuid,omitempty"`
115 Email string `json:"email,omitempty"`
116 OpenIDPrefix string `json:"openid_prefix,omitempty"`
117 RepoName string `json:"repo_name,omitempty"`
118 VMUUID string `json:"vm_uuid,omitempty"`
119 SendNotificationEmail bool `json:"send_notification_email,omitempty"`
120 Attrs map[string]interface{} `json:"attrs"`
123 type UserMergeOptions struct {
124 NewUserUUID string `json:"new_user_uuid,omitempty"`
125 OldUserUUID string `json:"old_user_uuid,omitempty"`
126 NewOwnerUUID string `json:"new_owner_uuid,omitempty"`
127 NewUserToken string `json:"new_user_token,omitempty"`
128 RedirectToNewUser bool `json:"redirect_to_new_user"`
131 type UserBatchUpdateOptions struct {
132 Updates map[string]map[string]interface{} `json:"updates"`
135 type UserBatchUpdateResponse struct{}
137 type DeleteOptions struct {
138 UUID string `json:"uuid"`
141 type LoginOptions struct {
142 ReturnTo string `json:"return_to"` // On success, redirect to this target with api_token=xxx query param
143 Remote string `json:"remote,omitempty"` // Salt token for remote Cluster ID
144 Code string `json:"code,omitempty"` // OAuth2 callback code
145 State string `json:"state,omitempty"` // OAuth2 callback state
148 type UserAuthenticateOptions struct {
149 Username string `json:"username,omitempty"` // PAM username
150 Password string `json:"password,omitempty"` // PAM password
153 type LogoutOptions struct {
154 ReturnTo string `json:"return_to"` // Redirect to this URL after logging out
158 ConfigGet(ctx context.Context) (json.RawMessage, error)
159 Login(ctx context.Context, options LoginOptions) (LoginResponse, error)
160 Logout(ctx context.Context, options LogoutOptions) (LogoutResponse, error)
161 CollectionCreate(ctx context.Context, options CreateOptions) (Collection, error)
162 CollectionUpdate(ctx context.Context, options UpdateOptions) (Collection, error)
163 CollectionGet(ctx context.Context, options GetOptions) (Collection, error)
164 CollectionList(ctx context.Context, options ListOptions) (CollectionList, error)
165 CollectionProvenance(ctx context.Context, options GetOptions) (map[string]interface{}, error)
166 CollectionUsedBy(ctx context.Context, options GetOptions) (map[string]interface{}, error)
167 CollectionDelete(ctx context.Context, options DeleteOptions) (Collection, error)
168 CollectionTrash(ctx context.Context, options DeleteOptions) (Collection, error)
169 CollectionUntrash(ctx context.Context, options UntrashOptions) (Collection, error)
170 ContainerCreate(ctx context.Context, options CreateOptions) (Container, error)
171 ContainerUpdate(ctx context.Context, options UpdateOptions) (Container, error)
172 ContainerGet(ctx context.Context, options GetOptions) (Container, error)
173 ContainerList(ctx context.Context, options ListOptions) (ContainerList, error)
174 ContainerDelete(ctx context.Context, options DeleteOptions) (Container, error)
175 ContainerLock(ctx context.Context, options GetOptions) (Container, error)
176 ContainerUnlock(ctx context.Context, options GetOptions) (Container, error)
177 SpecimenCreate(ctx context.Context, options CreateOptions) (Specimen, error)
178 SpecimenUpdate(ctx context.Context, options UpdateOptions) (Specimen, error)
179 SpecimenGet(ctx context.Context, options GetOptions) (Specimen, error)
180 SpecimenList(ctx context.Context, options ListOptions) (SpecimenList, error)
181 SpecimenDelete(ctx context.Context, options DeleteOptions) (Specimen, error)
182 UserCreate(ctx context.Context, options CreateOptions) (User, error)
183 UserUpdate(ctx context.Context, options UpdateOptions) (User, error)
184 UserUpdateUUID(ctx context.Context, options UpdateUUIDOptions) (User, error)
185 UserMerge(ctx context.Context, options UserMergeOptions) (User, error)
186 UserActivate(ctx context.Context, options UserActivateOptions) (User, error)
187 UserSetup(ctx context.Context, options UserSetupOptions) (map[string]interface{}, error)
188 UserUnsetup(ctx context.Context, options GetOptions) (User, error)
189 UserGet(ctx context.Context, options GetOptions) (User, error)
190 UserGetCurrent(ctx context.Context, options GetOptions) (User, error)
191 UserGetSystem(ctx context.Context, options GetOptions) (User, error)
192 UserList(ctx context.Context, options ListOptions) (UserList, error)
193 UserDelete(ctx context.Context, options DeleteOptions) (User, error)
194 UserBatchUpdate(context.Context, UserBatchUpdateOptions) (UserList, error)
195 UserAuthenticate(ctx context.Context, options UserAuthenticateOptions) (APIClientAuthorization, error)
196 APIClientAuthorizationCurrent(ctx context.Context, options GetOptions) (APIClientAuthorization, error)