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