github.com/Files-com/files-sdk-go/v2@v2.1.2/apikey.go (about) 1 package files_sdk 2 3 import ( 4 "encoding/json" 5 "time" 6 7 lib "github.com/Files-com/files-sdk-go/v2/lib" 8 ) 9 10 type ApiKey struct { 11 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 12 DescriptiveLabel string `json:"descriptive_label,omitempty" path:"descriptive_label,omitempty" url:"descriptive_label,omitempty"` 13 Description string `json:"description,omitempty" path:"description,omitempty" url:"description,omitempty"` 14 CreatedAt *time.Time `json:"created_at,omitempty" path:"created_at,omitempty" url:"created_at,omitempty"` 15 ExpiresAt *time.Time `json:"expires_at,omitempty" path:"expires_at,omitempty" url:"expires_at,omitempty"` 16 Key string `json:"key,omitempty" path:"key,omitempty" url:"key,omitempty"` 17 LastUseAt *time.Time `json:"last_use_at,omitempty" path:"last_use_at,omitempty" url:"last_use_at,omitempty"` 18 Name string `json:"name,omitempty" path:"name,omitempty" url:"name,omitempty"` 19 Path string `json:"path,omitempty" path:"path,omitempty" url:"path,omitempty"` 20 PermissionSet string `json:"permission_set,omitempty" path:"permission_set,omitempty" url:"permission_set,omitempty"` 21 Platform string `json:"platform,omitempty" path:"platform,omitempty" url:"platform,omitempty"` 22 Url string `json:"url,omitempty" path:"url,omitempty" url:"url,omitempty"` 23 UserId int64 `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"` 24 } 25 26 func (a ApiKey) Identifier() interface{} { 27 return a.Id 28 } 29 30 type ApiKeyCollection []ApiKey 31 32 type ApiKeyPermissionSetEnum string 33 34 func (u ApiKeyPermissionSetEnum) String() string { 35 return string(u) 36 } 37 38 func (u ApiKeyPermissionSetEnum) Enum() map[string]ApiKeyPermissionSetEnum { 39 return map[string]ApiKeyPermissionSetEnum{ 40 "none": ApiKeyPermissionSetEnum("none"), 41 "full": ApiKeyPermissionSetEnum("full"), 42 "desktop_app": ApiKeyPermissionSetEnum("desktop_app"), 43 "sync_app": ApiKeyPermissionSetEnum("sync_app"), 44 "office_integration": ApiKeyPermissionSetEnum("office_integration"), 45 "mobile_app": ApiKeyPermissionSetEnum("mobile_app"), 46 } 47 } 48 49 type ApiKeyListParams struct { 50 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 51 SortBy map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"` 52 Filter ApiKey `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"` 53 FilterGt map[string]interface{} `url:"filter_gt,omitempty" required:"false" json:"filter_gt,omitempty" path:"filter_gt"` 54 FilterGteq map[string]interface{} `url:"filter_gteq,omitempty" required:"false" json:"filter_gteq,omitempty" path:"filter_gteq"` 55 FilterLt map[string]interface{} `url:"filter_lt,omitempty" required:"false" json:"filter_lt,omitempty" path:"filter_lt"` 56 FilterLteq map[string]interface{} `url:"filter_lteq,omitempty" required:"false" json:"filter_lteq,omitempty" path:"filter_lteq"` 57 ListParams 58 } 59 60 type ApiKeyFindParams struct { 61 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 62 } 63 64 type ApiKeyCreateParams struct { 65 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 66 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 67 Description string `url:"description,omitempty" required:"false" json:"description,omitempty" path:"description"` 68 ExpiresAt *time.Time `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"` 69 PermissionSet ApiKeyPermissionSetEnum `url:"permission_set,omitempty" required:"false" json:"permission_set,omitempty" path:"permission_set"` 70 Path string `url:"path,omitempty" required:"false" json:"path,omitempty" path:"path"` 71 } 72 73 type ApiKeyUpdateCurrentParams struct { 74 ExpiresAt *time.Time `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"` 75 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 76 PermissionSet ApiKeyPermissionSetEnum `url:"permission_set,omitempty" required:"false" json:"permission_set,omitempty" path:"permission_set"` 77 } 78 79 type ApiKeyUpdateParams struct { 80 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 81 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 82 Description string `url:"description,omitempty" required:"false" json:"description,omitempty" path:"description"` 83 ExpiresAt *time.Time `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"` 84 PermissionSet ApiKeyPermissionSetEnum `url:"permission_set,omitempty" required:"false" json:"permission_set,omitempty" path:"permission_set"` 85 } 86 87 type ApiKeyDeleteParams struct { 88 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 89 } 90 91 func (a *ApiKey) UnmarshalJSON(data []byte) error { 92 type apiKey ApiKey 93 var v apiKey 94 if err := json.Unmarshal(data, &v); err != nil { 95 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 96 } 97 98 *a = ApiKey(v) 99 return nil 100 } 101 102 func (a *ApiKeyCollection) UnmarshalJSON(data []byte) error { 103 type apiKeys ApiKeyCollection 104 var v apiKeys 105 if err := json.Unmarshal(data, &v); err != nil { 106 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 107 } 108 109 *a = ApiKeyCollection(v) 110 return nil 111 } 112 113 func (a *ApiKeyCollection) ToSlice() *[]interface{} { 114 ret := make([]interface{}, len(*a)) 115 for i, v := range *a { 116 ret[i] = v 117 } 118 119 return &ret 120 }