github.com/Files-com/files-sdk-go/v3@v3.1.81/bundle.go (about) 1 package files_sdk 2 3 import ( 4 "encoding/json" 5 "io" 6 "time" 7 8 lib "github.com/Files-com/files-sdk-go/v3/lib" 9 ) 10 11 type Bundle struct { 12 Code string `json:"code,omitempty" path:"code,omitempty" url:"code,omitempty"` 13 ColorLeft string `json:"color_left,omitempty" path:"color_left,omitempty" url:"color_left,omitempty"` 14 ColorLink string `json:"color_link,omitempty" path:"color_link,omitempty" url:"color_link,omitempty"` 15 ColorText string `json:"color_text,omitempty" path:"color_text,omitempty" url:"color_text,omitempty"` 16 ColorTop string `json:"color_top,omitempty" path:"color_top,omitempty" url:"color_top,omitempty"` 17 ColorTopText string `json:"color_top_text,omitempty" path:"color_top_text,omitempty" url:"color_top_text,omitempty"` 18 Url string `json:"url,omitempty" path:"url,omitempty" url:"url,omitempty"` 19 Description string `json:"description,omitempty" path:"description,omitempty" url:"description,omitempty"` 20 ExpiresAt *time.Time `json:"expires_at,omitempty" path:"expires_at,omitempty" url:"expires_at,omitempty"` 21 PasswordProtected *bool `json:"password_protected,omitempty" path:"password_protected,omitempty" url:"password_protected,omitempty"` 22 Permissions string `json:"permissions,omitempty" path:"permissions,omitempty" url:"permissions,omitempty"` 23 PreviewOnly *bool `json:"preview_only,omitempty" path:"preview_only,omitempty" url:"preview_only,omitempty"` 24 RequireRegistration *bool `json:"require_registration,omitempty" path:"require_registration,omitempty" url:"require_registration,omitempty"` 25 RequireShareRecipient *bool `json:"require_share_recipient,omitempty" path:"require_share_recipient,omitempty" url:"require_share_recipient,omitempty"` 26 RequireLogout *bool `json:"require_logout,omitempty" path:"require_logout,omitempty" url:"require_logout,omitempty"` 27 ClickwrapBody string `json:"clickwrap_body,omitempty" path:"clickwrap_body,omitempty" url:"clickwrap_body,omitempty"` 28 FormFieldSet FormFieldSet `json:"form_field_set,omitempty" path:"form_field_set,omitempty" url:"form_field_set,omitempty"` 29 SkipName *bool `json:"skip_name,omitempty" path:"skip_name,omitempty" url:"skip_name,omitempty"` 30 SkipEmail *bool `json:"skip_email,omitempty" path:"skip_email,omitempty" url:"skip_email,omitempty"` 31 StartAccessOnDate *time.Time `json:"start_access_on_date,omitempty" path:"start_access_on_date,omitempty" url:"start_access_on_date,omitempty"` 32 SkipCompany *bool `json:"skip_company,omitempty" path:"skip_company,omitempty" url:"skip_company,omitempty"` 33 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 34 CreatedAt *time.Time `json:"created_at,omitempty" path:"created_at,omitempty" url:"created_at,omitempty"` 35 DontSeparateSubmissionsByFolder *bool `json:"dont_separate_submissions_by_folder,omitempty" path:"dont_separate_submissions_by_folder,omitempty" url:"dont_separate_submissions_by_folder,omitempty"` 36 MaxUses int64 `json:"max_uses,omitempty" path:"max_uses,omitempty" url:"max_uses,omitempty"` 37 Note string `json:"note,omitempty" path:"note,omitempty" url:"note,omitempty"` 38 PathTemplate string `json:"path_template,omitempty" path:"path_template,omitempty" url:"path_template,omitempty"` 39 PathTemplateTimeZone string `json:"path_template_time_zone,omitempty" path:"path_template_time_zone,omitempty" url:"path_template_time_zone,omitempty"` 40 SendEmailReceiptToUploader *bool `json:"send_email_receipt_to_uploader,omitempty" path:"send_email_receipt_to_uploader,omitempty" url:"send_email_receipt_to_uploader,omitempty"` 41 SnapshotId int64 `json:"snapshot_id,omitempty" path:"snapshot_id,omitempty" url:"snapshot_id,omitempty"` 42 UserId int64 `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"` 43 Username string `json:"username,omitempty" path:"username,omitempty" url:"username,omitempty"` 44 ClickwrapId int64 `json:"clickwrap_id,omitempty" path:"clickwrap_id,omitempty" url:"clickwrap_id,omitempty"` 45 InboxId int64 `json:"inbox_id,omitempty" path:"inbox_id,omitempty" url:"inbox_id,omitempty"` 46 WatermarkAttachment Image `json:"watermark_attachment,omitempty" path:"watermark_attachment,omitempty" url:"watermark_attachment,omitempty"` 47 WatermarkValue map[string]interface{} `json:"watermark_value,omitempty" path:"watermark_value,omitempty" url:"watermark_value,omitempty"` 48 HasInbox *bool `json:"has_inbox,omitempty" path:"has_inbox,omitempty" url:"has_inbox,omitempty"` 49 Paths []string `json:"paths,omitempty" path:"paths,omitempty" url:"paths,omitempty"` 50 Bundlepaths []string `json:"bundlepaths,omitempty" path:"bundlepaths,omitempty" url:"bundlepaths,omitempty"` 51 Password string `json:"password,omitempty" path:"password,omitempty" url:"password,omitempty"` 52 FormFieldSetId int64 `json:"form_field_set_id,omitempty" path:"form_field_set_id,omitempty" url:"form_field_set_id,omitempty"` 53 CreateSnapshot *bool `json:"create_snapshot,omitempty" path:"create_snapshot,omitempty" url:"create_snapshot,omitempty"` 54 FinalizeSnapshot *bool `json:"finalize_snapshot,omitempty" path:"finalize_snapshot,omitempty" url:"finalize_snapshot,omitempty"` 55 WatermarkAttachmentFile io.Reader `json:"watermark_attachment_file,omitempty" path:"watermark_attachment_file,omitempty" url:"watermark_attachment_file,omitempty"` 56 WatermarkAttachmentDelete *bool `json:"watermark_attachment_delete,omitempty" path:"watermark_attachment_delete,omitempty" url:"watermark_attachment_delete,omitempty"` 57 } 58 59 func (b Bundle) Identifier() interface{} { 60 return b.Id 61 } 62 63 type BundleCollection []Bundle 64 65 type BundlePermissionsEnum string 66 67 func (u BundlePermissionsEnum) String() string { 68 return string(u) 69 } 70 71 func (u BundlePermissionsEnum) Enum() map[string]BundlePermissionsEnum { 72 return map[string]BundlePermissionsEnum{ 73 "read": BundlePermissionsEnum("read"), 74 "write": BundlePermissionsEnum("write"), 75 "read_write": BundlePermissionsEnum("read_write"), 76 "full": BundlePermissionsEnum("full"), 77 "none": BundlePermissionsEnum("none"), 78 "preview_only": BundlePermissionsEnum("preview_only"), 79 } 80 } 81 82 type BundleListParams struct { 83 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 84 SortBy map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"` 85 Filter Bundle `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"` 86 FilterGt map[string]interface{} `url:"filter_gt,omitempty" required:"false" json:"filter_gt,omitempty" path:"filter_gt"` 87 FilterGteq map[string]interface{} `url:"filter_gteq,omitempty" required:"false" json:"filter_gteq,omitempty" path:"filter_gteq"` 88 FilterLt map[string]interface{} `url:"filter_lt,omitempty" required:"false" json:"filter_lt,omitempty" path:"filter_lt"` 89 FilterLteq map[string]interface{} `url:"filter_lteq,omitempty" required:"false" json:"filter_lteq,omitempty" path:"filter_lteq"` 90 ListParams 91 } 92 93 type BundleFindParams struct { 94 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 95 } 96 97 type BundleCreateParams struct { 98 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 99 Paths []string `url:"paths,omitempty" required:"true" json:"paths,omitempty" path:"paths"` 100 Password string `url:"password,omitempty" required:"false" json:"password,omitempty" path:"password"` 101 FormFieldSetId int64 `url:"form_field_set_id,omitempty" required:"false" json:"form_field_set_id,omitempty" path:"form_field_set_id"` 102 CreateSnapshot *bool `url:"create_snapshot,omitempty" required:"false" json:"create_snapshot,omitempty" path:"create_snapshot"` 103 DontSeparateSubmissionsByFolder *bool `url:"dont_separate_submissions_by_folder,omitempty" required:"false" json:"dont_separate_submissions_by_folder,omitempty" path:"dont_separate_submissions_by_folder"` 104 ExpiresAt *time.Time `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"` 105 FinalizeSnapshot *bool `url:"finalize_snapshot,omitempty" required:"false" json:"finalize_snapshot,omitempty" path:"finalize_snapshot"` 106 MaxUses int64 `url:"max_uses,omitempty" required:"false" json:"max_uses,omitempty" path:"max_uses"` 107 Description string `url:"description,omitempty" required:"false" json:"description,omitempty" path:"description"` 108 Note string `url:"note,omitempty" required:"false" json:"note,omitempty" path:"note"` 109 Code string `url:"code,omitempty" required:"false" json:"code,omitempty" path:"code"` 110 PathTemplate string `url:"path_template,omitempty" required:"false" json:"path_template,omitempty" path:"path_template"` 111 PathTemplateTimeZone string `url:"path_template_time_zone,omitempty" required:"false" json:"path_template_time_zone,omitempty" path:"path_template_time_zone"` 112 Permissions BundlePermissionsEnum `url:"permissions,omitempty" required:"false" json:"permissions,omitempty" path:"permissions"` 113 PreviewOnly *bool `url:"preview_only,omitempty" required:"false" json:"preview_only,omitempty" path:"preview_only"` 114 RequireRegistration *bool `url:"require_registration,omitempty" required:"false" json:"require_registration,omitempty" path:"require_registration"` 115 ClickwrapId int64 `url:"clickwrap_id,omitempty" required:"false" json:"clickwrap_id,omitempty" path:"clickwrap_id"` 116 InboxId int64 `url:"inbox_id,omitempty" required:"false" json:"inbox_id,omitempty" path:"inbox_id"` 117 RequireShareRecipient *bool `url:"require_share_recipient,omitempty" required:"false" json:"require_share_recipient,omitempty" path:"require_share_recipient"` 118 SendEmailReceiptToUploader *bool `url:"send_email_receipt_to_uploader,omitempty" required:"false" json:"send_email_receipt_to_uploader,omitempty" path:"send_email_receipt_to_uploader"` 119 SkipEmail *bool `url:"skip_email,omitempty" required:"false" json:"skip_email,omitempty" path:"skip_email"` 120 SkipName *bool `url:"skip_name,omitempty" required:"false" json:"skip_name,omitempty" path:"skip_name"` 121 SkipCompany *bool `url:"skip_company,omitempty" required:"false" json:"skip_company,omitempty" path:"skip_company"` 122 StartAccessOnDate *time.Time `url:"start_access_on_date,omitempty" required:"false" json:"start_access_on_date,omitempty" path:"start_access_on_date"` 123 SnapshotId int64 `url:"snapshot_id,omitempty" required:"false" json:"snapshot_id,omitempty" path:"snapshot_id"` 124 WatermarkAttachmentFile io.Writer `url:"watermark_attachment_file,omitempty" required:"false" json:"watermark_attachment_file,omitempty" path:"watermark_attachment_file"` 125 } 126 127 // Send email(s) with a link to bundle 128 type BundleShareParams struct { 129 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 130 To []string `url:"to,omitempty" required:"false" json:"to,omitempty" path:"to"` 131 Note string `url:"note,omitempty" required:"false" json:"note,omitempty" path:"note"` 132 Recipients []map[string]interface{} `url:"recipients,omitempty" required:"false" json:"recipients,omitempty" path:"recipients"` 133 } 134 135 type BundleUpdateParams struct { 136 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 137 Paths []string `url:"paths,omitempty" required:"false" json:"paths,omitempty" path:"paths"` 138 Password string `url:"password,omitempty" required:"false" json:"password,omitempty" path:"password"` 139 FormFieldSetId int64 `url:"form_field_set_id,omitempty" required:"false" json:"form_field_set_id,omitempty" path:"form_field_set_id"` 140 ClickwrapId int64 `url:"clickwrap_id,omitempty" required:"false" json:"clickwrap_id,omitempty" path:"clickwrap_id"` 141 Code string `url:"code,omitempty" required:"false" json:"code,omitempty" path:"code"` 142 CreateSnapshot *bool `url:"create_snapshot,omitempty" required:"false" json:"create_snapshot,omitempty" path:"create_snapshot"` 143 Description string `url:"description,omitempty" required:"false" json:"description,omitempty" path:"description"` 144 DontSeparateSubmissionsByFolder *bool `url:"dont_separate_submissions_by_folder,omitempty" required:"false" json:"dont_separate_submissions_by_folder,omitempty" path:"dont_separate_submissions_by_folder"` 145 ExpiresAt *time.Time `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"` 146 FinalizeSnapshot *bool `url:"finalize_snapshot,omitempty" required:"false" json:"finalize_snapshot,omitempty" path:"finalize_snapshot"` 147 InboxId int64 `url:"inbox_id,omitempty" required:"false" json:"inbox_id,omitempty" path:"inbox_id"` 148 MaxUses int64 `url:"max_uses,omitempty" required:"false" json:"max_uses,omitempty" path:"max_uses"` 149 Note string `url:"note,omitempty" required:"false" json:"note,omitempty" path:"note"` 150 PathTemplate string `url:"path_template,omitempty" required:"false" json:"path_template,omitempty" path:"path_template"` 151 PathTemplateTimeZone string `url:"path_template_time_zone,omitempty" required:"false" json:"path_template_time_zone,omitempty" path:"path_template_time_zone"` 152 Permissions BundlePermissionsEnum `url:"permissions,omitempty" required:"false" json:"permissions,omitempty" path:"permissions"` 153 PreviewOnly *bool `url:"preview_only,omitempty" required:"false" json:"preview_only,omitempty" path:"preview_only"` 154 RequireRegistration *bool `url:"require_registration,omitempty" required:"false" json:"require_registration,omitempty" path:"require_registration"` 155 RequireShareRecipient *bool `url:"require_share_recipient,omitempty" required:"false" json:"require_share_recipient,omitempty" path:"require_share_recipient"` 156 SendEmailReceiptToUploader *bool `url:"send_email_receipt_to_uploader,omitempty" required:"false" json:"send_email_receipt_to_uploader,omitempty" path:"send_email_receipt_to_uploader"` 157 SkipCompany *bool `url:"skip_company,omitempty" required:"false" json:"skip_company,omitempty" path:"skip_company"` 158 StartAccessOnDate *time.Time `url:"start_access_on_date,omitempty" required:"false" json:"start_access_on_date,omitempty" path:"start_access_on_date"` 159 SkipEmail *bool `url:"skip_email,omitempty" required:"false" json:"skip_email,omitempty" path:"skip_email"` 160 SkipName *bool `url:"skip_name,omitempty" required:"false" json:"skip_name,omitempty" path:"skip_name"` 161 WatermarkAttachmentDelete *bool `url:"watermark_attachment_delete,omitempty" required:"false" json:"watermark_attachment_delete,omitempty" path:"watermark_attachment_delete"` 162 WatermarkAttachmentFile io.Writer `url:"watermark_attachment_file,omitempty" required:"false" json:"watermark_attachment_file,omitempty" path:"watermark_attachment_file"` 163 } 164 165 type BundleDeleteParams struct { 166 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 167 } 168 169 func (b *Bundle) UnmarshalJSON(data []byte) error { 170 type bundle Bundle 171 var v bundle 172 if err := json.Unmarshal(data, &v); err != nil { 173 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 174 } 175 176 *b = Bundle(v) 177 return nil 178 } 179 180 func (b *BundleCollection) UnmarshalJSON(data []byte) error { 181 type bundles BundleCollection 182 var v bundles 183 if err := json.Unmarshal(data, &v); err != nil { 184 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 185 } 186 187 *b = BundleCollection(v) 188 return nil 189 } 190 191 func (b *BundleCollection) ToSlice() *[]interface{} { 192 ret := make([]interface{}, len(*b)) 193 for i, v := range *b { 194 ret[i] = v 195 } 196 197 return &ret 198 }