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", ""}
59 EndpointAPIClientAuthorizationCurrent = APIEndpoint{"GET", "arvados/v1/api_client_authorizations/current", ""}
62 type GetOptions struct {
63 UUID string `json:"uuid"`
64 Select []string `json:"select"`
65 IncludeTrash bool `json:"include_trash"`
66 ForwardedFor string `json:"forwarded_for"`
67 Remote string `json:"remote"`
70 type UntrashOptions struct {
71 UUID string `json:"uuid"`
72 EnsureUniqueName bool `json:"ensure_unique_name"`
75 type ListOptions struct {
76 ClusterID string `json:"cluster_id"`
77 Select []string `json:"select"`
78 Filters []Filter `json:"filters"`
79 Where map[string]interface{} `json:"where"`
80 Limit int `json:"limit"`
81 Offset int `json:"offset"`
82 Order []string `json:"order"`
83 Distinct bool `json:"distinct"`
84 Count string `json:"count"`
85 IncludeTrash bool `json:"include_trash"`
86 IncludeOldVersions bool `json:"include_old_versions"`
89 type CreateOptions struct {
90 ClusterID string `json:"cluster_id"`
91 EnsureUniqueName bool `json:"ensure_unique_name"`
92 Select []string `json:"select"`
93 Attrs map[string]interface{} `json:"attrs"`
96 type UpdateOptions struct {
97 UUID string `json:"uuid"`
98 Attrs map[string]interface{} `json:"attrs"`
101 type UpdateUUIDOptions struct {
102 UUID string `json:"uuid"`
103 NewUUID string `json:"new_uuid"`
106 type UserActivateOptions struct {
107 UUID string `json:"uuid"`
110 type UserSetupOptions struct {
111 UUID string `json:"uuid,omitempty"`
112 Email string `json:"email,omitempty"`
113 OpenIDPrefix string `json:"openid_prefix,omitempty"`
114 RepoName string `json:"repo_name,omitempty"`
115 VMUUID string `json:"vm_uuid,omitempty"`
116 SendNotificationEmail bool `json:"send_notification_email,omitempty"`
117 Attrs map[string]interface{} `json:"attrs"`
120 type UserMergeOptions struct {
121 NewUserUUID string `json:"new_user_uuid,omitempty"`
122 OldUserUUID string `json:"old_user_uuid,omitempty"`
123 NewOwnerUUID string `json:"new_owner_uuid,omitempty"`
124 NewUserToken string `json:"new_user_token,omitempty"`
125 RedirectToNewUser bool `json:"redirect_to_new_user"`
128 type UserBatchUpdateOptions struct {
129 Updates map[string]map[string]interface{} `json:"updates"`
132 type UserBatchUpdateResponse struct{}
134 type DeleteOptions struct {
135 UUID string `json:"uuid"`
138 type LoginOptions struct {
139 ReturnTo string `json:"return_to"` // On success, redirect to this target with api_token=xxx query param
140 Remote string `json:"remote,omitempty"` // Salt token for remote Cluster ID
141 Code string `json:"code,omitempty"` // OAuth2 callback code
142 State string `json:"state,omitempty"` // OAuth2 callback state
145 type LogoutOptions struct {
146 ReturnTo string `json:"return_to"` // Redirect to this URL after logging out
150 ConfigGet(ctx context.Context) (json.RawMessage, error)
151 Login(ctx context.Context, options LoginOptions) (LoginResponse, error)
152 Logout(ctx context.Context, options LogoutOptions) (LogoutResponse, error)
153 CollectionCreate(ctx context.Context, options CreateOptions) (Collection, error)
154 CollectionUpdate(ctx context.Context, options UpdateOptions) (Collection, error)
155 CollectionGet(ctx context.Context, options GetOptions) (Collection, error)
156 CollectionList(ctx context.Context, options ListOptions) (CollectionList, error)
157 CollectionProvenance(ctx context.Context, options GetOptions) (map[string]interface{}, error)
158 CollectionUsedBy(ctx context.Context, options GetOptions) (map[string]interface{}, error)
159 CollectionDelete(ctx context.Context, options DeleteOptions) (Collection, error)
160 CollectionTrash(ctx context.Context, options DeleteOptions) (Collection, error)
161 CollectionUntrash(ctx context.Context, options UntrashOptions) (Collection, error)
162 ContainerCreate(ctx context.Context, options CreateOptions) (Container, error)
163 ContainerUpdate(ctx context.Context, options UpdateOptions) (Container, error)
164 ContainerGet(ctx context.Context, options GetOptions) (Container, error)
165 ContainerList(ctx context.Context, options ListOptions) (ContainerList, error)
166 ContainerDelete(ctx context.Context, options DeleteOptions) (Container, error)
167 ContainerLock(ctx context.Context, options GetOptions) (Container, error)
168 ContainerUnlock(ctx context.Context, options GetOptions) (Container, error)
169 SpecimenCreate(ctx context.Context, options CreateOptions) (Specimen, error)
170 SpecimenUpdate(ctx context.Context, options UpdateOptions) (Specimen, error)
171 SpecimenGet(ctx context.Context, options GetOptions) (Specimen, error)
172 SpecimenList(ctx context.Context, options ListOptions) (SpecimenList, error)
173 SpecimenDelete(ctx context.Context, options DeleteOptions) (Specimen, error)
174 UserCreate(ctx context.Context, options CreateOptions) (User, error)
175 UserUpdate(ctx context.Context, options UpdateOptions) (User, error)
176 UserUpdateUUID(ctx context.Context, options UpdateUUIDOptions) (User, error)
177 UserMerge(ctx context.Context, options UserMergeOptions) (User, error)
178 UserActivate(ctx context.Context, options UserActivateOptions) (User, error)
179 UserSetup(ctx context.Context, options UserSetupOptions) (map[string]interface{}, error)
180 UserUnsetup(ctx context.Context, options GetOptions) (User, error)
181 UserGet(ctx context.Context, options GetOptions) (User, error)
182 UserGetCurrent(ctx context.Context, options GetOptions) (User, error)
183 UserGetSystem(ctx context.Context, options GetOptions) (User, error)
184 UserList(ctx context.Context, options ListOptions) (UserList, error)
185 UserDelete(ctx context.Context, options DeleteOptions) (User, error)
186 UserBatchUpdate(context.Context, UserBatchUpdateOptions) (UserList, error)
187 APIClientAuthorizationCurrent(ctx context.Context, options GetOptions) (APIClientAuthorization, error)