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