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,omitempty"`
64 Select []string `json:"select"`
65 IncludeTrash bool `json:"include_trash"`
66 ForwardedFor string `json:"forwarded_for,omitempty"`
67 Remote string `json:"remote,omitempty"`
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 int64 `json:"limit"`
81 Offset int64 `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"`
87 BypassFederation bool `json:"bypass_federation"`
88 ForwardedFor string `json:"forwarded_for,omitempty"`
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 LogoutOptions struct {
149 ReturnTo string `json:"return_to"` // Redirect to this URL after logging out
153 ConfigGet(ctx context.Context) (json.RawMessage, error)
154 Login(ctx context.Context, options LoginOptions) (LoginResponse, error)
155 Logout(ctx context.Context, options LogoutOptions) (LogoutResponse, error)
156 CollectionCreate(ctx context.Context, options CreateOptions) (Collection, error)
157 CollectionUpdate(ctx context.Context, options UpdateOptions) (Collection, error)
158 CollectionGet(ctx context.Context, options GetOptions) (Collection, error)
159 CollectionList(ctx context.Context, options ListOptions) (CollectionList, error)
160 CollectionProvenance(ctx context.Context, options GetOptions) (map[string]interface{}, error)
161 CollectionUsedBy(ctx context.Context, options GetOptions) (map[string]interface{}, error)
162 CollectionDelete(ctx context.Context, options DeleteOptions) (Collection, error)
163 CollectionTrash(ctx context.Context, options DeleteOptions) (Collection, error)
164 CollectionUntrash(ctx context.Context, options UntrashOptions) (Collection, error)
165 ContainerCreate(ctx context.Context, options CreateOptions) (Container, error)
166 ContainerUpdate(ctx context.Context, options UpdateOptions) (Container, error)
167 ContainerGet(ctx context.Context, options GetOptions) (Container, error)
168 ContainerList(ctx context.Context, options ListOptions) (ContainerList, error)
169 ContainerDelete(ctx context.Context, options DeleteOptions) (Container, error)
170 ContainerLock(ctx context.Context, options GetOptions) (Container, error)
171 ContainerUnlock(ctx context.Context, options GetOptions) (Container, error)
172 SpecimenCreate(ctx context.Context, options CreateOptions) (Specimen, error)
173 SpecimenUpdate(ctx context.Context, options UpdateOptions) (Specimen, error)
174 SpecimenGet(ctx context.Context, options GetOptions) (Specimen, error)
175 SpecimenList(ctx context.Context, options ListOptions) (SpecimenList, error)
176 SpecimenDelete(ctx context.Context, options DeleteOptions) (Specimen, error)
177 UserCreate(ctx context.Context, options CreateOptions) (User, error)
178 UserUpdate(ctx context.Context, options UpdateOptions) (User, error)
179 UserUpdateUUID(ctx context.Context, options UpdateUUIDOptions) (User, error)
180 UserMerge(ctx context.Context, options UserMergeOptions) (User, error)
181 UserActivate(ctx context.Context, options UserActivateOptions) (User, error)
182 UserSetup(ctx context.Context, options UserSetupOptions) (map[string]interface{}, error)
183 UserUnsetup(ctx context.Context, options GetOptions) (User, error)
184 UserGet(ctx context.Context, options GetOptions) (User, error)
185 UserGetCurrent(ctx context.Context, options GetOptions) (User, error)
186 UserGetSystem(ctx context.Context, options GetOptions) (User, error)
187 UserList(ctx context.Context, options ListOptions) (UserList, error)
188 UserDelete(ctx context.Context, options DeleteOptions) (User, error)
189 UserBatchUpdate(context.Context, UserBatchUpdateOptions) (UserList, error)
190 APIClientAuthorizationCurrent(ctx context.Context, options GetOptions) (APIClientAuthorization, error)