21910: Merge branch 'main' into 21910-remove-api_client_id
[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         TrashAt            *time.Time             `json:"trash_at"`
20         CreatedAt          time.Time              `json:"created_at"`
21         ModifiedAt         time.Time              `json:"modified_at"`
22         ModifiedByUserUUID string                 `json:"modified_by_user_uuid"`
23         DeleteAt           *time.Time             `json:"delete_at"`
24         IsTrashed          bool                   `json:"is_trashed"`
25         Properties         map[string]interface{} `json:"properties"`
26         WritableBy         []string               `json:"writable_by,omitempty"`
27         Description        string                 `json:"description"`
28         FrozenByUUID       string                 `json:"frozen_by_uuid"`
29         CanWrite           bool                   `json:"can_write"`
30         CanManage          bool                   `json:"can_manage"`
31 }
32
33 // GroupList is an arvados#groupList resource.
34 type GroupList struct {
35         Items          []Group       `json:"items"`
36         ItemsAvailable int           `json:"items_available"`
37         Offset         int           `json:"offset"`
38         Limit          int           `json:"limit"`
39         Included       []interface{} `json:"included"`
40 }
41
42 // ObjectList is an arvados#objectList resource.
43 type ObjectList struct {
44         Included       []interface{} `json:"included"`
45         Items          []interface{} `json:"items"`
46         ItemsAvailable int           `json:"items_available"`
47         Offset         int           `json:"offset"`
48         Limit          int           `json:"limit"`
49 }
50
51 func (g Group) resourceName() string {
52         return "group"
53 }