b46b596f4f5fceaceb01a143ac8f5b3a1fcf45a1
[arvados.git] / sdk / go / arvados / group.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: Apache-2.0
4
5 package arvados
6
7 import (
8         "time"
9 )
10
11 // Group is an arvados#group record
12 type Group struct {
13         UUID                 string                 `json:"uuid"`
14         Name                 string                 `json:"name"`
15         OwnerUUID            string                 `json:"owner_uuid"`
16         GroupClass           string                 `json:"group_class"`
17         Etag                 string                 `json:"etag"`
18         Href                 string                 `json:"href"`
19         Kind                 string                 `json:"kind"`
20         TrashAt              *time.Time             `json:"trash_at"`
21         CreatedAt            time.Time              `json:"created_at"`
22         ModifiedAt           time.Time              `json:"modified_at"`
23         ModifiedByClientUUID string                 `json:"modified_by_client_uuid"`
24         ModifiedByUserUUID   string                 `json:"modified_by_user_uuid"`
25         DeleteAt             *time.Time             `json:"delete_at"`
26         IsTrashed            bool                   `json:"is_trashed"`
27         Properties           map[string]interface{} `json:"properties"`
28         WritableBy           []string               `json:"writable_by,omitempty"`
29         Description          string                 `json:"description"`
30 }
31
32 // GroupList is an arvados#groupList resource.
33 type GroupList struct {
34         Items          []Group `json:"items"`
35         ItemsAvailable int     `json:"items_available"`
36         Offset         int     `json:"offset"`
37         Limit          int     `json:"limit"`
38 }
39
40 // SharedGroupList is an arvados#groupList resource.
41 type SharedGroupList struct {
42         Included []interface{} `json:"included"`
43         Items    []Group       `json:"items"`
44         Offset   int           `json:"offset"`
45         Limit    int           `json:"limit"`
46 }
47
48 // ObjectList is an arvados#objectList resource.
49 type ObjectList struct {
50         Included       []interface{} `json:"included"`
51         Items          []interface{} `json:"items"`
52         ItemsAvailable int           `json:"items_available"`
53         Offset         int           `json:"offset"`
54         Limit          int           `json:"limit"`
55 }
56
57 func (g Group) resourceName() string {
58         return "group"
59 }