+
+type LoginOptions struct {
+ ReturnTo string `json:"return_to"` // On success, redirect to this target with api_token=xxx query param
+ Remote string `json:"remote,omitempty"` // Salt token for remote Cluster ID
+ Code string `json:"code,omitempty"` // OAuth2 callback code
+ State string `json:"state,omitempty"` // OAuth2 callback state
+}
+
+type UserAuthenticateOptions struct {
+ Username string `json:"username,omitempty"` // PAM username
+ Password string `json:"password,omitempty"` // PAM password
+}
+
+type LogoutOptions struct {
+ ReturnTo string `json:"return_to"` // Redirect to this URL after logging out
+}
+
+type API interface {
+ ConfigGet(ctx context.Context) (json.RawMessage, error)
+ Login(ctx context.Context, options LoginOptions) (LoginResponse, error)
+ Logout(ctx context.Context, options LogoutOptions) (LogoutResponse, error)
+ CollectionCreate(ctx context.Context, options CreateOptions) (Collection, error)
+ CollectionUpdate(ctx context.Context, options UpdateOptions) (Collection, error)
+ CollectionGet(ctx context.Context, options GetOptions) (Collection, error)
+ CollectionList(ctx context.Context, options ListOptions) (CollectionList, error)
+ CollectionProvenance(ctx context.Context, options GetOptions) (map[string]interface{}, error)
+ CollectionUsedBy(ctx context.Context, options GetOptions) (map[string]interface{}, error)
+ CollectionDelete(ctx context.Context, options DeleteOptions) (Collection, error)
+ CollectionTrash(ctx context.Context, options DeleteOptions) (Collection, error)
+ CollectionUntrash(ctx context.Context, options UntrashOptions) (Collection, error)
+ ContainerCreate(ctx context.Context, options CreateOptions) (Container, error)
+ ContainerUpdate(ctx context.Context, options UpdateOptions) (Container, error)
+ ContainerGet(ctx context.Context, options GetOptions) (Container, error)
+ ContainerList(ctx context.Context, options ListOptions) (ContainerList, error)
+ ContainerDelete(ctx context.Context, options DeleteOptions) (Container, error)
+ ContainerLock(ctx context.Context, options GetOptions) (Container, error)
+ ContainerUnlock(ctx context.Context, options GetOptions) (Container, error)
+ ContainerSSH(ctx context.Context, options ContainerSSHOptions) (ContainerSSHConnection, error)
+ ContainerRequestCreate(ctx context.Context, options CreateOptions) (ContainerRequest, error)
+ ContainerRequestUpdate(ctx context.Context, options UpdateOptions) (ContainerRequest, error)
+ ContainerRequestGet(ctx context.Context, options GetOptions) (ContainerRequest, error)
+ ContainerRequestList(ctx context.Context, options ListOptions) (ContainerRequestList, error)
+ ContainerRequestDelete(ctx context.Context, options DeleteOptions) (ContainerRequest, error)
+ GroupCreate(ctx context.Context, options CreateOptions) (Group, error)
+ GroupUpdate(ctx context.Context, options UpdateOptions) (Group, error)
+ GroupGet(ctx context.Context, options GetOptions) (Group, error)
+ GroupList(ctx context.Context, options ListOptions) (GroupList, error)
+ GroupContents(ctx context.Context, options GroupContentsOptions) (ObjectList, error)
+ GroupShared(ctx context.Context, options ListOptions) (GroupList, error)
+ GroupDelete(ctx context.Context, options DeleteOptions) (Group, error)
+ GroupTrash(ctx context.Context, options DeleteOptions) (Group, error)
+ GroupUntrash(ctx context.Context, options UntrashOptions) (Group, error)
+ SpecimenCreate(ctx context.Context, options CreateOptions) (Specimen, error)
+ SpecimenUpdate(ctx context.Context, options UpdateOptions) (Specimen, error)
+ SpecimenGet(ctx context.Context, options GetOptions) (Specimen, error)
+ SpecimenList(ctx context.Context, options ListOptions) (SpecimenList, error)
+ SpecimenDelete(ctx context.Context, options DeleteOptions) (Specimen, error)
+ UserCreate(ctx context.Context, options CreateOptions) (User, error)
+ UserUpdate(ctx context.Context, options UpdateOptions) (User, error)
+ UserUpdateUUID(ctx context.Context, options UpdateUUIDOptions) (User, error)
+ UserMerge(ctx context.Context, options UserMergeOptions) (User, error)
+ UserActivate(ctx context.Context, options UserActivateOptions) (User, error)
+ UserSetup(ctx context.Context, options UserSetupOptions) (map[string]interface{}, error)
+ UserUnsetup(ctx context.Context, options GetOptions) (User, error)
+ UserGet(ctx context.Context, options GetOptions) (User, error)
+ UserGetCurrent(ctx context.Context, options GetOptions) (User, error)
+ UserGetSystem(ctx context.Context, options GetOptions) (User, error)
+ UserList(ctx context.Context, options ListOptions) (UserList, error)
+ UserDelete(ctx context.Context, options DeleteOptions) (User, error)
+ UserBatchUpdate(context.Context, UserBatchUpdateOptions) (UserList, error)
+ UserAuthenticate(ctx context.Context, options UserAuthenticateOptions) (APIClientAuthorization, error)
+ APIClientAuthorizationCurrent(ctx context.Context, options GetOptions) (APIClientAuthorization, error)
+}