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"`
89 ForwardedFor string `json:"forwarded_for,omitempty"`
92 type CreateOptions struct {
93 ClusterID string `json:"cluster_id"`
94 EnsureUniqueName bool `json:"ensure_unique_name"`
95 Select []string `json:"select"`
96 Attrs map[string]interface{} `json:"attrs"`
99 type UpdateOptions struct {
100 UUID string `json:"uuid"`
101 Attrs map[string]interface{} `json:"attrs"`
102 BypassFederation bool `json:"bypass_federation"`
105 type UpdateUUIDOptions struct {
106 UUID string `json:"uuid"`
107 NewUUID string `json:"new_uuid"`
110 type UserActivateOptions struct {
111 UUID string `json:"uuid"`
114 type UserSetupOptions struct {
115 UUID string `json:"uuid,omitempty"`
116 Email string `json:"email,omitempty"`
117 OpenIDPrefix string `json:"openid_prefix,omitempty"`
118 RepoName string `json:"repo_name,omitempty"`
119 VMUUID string `json:"vm_uuid,omitempty"`
120 SendNotificationEmail bool `json:"send_notification_email,omitempty"`
121 Attrs map[string]interface{} `json:"attrs"`
124 type UserMergeOptions struct {
125 NewUserUUID string `json:"new_user_uuid,omitempty"`
126 OldUserUUID string `json:"old_user_uuid,omitempty"`
127 NewOwnerUUID string `json:"new_owner_uuid,omitempty"`
128 NewUserToken string `json:"new_user_token,omitempty"`
129 RedirectToNewUser bool `json:"redirect_to_new_user"`
132 type UserBatchUpdateOptions struct {
133 Updates map[string]map[string]interface{} `json:"updates"`
136 type UserBatchUpdateResponse struct{}
138 type DeleteOptions struct {
139 UUID string `json:"uuid"`
142 type LoginOptions struct {
143 ReturnTo string `json:"return_to"` // On success, redirect to this target with api_token=xxx query param
144 Remote string `json:"remote,omitempty"` // Salt token for remote Cluster ID
145 Code string `json:"code,omitempty"` // OAuth2 callback code
146 State string `json:"state,omitempty"` // OAuth2 callback state
149 type UserAuthenticateOptions struct {
150 Username string `json:"username,omitempty"` // PAM username
151 Password string `json:"password,omitempty"` // PAM password
154 type LogoutOptions struct {
155 ReturnTo string `json:"return_to"` // Redirect to this URL after logging out
159 ConfigGet(ctx context.Context) (json.RawMessage, error)
160 Login(ctx context.Context, options LoginOptions) (LoginResponse, error)
161 Logout(ctx context.Context, options LogoutOptions) (LogoutResponse, error)
162 CollectionCreate(ctx context.Context, options CreateOptions) (Collection, error)
163 CollectionUpdate(ctx context.Context, options UpdateOptions) (Collection, error)
164 CollectionGet(ctx context.Context, options GetOptions) (Collection, error)
165 CollectionList(ctx context.Context, options ListOptions) (CollectionList, error)
166 CollectionProvenance(ctx context.Context, options GetOptions) (map[string]interface{}, error)
167 CollectionUsedBy(ctx context.Context, options GetOptions) (map[string]interface{}, error)
168 CollectionDelete(ctx context.Context, options DeleteOptions) (Collection, error)
169 CollectionTrash(ctx context.Context, options DeleteOptions) (Collection, error)
170 CollectionUntrash(ctx context.Context, options UntrashOptions) (Collection, error)
171 ContainerCreate(ctx context.Context, options CreateOptions) (Container, error)
172 ContainerUpdate(ctx context.Context, options UpdateOptions) (Container, error)
173 ContainerGet(ctx context.Context, options GetOptions) (Container, error)
174 ContainerList(ctx context.Context, options ListOptions) (ContainerList, error)
175 ContainerDelete(ctx context.Context, options DeleteOptions) (Container, error)
176 ContainerLock(ctx context.Context, options GetOptions) (Container, error)
177 ContainerUnlock(ctx context.Context, options GetOptions) (Container, error)
178 SpecimenCreate(ctx context.Context, options CreateOptions) (Specimen, error)
179 SpecimenUpdate(ctx context.Context, options UpdateOptions) (Specimen, error)
180 SpecimenGet(ctx context.Context, options GetOptions) (Specimen, error)
181 SpecimenList(ctx context.Context, options ListOptions) (SpecimenList, error)
182 SpecimenDelete(ctx context.Context, options DeleteOptions) (Specimen, error)
183 UserCreate(ctx context.Context, options CreateOptions) (User, error)
184 UserUpdate(ctx context.Context, options UpdateOptions) (User, error)
185 UserUpdateUUID(ctx context.Context, options UpdateUUIDOptions) (User, error)
186 UserMerge(ctx context.Context, options UserMergeOptions) (User, error)
187 UserActivate(ctx context.Context, options UserActivateOptions) (User, error)
188 UserSetup(ctx context.Context, options UserSetupOptions) (map[string]interface{}, error)
189 UserUnsetup(ctx context.Context, options GetOptions) (User, error)
190 UserGet(ctx context.Context, options GetOptions) (User, error)
191 UserGetCurrent(ctx context.Context, options GetOptions) (User, error)
192 UserGetSystem(ctx context.Context, options GetOptions) (User, error)
193 UserList(ctx context.Context, options ListOptions) (UserList, error)
194 UserDelete(ctx context.Context, options DeleteOptions) (User, error)
195 UserBatchUpdate(context.Context, UserBatchUpdateOptions) (UserList, error)
196 UserAuthenticate(ctx context.Context, options UserAuthenticateOptions) (APIClientAuthorization, error)
197 APIClientAuthorizationCurrent(ctx context.Context, options GetOptions) (APIClientAuthorization, error)