From 1ed8a8fe4902fd1462c5dea69c0743b76e9eff60 Mon Sep 17 00:00:00 2001 From: John Johansson <1345217+we4sz@users.noreply.github.com> Date: Sat, 31 Oct 2026 09:21:14 +0100 Subject: [PATCH 1/8] Adding SlackObject, with ExtraProperties --- SlackNet/SlackObject.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 SlackNet/SlackObject.cs diff --git a/SlackNet/SlackObject.cs b/SlackNet/SlackObject.cs new file mode 100644 index 0000000..1db071e --- /dev/null +++ b/SlackNet/SlackObject.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SlackNet; + +/// +/// The base of the models that SlackNet reads from Slack, so that nothing Slack adds to them is lost before SlackNet has a property for it. +/// +public abstract class SlackObject +{ + /// + /// Anything that Slack includes in the object that isn't covered by other properties can be accessed through this property. + /// If you find anything here, please raise an issue at https://github.com/soxtoby/SlackNet/issues so we can add it to the library. + /// These are only read from Slack. They are not written back when the object is sent to Slack. + /// + [JsonExtensionData(WriteData = false)] + public Dictionary ExtraProperties { get; set; } = new(); +} From 10e114c5c2045bfed59d35e963bb15c9cd3eedcb Mon Sep 17 00:00:00 2001 From: John Johansson <1345217+we4sz@users.noreply.github.com> Date: Sat, 31 Oct 2026 09:21:14 +0100 Subject: [PATCH 2/8] Adding ExtraProperties to the Slack objects --- SlackNet/Objects/AssistantThread.cs | 4 ++-- SlackNet/Objects/Attachment.cs | 6 +++--- SlackNet/Objects/AuthedUser.cs | 2 +- SlackNet/Objects/Authorization.cs | 2 +- SlackNet/Objects/Bookmark.cs | 2 +- SlackNet/Objects/BotInfo.cs | 2 +- SlackNet/Objects/Call.cs | 2 +- SlackNet/Objects/CallUser.cs | 2 +- SlackNet/Objects/CanvasChange.cs | 2 +- SlackNet/Objects/ColumnSchema.cs | 8 ++++---- SlackNet/Objects/Confirm.cs | 2 +- SlackNet/Objects/ConnectedTeam.cs | 2 +- SlackNet/Objects/Conversation.cs | 2 +- SlackNet/Objects/DndStatus.cs | 2 +- SlackNet/Objects/DocumentContent.cs | 2 +- SlackNet/Objects/ElementValue.cs | 2 +- SlackNet/Objects/EmojiDisplayInfo.cs | 2 +- SlackNet/Objects/EnterpriseUser.cs | 2 +- SlackNet/Objects/ExternalReference.cs | 2 +- SlackNet/Objects/ExternalTeam.cs | 10 +++++----- SlackNet/Objects/Field.cs | 2 +- SlackNet/Objects/File.cs | 6 +++--- SlackNet/Objects/FileComment.cs | 2 +- SlackNet/Objects/Function.cs | 2 +- SlackNet/Objects/FunctionData.cs | 2 +- SlackNet/Objects/FunctionParameter.cs | 2 +- SlackNet/Objects/FunctionPermissionUser.cs | 2 +- SlackNet/Objects/Hub.cs | 2 +- SlackNet/Objects/Interactivity.cs | 2 +- SlackNet/Objects/Invite.cs | 2 +- SlackNet/Objects/InviteChannel.cs | 2 +- SlackNet/Objects/ListItem.cs | 12 ++++++------ SlackNet/Objects/ListItemInfo.cs | 2 +- SlackNet/Objects/ListLimits.cs | 2 +- SlackNet/Objects/ListMetadata.cs | 4 ++-- SlackNet/Objects/ListView.cs | 4 ++-- SlackNet/Objects/LookupCriteria.cs | 2 +- SlackNet/Objects/MessageMetadata.cs | 2 +- SlackNet/Objects/Option.cs | 2 +- SlackNet/Objects/OptionGroup.cs | 2 +- SlackNet/Objects/PinnedItem.cs | 2 +- SlackNet/Objects/ProfileFieldOptions.cs | 2 +- SlackNet/Objects/Purpose.cs | 2 +- SlackNet/Objects/Reaction.cs | 2 +- SlackNet/Objects/ReactionItem.cs | 2 +- SlackNet/Objects/Reminder.cs | 2 +- SlackNet/Objects/Team.cs | 2 +- SlackNet/Objects/TeamProfile.cs | 2 +- SlackNet/Objects/TeamProfileField.cs | 2 +- SlackNet/Objects/Topic.cs | 2 +- SlackNet/Objects/UnfurlMetadata.cs | 2 +- SlackNet/Objects/UrlSource.cs | 2 +- SlackNet/Objects/User.cs | 2 +- SlackNet/Objects/UserContext.cs | 2 +- SlackNet/Objects/UserGroup.cs | 2 +- SlackNet/Objects/UserGroupPreferences.cs | 2 +- SlackNet/Objects/UserProfile.cs | 2 +- SlackNet/Objects/UserProfileField.cs | 2 +- SlackNet/Objects/ViewDefinition.cs | 2 +- SlackNet/Objects/ViewInfo.cs | 2 +- SlackNet/Objects/ViewState.cs | 2 +- SlackNet/Objects/WorkObjects/EntityActionButton.cs | 4 ++-- SlackNet/Objects/WorkObjects/EntityAttributes.cs | 8 ++++---- SlackNet/Objects/WorkObjects/EntityEditSupport.cs | 10 +++++----- SlackNet/Objects/WorkObjects/EntityError.cs | 2 +- SlackNet/Objects/WorkObjects/EntityField.cs | 2 +- SlackNet/Objects/WorkObjects/EntityIcon.cs | 2 +- SlackNet/Objects/WorkObjects/EntityPayload.cs | 8 ++++---- SlackNet/Objects/WorkObjects/EntityUser.cs | 2 +- SlackNet/Objects/WorkObjects/WorkObjectEntity.cs | 2 +- SlackNet/Objects/WorkSpace.cs | 2 +- 71 files changed, 101 insertions(+), 101 deletions(-) diff --git a/SlackNet/Objects/AssistantThread.cs b/SlackNet/Objects/AssistantThread.cs index 860fbbb..9947a74 100644 --- a/SlackNet/Objects/AssistantThread.cs +++ b/SlackNet/Objects/AssistantThread.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class AssistantThread +public class AssistantThread : SlackObject { public string UserId { get; set; } public AssistantThreadContext Context { get; set; } = new(); @@ -8,7 +8,7 @@ public class AssistantThread public string ThreadTs { get; set; } } -public class AssistantThreadContext +public class AssistantThreadContext : SlackObject { public string ChannelId { get; set; } public string TeamId { get; set; } diff --git a/SlackNet/Objects/Attachment.cs b/SlackNet/Objects/Attachment.cs index a7e6cd7..0f1c23f 100644 --- a/SlackNet/Objects/Attachment.cs +++ b/SlackNet/Objects/Attachment.cs @@ -49,7 +49,7 @@ public interface IReadOnlyAttachment string BotTeamId { get; } } -public class Attachment : IReadOnlyAttachment +public class Attachment : SlackObject, IReadOnlyAttachment { /// /// Structured blocks. If any blocks are specified, then no other properties can be set, except . @@ -100,7 +100,7 @@ public class Attachment : IReadOnlyAttachment public string BotTeamId { get; set; } } -public class MessageBlock +public class MessageBlock : SlackObject { public string Team { get; set; } public string Channel { get; set; } @@ -108,7 +108,7 @@ public class MessageBlock public MessageBlocks Message { get; set; } } -public class MessageBlocks +public class MessageBlocks : SlackObject { public IList Blocks { get; set; } } \ No newline at end of file diff --git a/SlackNet/Objects/AuthedUser.cs b/SlackNet/Objects/AuthedUser.cs index d64ec3a..74f1fee 100644 --- a/SlackNet/Objects/AuthedUser.cs +++ b/SlackNet/Objects/AuthedUser.cs @@ -3,7 +3,7 @@ namespace SlackNet; /// /// If you make use of a user_token this object is included. /// -public class AuthedUser +public class AuthedUser : SlackObject { public string Id { get; set; } public string Scope { get; set; } diff --git a/SlackNet/Objects/Authorization.cs b/SlackNet/Objects/Authorization.cs index 325d287..7192799 100644 --- a/SlackNet/Objects/Authorization.cs +++ b/SlackNet/Objects/Authorization.cs @@ -5,7 +5,7 @@ namespace SlackNet; /// workspace, and user (represented by , and inside this class) /// Installations may only have one or two, not all three, defined. /// -public class Authorization +public class Authorization : SlackObject { public string EnterpriseId { get; set; } diff --git a/SlackNet/Objects/Bookmark.cs b/SlackNet/Objects/Bookmark.cs index 80742da..d4008fa 100644 --- a/SlackNet/Objects/Bookmark.cs +++ b/SlackNet/Objects/Bookmark.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class Bookmark +public class Bookmark : SlackObject { public string Id { get; set; } public string ChannelId { get; set; } diff --git a/SlackNet/Objects/BotInfo.cs b/SlackNet/Objects/BotInfo.cs index d8ba96a..06a5f1a 100644 --- a/SlackNet/Objects/BotInfo.cs +++ b/SlackNet/Objects/BotInfo.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class BotInfo +public class BotInfo : SlackObject { public string Id { get; set; } public string UserId { get; set; } diff --git a/SlackNet/Objects/Call.cs b/SlackNet/Objects/Call.cs index debe1d7..aa51243 100644 --- a/SlackNet/Objects/Call.cs +++ b/SlackNet/Objects/Call.cs @@ -4,7 +4,7 @@ namespace SlackNet; -public class Call +public class Call : SlackObject { /// /// ID associated with the Call. diff --git a/SlackNet/Objects/CallUser.cs b/SlackNet/Objects/CallUser.cs index 7f4830e..6806e08 100644 --- a/SlackNet/Objects/CallUser.cs +++ b/SlackNet/Objects/CallUser.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class CallUser +public class CallUser : SlackObject { public string SlackId { get; set; } public string ExternalId { get; set; } diff --git a/SlackNet/Objects/CanvasChange.cs b/SlackNet/Objects/CanvasChange.cs index beb723d..0e274cd 100644 --- a/SlackNet/Objects/CanvasChange.cs +++ b/SlackNet/Objects/CanvasChange.cs @@ -1,7 +1,7 @@ #nullable enable namespace SlackNet; -public class CanvasChange +public class CanvasChange : SlackObject { public CanvasOperation Operation { get; set; } public DocumentContent? DocumentContent { get; set; } diff --git a/SlackNet/Objects/ColumnSchema.cs b/SlackNet/Objects/ColumnSchema.cs index d8bd77c..cadf301 100644 --- a/SlackNet/Objects/ColumnSchema.cs +++ b/SlackNet/Objects/ColumnSchema.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class ColumnSchema +public class ColumnSchema : SlackObject { /// /// The ID of the column, provided by Slack. @@ -31,7 +31,7 @@ public class ColumnSchema public ColumnOptions Options { get; set; } = new(); } -public class ColumnOptions +public class ColumnOptions : SlackObject { /// /// Used by select columns to specify options. @@ -77,7 +77,7 @@ public class ColumnOptions public bool? NotifyUsers { get; set; } } -public class ColumnOptionItem +public class ColumnOptionItem : SlackObject { /// /// The value for the option. @@ -93,7 +93,7 @@ public class ColumnOptionItem public ColumnOptionColor Color { get; set; } } -public class ColumnDefaultValue +public class ColumnDefaultValue : SlackObject { /// /// Default user values (encoded user ids) for the people column. diff --git a/SlackNet/Objects/Confirm.cs b/SlackNet/Objects/Confirm.cs index 923ac44..93e204a 100644 --- a/SlackNet/Objects/Confirm.cs +++ b/SlackNet/Objects/Confirm.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class Confirm +public class Confirm : SlackObject { public string Title { get; set; } public string Text { get; set; } diff --git a/SlackNet/Objects/ConnectedTeam.cs b/SlackNet/Objects/ConnectedTeam.cs index 22810fb..53d1a1a 100644 --- a/SlackNet/Objects/ConnectedTeam.cs +++ b/SlackNet/Objects/ConnectedTeam.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class ConnectedTeam +public class ConnectedTeam : SlackObject { public string Id { get; set; } public string Name { get; set; } diff --git a/SlackNet/Objects/Conversation.cs b/SlackNet/Objects/Conversation.cs index 8c826bf..a18c09d 100644 --- a/SlackNet/Objects/Conversation.cs +++ b/SlackNet/Objects/Conversation.cs @@ -5,7 +5,7 @@ namespace SlackNet; -public class Conversation +public class Conversation : SlackObject { public string Id { get; set; } diff --git a/SlackNet/Objects/DndStatus.cs b/SlackNet/Objects/DndStatus.cs index f3b494a..821cc31 100644 --- a/SlackNet/Objects/DndStatus.cs +++ b/SlackNet/Objects/DndStatus.cs @@ -3,7 +3,7 @@ namespace SlackNet; -public class DndStatus +public class DndStatus : SlackObject { public bool DndEnabled { get; set; } public int NextDndStartTs { get; set; } diff --git a/SlackNet/Objects/DocumentContent.cs b/SlackNet/Objects/DocumentContent.cs index e265b2a..2c46bc1 100644 --- a/SlackNet/Objects/DocumentContent.cs +++ b/SlackNet/Objects/DocumentContent.cs @@ -1,7 +1,7 @@ #nullable enable namespace SlackNet; -public class DocumentContent +public class DocumentContent : SlackObject { public string Type { get; set; } = "markdown"; public string Markdown { get; set; } = string.Empty; diff --git a/SlackNet/Objects/ElementValue.cs b/SlackNet/Objects/ElementValue.cs index 5ebd096..cae76d0 100644 --- a/SlackNet/Objects/ElementValue.cs +++ b/SlackNet/Objects/ElementValue.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public abstract class ElementValue +public abstract class ElementValue : SlackObject { public string Type { get; set; } } \ No newline at end of file diff --git a/SlackNet/Objects/EmojiDisplayInfo.cs b/SlackNet/Objects/EmojiDisplayInfo.cs index 87b901c..87ff25e 100644 --- a/SlackNet/Objects/EmojiDisplayInfo.cs +++ b/SlackNet/Objects/EmojiDisplayInfo.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class EmojiDisplayInfo +public class EmojiDisplayInfo : SlackObject { public string EmojiName { get; set; } public string DisplayUrl { get; set; } diff --git a/SlackNet/Objects/EnterpriseUser.cs b/SlackNet/Objects/EnterpriseUser.cs index e47edbf..4663440 100644 --- a/SlackNet/Objects/EnterpriseUser.cs +++ b/SlackNet/Objects/EnterpriseUser.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class EnterpriseUser +public class EnterpriseUser : SlackObject { public string Id { get; set; } public string EnterpriseId { get; set; } diff --git a/SlackNet/Objects/ExternalReference.cs b/SlackNet/Objects/ExternalReference.cs index a76cc63..417a3e9 100644 --- a/SlackNet/Objects/ExternalReference.cs +++ b/SlackNet/Objects/ExternalReference.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class ExternalReference +public class ExternalReference : SlackObject { public string Id { get; set; } public string Type { get; set; } diff --git a/SlackNet/Objects/ExternalTeam.cs b/SlackNet/Objects/ExternalTeam.cs index f3262b4..f87eaef 100644 --- a/SlackNet/Objects/ExternalTeam.cs +++ b/SlackNet/Objects/ExternalTeam.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class ExternalTeam +public class ExternalTeam : SlackObject { public string TeamId { get; set; } public string TeamName { get; set; } @@ -20,7 +20,7 @@ public class ExternalTeam public ListConnections Lists { get; set; } } -public class ConnectedWorkspace +public class ConnectedWorkspace : SlackObject { public string WorkspaceId { get; set; } public string WorkspaceName { get; set; } @@ -38,19 +38,19 @@ public enum SlackConnectPref ExternalAwarenessContextBar, } -public class CanvasConnections +public class CanvasConnections : SlackObject { public int TotalCount { get; set; } public IList OwnershipDetails { get; set; } } -public class ListConnections +public class ListConnections : SlackObject { public int TotalCount { get; set; } public IList OwnershipDetails { get; set; } } -public class OwnershipDetails +public class OwnershipDetails : SlackObject { public string TeamId { get; set; } public int? Count { get; set; } diff --git a/SlackNet/Objects/Field.cs b/SlackNet/Objects/Field.cs index 8a896ea..f81126a 100644 --- a/SlackNet/Objects/Field.cs +++ b/SlackNet/Objects/Field.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class Field +public class Field : SlackObject { public string Title { get; set; } public string Value { get; set; } diff --git a/SlackNet/Objects/File.cs b/SlackNet/Objects/File.cs index fff89f6..fafa97e 100644 --- a/SlackNet/Objects/File.cs +++ b/SlackNet/Objects/File.cs @@ -4,7 +4,7 @@ namespace SlackNet; -public class File +public class File : SlackObject { public string Id { get; set; } public int Created { get; set; } @@ -71,13 +71,13 @@ public class File public bool IsAiSuggested { get; set; } } -public class FileShares +public class FileShares : SlackObject { public IDictionary> Public { get; set; } public IDictionary> Private { get; set; } } -public class FileShare +public class FileShare : SlackObject { public string[] ReplyUsers { get; set; } public int ReplyUsersCount { get; set; } diff --git a/SlackNet/Objects/FileComment.cs b/SlackNet/Objects/FileComment.cs index f749b14..5e3dc8e 100644 --- a/SlackNet/Objects/FileComment.cs +++ b/SlackNet/Objects/FileComment.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class FileComment +public class FileComment : SlackObject { public string Id { get; set; } public int Created { get; set; } diff --git a/SlackNet/Objects/Function.cs b/SlackNet/Objects/Function.cs index 70937bd..c45af07 100644 --- a/SlackNet/Objects/Function.cs +++ b/SlackNet/Objects/Function.cs @@ -5,7 +5,7 @@ namespace SlackNet; /// /// Metadata for a function used as a workflow step. /// -public class Function +public class Function : SlackObject { public string Id { get; set; } public string CallbackId { get; set; } diff --git a/SlackNet/Objects/FunctionData.cs b/SlackNet/Objects/FunctionData.cs index 92c53fd..226fff5 100644 --- a/SlackNet/Objects/FunctionData.cs +++ b/SlackNet/Objects/FunctionData.cs @@ -5,7 +5,7 @@ namespace SlackNet; /// /// The function execution that generated an interaction. /// -public class FunctionData +public class FunctionData : SlackObject { public string ExecutionId { get; set; } public Function Function { get; set; } diff --git a/SlackNet/Objects/FunctionParameter.cs b/SlackNet/Objects/FunctionParameter.cs index 2a82b78..28b7f22 100644 --- a/SlackNet/Objects/FunctionParameter.cs +++ b/SlackNet/Objects/FunctionParameter.cs @@ -3,7 +3,7 @@ namespace SlackNet; /// /// An input or output parameter defined by a function. /// -public class FunctionParameter +public class FunctionParameter : SlackObject { public string Type { get; set; } public string Name { get; set; } diff --git a/SlackNet/Objects/FunctionPermissionUser.cs b/SlackNet/Objects/FunctionPermissionUser.cs index c0c03d6..cfda886 100644 --- a/SlackNet/Objects/FunctionPermissionUser.cs +++ b/SlackNet/Objects/FunctionPermissionUser.cs @@ -3,7 +3,7 @@ namespace SlackNet; /// /// A user with access to a custom function. /// -public class FunctionPermissionUser +public class FunctionPermissionUser : SlackObject { public string UserId { get; set; } public string Username { get; set; } diff --git a/SlackNet/Objects/Hub.cs b/SlackNet/Objects/Hub.cs index 2cf37ee..6567880 100644 --- a/SlackNet/Objects/Hub.cs +++ b/SlackNet/Objects/Hub.cs @@ -5,7 +5,7 @@ namespace SlackNet; [Obsolete("Use Conversation instead")] -public class Hub +public class Hub : SlackObject { public string Id { get; set; } public bool IsIm { get; set; } diff --git a/SlackNet/Objects/Interactivity.cs b/SlackNet/Objects/Interactivity.cs index b83a99b..c82413f 100644 --- a/SlackNet/Objects/Interactivity.cs +++ b/SlackNet/Objects/Interactivity.cs @@ -3,7 +3,7 @@ namespace SlackNet; /// /// Context about a user interaction within a function. /// -public class Interactivity +public class Interactivity : SlackObject { public string InteractivityPointer { get; set; } public UserContext Interactor { get; set; } diff --git a/SlackNet/Objects/Invite.cs b/SlackNet/Objects/Invite.cs index becd11e..e97076b 100644 --- a/SlackNet/Objects/Invite.cs +++ b/SlackNet/Objects/Invite.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class Invite +public class Invite : SlackObject { public string Id { get; set; } public int DateCreated { get; set; } diff --git a/SlackNet/Objects/InviteChannel.cs b/SlackNet/Objects/InviteChannel.cs index 5cc2426..73824b2 100644 --- a/SlackNet/Objects/InviteChannel.cs +++ b/SlackNet/Objects/InviteChannel.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class InviteChannel +public class InviteChannel : SlackObject { public string Id { get; set; } public bool IsPrivate { get; set; } diff --git a/SlackNet/Objects/ListItem.cs b/SlackNet/Objects/ListItem.cs index edcae90..66f538d 100644 --- a/SlackNet/Objects/ListItem.cs +++ b/SlackNet/Objects/ListItem.cs @@ -5,7 +5,7 @@ namespace SlackNet; -public class ListItem +public class ListItem : SlackObject { public string Id { get; set; } public string ListId { get; set; } @@ -21,7 +21,7 @@ public class ListItem public bool? IsSubscribed { get; set; } } -public class ListItemField +public class ListItemField : SlackObject { public string Key { get; set; } public string ColumnId { get; set; } @@ -49,7 +49,7 @@ public class ListItemFieldUpdate : ListItemField public string RowId { get; set; } } -public class MessageReference +public class MessageReference : SlackObject { public string Value { get; set; } public string ChannelId { get; set; } @@ -57,7 +57,7 @@ public class MessageReference public string ThreadTs { get; set; } } -public class ListItemLink +public class ListItemLink : SlackObject { [JsonProperty("originalUrl")] public string OriginalUrl { get; set; } @@ -66,12 +66,12 @@ public class ListItemLink public bool DisplayAsUrl { get; set; } } -public class ListItemReference +public class ListItemReference : SlackObject { public FileReference File { get; set; } } -public class FileReference +public class FileReference : SlackObject { public string FileId { get; set; } } \ No newline at end of file diff --git a/SlackNet/Objects/ListItemInfo.cs b/SlackNet/Objects/ListItemInfo.cs index 7c02fc1..619d532 100644 --- a/SlackNet/Objects/ListItemInfo.cs +++ b/SlackNet/Objects/ListItemInfo.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class ListItemInfo +public class ListItemInfo : SlackObject { public File List { get; set; } public ListItem Record { get; set; } diff --git a/SlackNet/Objects/ListLimits.cs b/SlackNet/Objects/ListLimits.cs index f901fcc..acf1630 100644 --- a/SlackNet/Objects/ListLimits.cs +++ b/SlackNet/Objects/ListLimits.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class ListLimits +public class ListLimits : SlackObject { public bool OverRowMaximum { get; set; } public int RowCountLimit { get; set; } diff --git a/SlackNet/Objects/ListMetadata.cs b/SlackNet/Objects/ListMetadata.cs index 017ddb2..cfb77f0 100644 --- a/SlackNet/Objects/ListMetadata.cs +++ b/SlackNet/Objects/ListMetadata.cs @@ -3,7 +3,7 @@ namespace SlackNet; -public class ListMetadata +public class ListMetadata : SlackObject { public IList Schema { get; set; } public IList SubtaskSchema { get; set; } @@ -17,7 +17,7 @@ public class ListMetadata public string DefaultView { get; set; } } -public class ListCreationSource +public class ListCreationSource : SlackObject { public string Type { get; set; } public string ReferenceId { get; set; } diff --git a/SlackNet/Objects/ListView.cs b/SlackNet/Objects/ListView.cs index 026f89b..fb39d6d 100644 --- a/SlackNet/Objects/ListView.cs +++ b/SlackNet/Objects/ListView.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class ListView +public class ListView : SlackObject { public string Id { get; set; } public string Name { get; set; } @@ -18,7 +18,7 @@ public class ListView public bool ShowCompletedItems { get; set; } } -public class ColumnView +public class ColumnView : SlackObject { public bool Visible { get; set; } public string Key { get; set; } diff --git a/SlackNet/Objects/LookupCriteria.cs b/SlackNet/Objects/LookupCriteria.cs index 2cc24b9..ab31bd7 100644 --- a/SlackNet/Objects/LookupCriteria.cs +++ b/SlackNet/Objects/LookupCriteria.cs @@ -4,7 +4,7 @@ namespace SlackNet; -public class LookupCriteria +public class LookupCriteria : SlackObject { public IList SectionTypes { get; set; } = []; public string? ContainsText { get; set; } diff --git a/SlackNet/Objects/MessageMetadata.cs b/SlackNet/Objects/MessageMetadata.cs index a28d93b..0241bcf 100644 --- a/SlackNet/Objects/MessageMetadata.cs +++ b/SlackNet/Objects/MessageMetadata.cs @@ -4,7 +4,7 @@ namespace SlackNet; -public class MessageMetadata +public class MessageMetadata : SlackObject { public string EventType { get; set; } diff --git a/SlackNet/Objects/Option.cs b/SlackNet/Objects/Option.cs index 01fb1d6..983bfa8 100644 --- a/SlackNet/Objects/Option.cs +++ b/SlackNet/Objects/Option.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class Option +public class Option : SlackObject { public string Text { get; set; } public string Value { get; set; } diff --git a/SlackNet/Objects/OptionGroup.cs b/SlackNet/Objects/OptionGroup.cs index 7301d37..4655bd6 100644 --- a/SlackNet/Objects/OptionGroup.cs +++ b/SlackNet/Objects/OptionGroup.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class OptionGroup +public class OptionGroup : SlackObject { public string Text { get; set; } public IList /// See the Slack documentation for more information. -public class UrlSource +public class UrlSource : SlackObject { /// The source type sent to Slack. Always url. public string Type { get; } = "url"; diff --git a/SlackNet/Objects/User.cs b/SlackNet/Objects/User.cs index 3282b94..fed017c 100644 --- a/SlackNet/Objects/User.cs +++ b/SlackNet/Objects/User.cs @@ -3,7 +3,7 @@ namespace SlackNet; -public class User +public class User : SlackObject { public string Id { get; set; } public string TeamId { get; set; } diff --git a/SlackNet/Objects/UserContext.cs b/SlackNet/Objects/UserContext.cs index 66ca47c..e518b3a 100644 --- a/SlackNet/Objects/UserContext.cs +++ b/SlackNet/Objects/UserContext.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class UserContext +public class UserContext : SlackObject { public string Id { get; set; } public string Secret { get; set; } diff --git a/SlackNet/Objects/UserGroup.cs b/SlackNet/Objects/UserGroup.cs index 6679d56..59a41d7 100644 --- a/SlackNet/Objects/UserGroup.cs +++ b/SlackNet/Objects/UserGroup.cs @@ -4,7 +4,7 @@ namespace SlackNet; -public class UserGroup +public class UserGroup : SlackObject { public string Id { get; set; } public string TeamId { get; set; } diff --git a/SlackNet/Objects/UserGroupPreferences.cs b/SlackNet/Objects/UserGroupPreferences.cs index 10f6f65..027da6f 100644 --- a/SlackNet/Objects/UserGroupPreferences.cs +++ b/SlackNet/Objects/UserGroupPreferences.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class UserGroupPreferences +public class UserGroupPreferences : SlackObject { public IList Channels { get; set; } = []; public IList Groups { get; set; } = []; diff --git a/SlackNet/Objects/UserProfile.cs b/SlackNet/Objects/UserProfile.cs index 9683525..25cc713 100644 --- a/SlackNet/Objects/UserProfile.cs +++ b/SlackNet/Objects/UserProfile.cs @@ -3,7 +3,7 @@ namespace SlackNet; -public class UserProfile +public class UserProfile : SlackObject { public string ApiAppId { get; set; } public string Title { get; set; } diff --git a/SlackNet/Objects/UserProfileField.cs b/SlackNet/Objects/UserProfileField.cs index 2844630..5083552 100644 --- a/SlackNet/Objects/UserProfileField.cs +++ b/SlackNet/Objects/UserProfileField.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class UserProfileField +public class UserProfileField : SlackObject { public string Value { get; set; } public string Alt { get; set; } diff --git a/SlackNet/Objects/ViewDefinition.cs b/SlackNet/Objects/ViewDefinition.cs index 6f88117..02cc1e0 100644 --- a/SlackNet/Objects/ViewDefinition.cs +++ b/SlackNet/Objects/ViewDefinition.cs @@ -4,7 +4,7 @@ namespace SlackNet; -public abstract class ViewDefinition(string type) +public abstract class ViewDefinition(string type) : SlackObject { public string Type { get; set; } = type; diff --git a/SlackNet/Objects/ViewInfo.cs b/SlackNet/Objects/ViewInfo.cs index af9e814..00d5868 100644 --- a/SlackNet/Objects/ViewInfo.cs +++ b/SlackNet/Objects/ViewInfo.cs @@ -3,7 +3,7 @@ namespace SlackNet; -public abstract class ViewInfo +public abstract class ViewInfo : SlackObject { public string Id { get; set; } public string TeamId { get; set; } diff --git a/SlackNet/Objects/ViewState.cs b/SlackNet/Objects/ViewState.cs index 310d2b4..2706afc 100644 --- a/SlackNet/Objects/ViewState.cs +++ b/SlackNet/Objects/ViewState.cs @@ -5,7 +5,7 @@ namespace SlackNet; -public class ViewState +public class ViewState : SlackObject { /// /// Keyed with the s of any user-modified blocks from the message or view. diff --git a/SlackNet/Objects/WorkObjects/EntityActionButton.cs b/SlackNet/Objects/WorkObjects/EntityActionButton.cs index 9587bb5..b0a7424 100644 --- a/SlackNet/Objects/WorkObjects/EntityActionButton.cs +++ b/SlackNet/Objects/WorkObjects/EntityActionButton.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class EntityActionButton +public class EntityActionButton : SlackObject { /// /// Human readable text that will be displayed in the button. @@ -35,7 +35,7 @@ public class EntityActionButton public EntityActionProcessingState ProcessingState { get; set; } } -public class EntityActionProcessingState +public class EntityActionProcessingState : SlackObject { public bool Enabled { get; set; } } \ No newline at end of file diff --git a/SlackNet/Objects/WorkObjects/EntityAttributes.cs b/SlackNet/Objects/WorkObjects/EntityAttributes.cs index bb4a2ab..e3d407d 100644 --- a/SlackNet/Objects/WorkObjects/EntityAttributes.cs +++ b/SlackNet/Objects/WorkObjects/EntityAttributes.cs @@ -6,7 +6,7 @@ namespace SlackNet; -public class EntityAttributes +public class EntityAttributes : SlackObject { /// /// Title of the Work Object entity. @@ -64,7 +64,7 @@ public DateTime? MetadataLastModifiedDateTime } } -public class EntityTitle +public class EntityTitle : SlackObject { public string Text { get; set; } public EntityEditSupport Edit { get; set; } @@ -80,7 +80,7 @@ public enum EntityDisplayType Document } -public class FullSizePreview +public class FullSizePreview : SlackObject { /// /// Lets Slack know that a full preview is supported. @@ -100,7 +100,7 @@ public class FullSizePreview public FullSizePreviewError Error { get; set; } } -public class FullSizePreviewError +public class FullSizePreviewError : SlackObject { public FullSizePreviewErrorCode Code { get; set; } public string Message { get; set; } diff --git a/SlackNet/Objects/WorkObjects/EntityEditSupport.cs b/SlackNet/Objects/WorkObjects/EntityEditSupport.cs index 079f2e4..e232667 100644 --- a/SlackNet/Objects/WorkObjects/EntityEditSupport.cs +++ b/SlackNet/Objects/WorkObjects/EntityEditSupport.cs @@ -3,7 +3,7 @@ namespace SlackNet; -public class EntityEditSupport +public class EntityEditSupport : SlackObject { public bool Enabled { get; set; } public PlainText Placeholder { get; set; } @@ -14,7 +14,7 @@ public class EntityEditSupport public TextEditing Text { get; set; } } -public class SelectEditing +public class SelectEditing : SlackObject { /// /// The current value of the select input. @@ -30,7 +30,7 @@ public class SelectEditing public bool FetchOptionsDynamically { get; set; } } -public class EntitySelectOption +public class EntitySelectOption : SlackObject { /// /// The value that will be sent to your application when the user submits the form. @@ -48,7 +48,7 @@ public class EntitySelectOption public TextObject Description { get; set; } } -public class NumberEditing +public class NumberEditing : SlackObject { /// /// Minimum allowed value. @@ -61,7 +61,7 @@ public class NumberEditing public double MaxValue { get; set; } } -public class TextEditing +public class TextEditing : SlackObject { /// /// Minimum string length. diff --git a/SlackNet/Objects/WorkObjects/EntityError.cs b/SlackNet/Objects/WorkObjects/EntityError.cs index 86de705..ebe3701 100644 --- a/SlackNet/Objects/WorkObjects/EntityError.cs +++ b/SlackNet/Objects/WorkObjects/EntityError.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class EntityError +public class EntityError : SlackObject { public EntityErrorStatus Status { get; set; } public string CustomTitle { get; set; } diff --git a/SlackNet/Objects/WorkObjects/EntityField.cs b/SlackNet/Objects/WorkObjects/EntityField.cs index 84ccbab..8db6032 100644 --- a/SlackNet/Objects/WorkObjects/EntityField.cs +++ b/SlackNet/Objects/WorkObjects/EntityField.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public abstract class EntityField() +public abstract class EntityField() : SlackObject { protected EntityField(string type) : this() => Type = type; diff --git a/SlackNet/Objects/WorkObjects/EntityIcon.cs b/SlackNet/Objects/WorkObjects/EntityIcon.cs index c35cec9..601c526 100644 --- a/SlackNet/Objects/WorkObjects/EntityIcon.cs +++ b/SlackNet/Objects/WorkObjects/EntityIcon.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class EntityIcon +public class EntityIcon : SlackObject { public string AltText { get; set; } public string Url { get; set; } diff --git a/SlackNet/Objects/WorkObjects/EntityPayload.cs b/SlackNet/Objects/WorkObjects/EntityPayload.cs index 2f8768c..c955435 100644 --- a/SlackNet/Objects/WorkObjects/EntityPayload.cs +++ b/SlackNet/Objects/WorkObjects/EntityPayload.cs @@ -2,7 +2,7 @@ namespace SlackNet; -public class EntityPayload +public class EntityPayload : SlackObject { public EntityAttributes Attributes { get; set; } = new(); public StandardEntityFields Fields { get; set; } = new(); @@ -14,7 +14,7 @@ public class EntityPayload public EntityRemoteFile SlackFile { get; set; } } -public class StandardEntityFields +public class StandardEntityFields : SlackObject { public ImageField Preview { get; set; } public UserField CreatedBy { get; set; } @@ -32,13 +32,13 @@ public class StandardEntityFields public StringField Service { get; set; } } -public class EntityActions +public class EntityActions : SlackObject { public IList PrimaryActions { get; set; } = []; public IList OverflowActions { get; set; } = []; } -public class EntityRemoteFile +public class EntityRemoteFile : SlackObject { /// /// Apps providing remote files as well as Work Objects should provide the diff --git a/SlackNet/Objects/WorkObjects/EntityUser.cs b/SlackNet/Objects/WorkObjects/EntityUser.cs index 7b66d79..f2a0da1 100644 --- a/SlackNet/Objects/WorkObjects/EntityUser.cs +++ b/SlackNet/Objects/WorkObjects/EntityUser.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class EntityUser +public class EntityUser : SlackObject { /// /// Use with a Slack user ID (e.g. "U123ABC456") if known. diff --git a/SlackNet/Objects/WorkObjects/WorkObjectEntity.cs b/SlackNet/Objects/WorkObjects/WorkObjectEntity.cs index d0e7fdf..25a804a 100644 --- a/SlackNet/Objects/WorkObjects/WorkObjectEntity.cs +++ b/SlackNet/Objects/WorkObjects/WorkObjectEntity.cs @@ -6,7 +6,7 @@ namespace SlackNet; /// /// A Work Object entity for unfurling. /// -public class WorkObjectEntity +public class WorkObjectEntity : SlackObject { /// /// Entity type. diff --git a/SlackNet/Objects/WorkSpace.cs b/SlackNet/Objects/WorkSpace.cs index e848d39..cdc7a13 100644 --- a/SlackNet/Objects/WorkSpace.cs +++ b/SlackNet/Objects/WorkSpace.cs @@ -1,6 +1,6 @@ namespace SlackNet; -public class WorkSpace +public class WorkSpace : SlackObject { public string Id { get; set; } #nullable enable From 324459945ada6f9572f56f770dde089374c30250 Mon Sep 17 00:00:00 2001 From: John Johansson <1345217+we4sz@users.noreply.github.com> Date: Sat, 31 Oct 2026 09:21:14 +0100 Subject: [PATCH 3/8] Adding ExtraProperties to the Web API models --- SlackNet/WebApi/ApprovalMessage.cs | 2 +- SlackNet/WebApi/AssistantPrompt.cs | 2 +- SlackNet/WebApi/ExternalFileReference.cs | 2 +- SlackNet/WebApi/Message.cs | 2 +- SlackNet/WebApi/Responses/AcceptSharedInviteResponse.cs | 2 +- SlackNet/WebApi/Responses/AccessLogsResponse.cs | 2 +- SlackNet/WebApi/Responses/AgentSessionStatusResponse.cs | 2 +- .../Responses/AppsEventsAuthorizationsListResponse.cs | 2 +- .../WebApi/Responses/AssistantSearchContextResponse.cs | 4 ++-- SlackNet/WebApi/Responses/AssistantSearchInfoResponse.cs | 2 +- SlackNet/WebApi/Responses/AuthTeamsListResponse.cs | 4 ++-- SlackNet/WebApi/Responses/AuthTestResponse.cs | 2 +- SlackNet/WebApi/Responses/BillableInfo.cs | 2 +- SlackNet/WebApi/Responses/BillingInfo.cs | 2 +- SlackNet/WebApi/Responses/BookmarkListResponse.cs | 2 +- SlackNet/WebApi/Responses/BookmarkResponse.cs | 2 +- SlackNet/WebApi/Responses/BotsInfoResponse.cs | 2 +- SlackNet/WebApi/Responses/CallResponse.cs | 2 +- SlackNet/WebApi/Responses/CanvasSection.cs | 2 +- .../WebApi/Responses/CompleteUploadExternalResponse.cs | 2 +- SlackNet/WebApi/Responses/ConnectInvitesListResponse.cs | 8 ++++---- SlackNet/WebApi/Responses/ConnectResponse.cs | 2 +- SlackNet/WebApi/Responses/ConnectionOpenResponse.cs | 2 +- SlackNet/WebApi/Responses/ConversationId.cs | 2 +- SlackNet/WebApi/Responses/ConversationIdResponse.cs | 2 +- SlackNet/WebApi/Responses/ConversationJoinResponse.cs | 2 +- .../WebApi/Responses/ConversationJoinResponseMetadata.cs | 2 +- SlackNet/WebApi/Responses/ConversationListResponse.cs | 2 +- SlackNet/WebApi/Responses/ConversationMembersResponse.cs | 2 +- SlackNet/WebApi/Responses/ConversationMessagesResponse.cs | 2 +- SlackNet/WebApi/Responses/ConversationOpenResponse.cs | 2 +- SlackNet/WebApi/Responses/DndResponse.cs | 2 +- SlackNet/WebApi/Responses/ErrorResponseMetadata.cs | 2 +- SlackNet/WebApi/Responses/ExternalTeamsListResponse.cs | 2 +- .../WebApi/Responses/FeaturedWorkflowsListResponse.cs | 6 +++--- SlackNet/WebApi/Responses/FileListResponse.cs | 2 +- SlackNet/WebApi/Responses/FileResponse.cs | 2 +- SlackNet/WebApi/Responses/FileSearchResponse.cs | 2 +- SlackNet/WebApi/Responses/FunctionPermissionsResponse.cs | 2 +- SlackNet/WebApi/Responses/IdentityResponse.cs | 2 +- SlackNet/WebApi/Responses/IntegrationLogRecord.cs | 2 +- SlackNet/WebApi/Responses/IntegrationLogsResponse.cs | 2 +- SlackNet/WebApi/Responses/InviteRequestListResponse.cs | 2 +- SlackNet/WebApi/Responses/InviteSharedResponse.cs | 2 +- SlackNet/WebApi/Responses/ListDownloadResponse.cs | 2 +- SlackNet/WebApi/Responses/ListItemsResponse.cs | 2 +- SlackNet/WebApi/Responses/Login.cs | 2 +- SlackNet/WebApi/Responses/MessageSearchResponse.cs | 2 +- SlackNet/WebApi/Responses/MessageTsResponse.cs | 2 +- SlackNet/WebApi/Responses/MessageUpdate.cs | 2 +- SlackNet/WebApi/Responses/MessageUpdateResponse.cs | 2 +- SlackNet/WebApi/Responses/MigrationResponse.cs | 2 +- SlackNet/WebApi/Responses/OauthAccessResponse.cs | 2 +- SlackNet/WebApi/Responses/OauthV2AccessResponse.cs | 2 +- SlackNet/WebApi/Responses/OpenIdTokenResponse.cs | 2 +- SlackNet/WebApi/Responses/OpenIdUserInfoResponse.cs | 2 +- SlackNet/WebApi/Responses/Pagination.cs | 2 +- SlackNet/WebApi/Responses/Paging.cs | 2 +- SlackNet/WebApi/Responses/PermalinkResponse.cs | 2 +- SlackNet/WebApi/Responses/PostEphemeralResponse.cs | 2 +- SlackNet/WebApi/Responses/PostMessageResponse.cs | 2 +- SlackNet/WebApi/Responses/ReactionItemListResponse.cs | 2 +- SlackNet/WebApi/Responses/ResponseMetadata.cs | 2 +- SlackNet/WebApi/Responses/ScheduleMessageResponse.cs | 2 +- SlackNet/WebApi/Responses/ScheduledMessageListResponse.cs | 4 ++-- SlackNet/WebApi/Responses/SearchResponse.cs | 2 +- SlackNet/WebApi/Responses/SearchResults.cs | 2 +- SlackNet/WebApi/Responses/SlackListResponse.cs | 2 +- SlackNet/WebApi/Responses/SnoozeResponse.cs | 2 +- SlackNet/WebApi/Responses/TeamIdentity.cs | 2 +- SlackNet/WebApi/Responses/TeamPreferences.cs | 2 +- SlackNet/WebApi/Responses/TokenRotationResponse.cs | 2 +- SlackNet/WebApi/Responses/TriggerPermissionsResponse.cs | 2 +- SlackNet/WebApi/Responses/UploadUrlExternalResponse.cs | 2 +- SlackNet/WebApi/Responses/UserIdentity.cs | 2 +- SlackNet/WebApi/Responses/UserListResponse.cs | 2 +- SlackNet/WebApi/Responses/ViewResponse.cs | 2 +- .../WebApi/Responses/WorkflowStepsVersionsResponse.cs | 4 ++-- SlackNet/WebApi/StreamChunk.cs | 2 +- 79 files changed, 88 insertions(+), 88 deletions(-) diff --git a/SlackNet/WebApi/ApprovalMessage.cs b/SlackNet/WebApi/ApprovalMessage.cs index 3f07ab3..b0fa265 100644 --- a/SlackNet/WebApi/ApprovalMessage.cs +++ b/SlackNet/WebApi/ApprovalMessage.cs @@ -1,7 +1,7 @@ #nullable enable namespace SlackNet.WebApi; -public class ApprovalMessage +public class ApprovalMessage : SlackObject { public string Text { get; set; } = string.Empty; diff --git a/SlackNet/WebApi/AssistantPrompt.cs b/SlackNet/WebApi/AssistantPrompt.cs index e29c712..79e6586 100644 --- a/SlackNet/WebApi/AssistantPrompt.cs +++ b/SlackNet/WebApi/AssistantPrompt.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class AssistantPrompt +public class AssistantPrompt : SlackObject { public string Title { get; set; } public string Message { get; set; } diff --git a/SlackNet/WebApi/ExternalFileReference.cs b/SlackNet/WebApi/ExternalFileReference.cs index 024e87b..899d04a 100644 --- a/SlackNet/WebApi/ExternalFileReference.cs +++ b/SlackNet/WebApi/ExternalFileReference.cs @@ -1,7 +1,7 @@ #nullable enable namespace SlackNet.WebApi; -public class ExternalFileReference +public class ExternalFileReference : SlackObject { public required string Id { get; set; } public string? Title { get; set; } diff --git a/SlackNet/WebApi/Message.cs b/SlackNet/WebApi/Message.cs index 87ec114..82b8523 100644 --- a/SlackNet/WebApi/Message.cs +++ b/SlackNet/WebApi/Message.cs @@ -97,7 +97,7 @@ public interface IReadOnlyMessage UnfurlMetadata UnfurlMetadata { get; } } -public class Message : IReadOnlyMessage +public class Message : SlackObject, IReadOnlyMessage { public string Channel { get; set; } public string Text { get; set; } diff --git a/SlackNet/WebApi/Responses/AcceptSharedInviteResponse.cs b/SlackNet/WebApi/Responses/AcceptSharedInviteResponse.cs index 7cf400d..47531fd 100644 --- a/SlackNet/WebApi/Responses/AcceptSharedInviteResponse.cs +++ b/SlackNet/WebApi/Responses/AcceptSharedInviteResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class AcceptSharedInviteResponse +public class AcceptSharedInviteResponse : SlackObject { public bool ImplicitApproval { get; set; } public string ChannelId { get; set; } diff --git a/SlackNet/WebApi/Responses/AccessLogsResponse.cs b/SlackNet/WebApi/Responses/AccessLogsResponse.cs index 4dd36c7..5d2fc43 100644 --- a/SlackNet/WebApi/Responses/AccessLogsResponse.cs +++ b/SlackNet/WebApi/Responses/AccessLogsResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class AccessLogsResponse +public class AccessLogsResponse : SlackObject { public IList Logins { get; set; } = []; public Paging Paging { get; set; } diff --git a/SlackNet/WebApi/Responses/AgentSessionStatusResponse.cs b/SlackNet/WebApi/Responses/AgentSessionStatusResponse.cs index e0c3041..d400b2d 100644 --- a/SlackNet/WebApi/Responses/AgentSessionStatusResponse.cs +++ b/SlackNet/WebApi/Responses/AgentSessionStatusResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class AgentSessionStatusResponse +public class AgentSessionStatusResponse : SlackObject { /// /// The status of the session as a whole, derived from the statuses of all the agents in it diff --git a/SlackNet/WebApi/Responses/AppsEventsAuthorizationsListResponse.cs b/SlackNet/WebApi/Responses/AppsEventsAuthorizationsListResponse.cs index 1efd60f..84c9961 100644 --- a/SlackNet/WebApi/Responses/AppsEventsAuthorizationsListResponse.cs +++ b/SlackNet/WebApi/Responses/AppsEventsAuthorizationsListResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class AppsEventsAuthorizationsListResponse +public class AppsEventsAuthorizationsListResponse : SlackObject { public IList Authorizations { get; set; } = []; public string CursorNext { get; set; } diff --git a/SlackNet/WebApi/Responses/AssistantSearchContextResponse.cs b/SlackNet/WebApi/Responses/AssistantSearchContextResponse.cs index 9261595..5fe2281 100644 --- a/SlackNet/WebApi/Responses/AssistantSearchContextResponse.cs +++ b/SlackNet/WebApi/Responses/AssistantSearchContextResponse.cs @@ -3,13 +3,13 @@ namespace SlackNet.WebApi; -public class AssistantSearchContextResponse +public class AssistantSearchContextResponse : SlackObject { public AssistantSearchContextMessages Result { get; set; } public ResponseMetadata ResponseMetadata { get; set; } } -public class AssistantSearchContextMessages +public class AssistantSearchContextMessages : SlackObject { public IList Messages { get; set; } = []; } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/AssistantSearchInfoResponse.cs b/SlackNet/WebApi/Responses/AssistantSearchInfoResponse.cs index bc20ba9..ed220f7 100644 --- a/SlackNet/WebApi/Responses/AssistantSearchInfoResponse.cs +++ b/SlackNet/WebApi/Responses/AssistantSearchInfoResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class AssistantSearchInfoResponse +public class AssistantSearchInfoResponse : SlackObject { public bool IsAiSearchEnabled { get; set; } } diff --git a/SlackNet/WebApi/Responses/AuthTeamsListResponse.cs b/SlackNet/WebApi/Responses/AuthTeamsListResponse.cs index 067ed6f..42f2f14 100644 --- a/SlackNet/WebApi/Responses/AuthTeamsListResponse.cs +++ b/SlackNet/WebApi/Responses/AuthTeamsListResponse.cs @@ -2,13 +2,13 @@ namespace SlackNet.WebApi; -public class AuthTeamsListResponse +public class AuthTeamsListResponse : SlackObject { public IList Teams { get; set; } = []; public ResponseMetadata ResponseMetadata { get; set; } = new(); } -public class AuthTeam +public class AuthTeam : SlackObject { public string Id { get; set; } public string Name { get; set; } diff --git a/SlackNet/WebApi/Responses/AuthTestResponse.cs b/SlackNet/WebApi/Responses/AuthTestResponse.cs index 9729c09..712f7d4 100644 --- a/SlackNet/WebApi/Responses/AuthTestResponse.cs +++ b/SlackNet/WebApi/Responses/AuthTestResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class AuthTestResponse +public class AuthTestResponse : SlackObject { public string Url { get; set; } public string Team { get; set; } diff --git a/SlackNet/WebApi/Responses/BillableInfo.cs b/SlackNet/WebApi/Responses/BillableInfo.cs index 76caa63..e68573c 100644 --- a/SlackNet/WebApi/Responses/BillableInfo.cs +++ b/SlackNet/WebApi/Responses/BillableInfo.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class BillableInfo +public class BillableInfo : SlackObject { public bool BillingActive { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/BillingInfo.cs b/SlackNet/WebApi/Responses/BillingInfo.cs index 6a6a933..54df554 100644 --- a/SlackNet/WebApi/Responses/BillingInfo.cs +++ b/SlackNet/WebApi/Responses/BillingInfo.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class BillingInfo +public class BillingInfo : SlackObject { public Plan Plan { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/BookmarkListResponse.cs b/SlackNet/WebApi/Responses/BookmarkListResponse.cs index 0f89531..b4f1a5a 100644 --- a/SlackNet/WebApi/Responses/BookmarkListResponse.cs +++ b/SlackNet/WebApi/Responses/BookmarkListResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class BookmarkListResponse +public class BookmarkListResponse : SlackObject { public IList Bookmarks { get; set; } = []; } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/BookmarkResponse.cs b/SlackNet/WebApi/Responses/BookmarkResponse.cs index 949be19..dd7dafc 100644 --- a/SlackNet/WebApi/Responses/BookmarkResponse.cs +++ b/SlackNet/WebApi/Responses/BookmarkResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class BookmarkResponse +public class BookmarkResponse : SlackObject { public Bookmark Bookmark { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/BotsInfoResponse.cs b/SlackNet/WebApi/Responses/BotsInfoResponse.cs index 02fab3c..fc5d3ed 100644 --- a/SlackNet/WebApi/Responses/BotsInfoResponse.cs +++ b/SlackNet/WebApi/Responses/BotsInfoResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class BotsInfoResponse +public class BotsInfoResponse : SlackObject { public BotInfo Bot { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/CallResponse.cs b/SlackNet/WebApi/Responses/CallResponse.cs index febb5ec..6bf86ee 100644 --- a/SlackNet/WebApi/Responses/CallResponse.cs +++ b/SlackNet/WebApi/Responses/CallResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class CallResponse +public class CallResponse : SlackObject { public Call Call { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/CanvasSection.cs b/SlackNet/WebApi/Responses/CanvasSection.cs index 25dc69b..6c0f276 100644 --- a/SlackNet/WebApi/Responses/CanvasSection.cs +++ b/SlackNet/WebApi/Responses/CanvasSection.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class CanvasSection +public class CanvasSection : SlackObject { public string Id { get; set; } = null!; } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/CompleteUploadExternalResponse.cs b/SlackNet/WebApi/Responses/CompleteUploadExternalResponse.cs index 2e35d4b..43e47d4 100644 --- a/SlackNet/WebApi/Responses/CompleteUploadExternalResponse.cs +++ b/SlackNet/WebApi/Responses/CompleteUploadExternalResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class CompleteUploadExternalResponse +public class CompleteUploadExternalResponse : SlackObject { public IList Files { get; set; } = []; } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/ConnectInvitesListResponse.cs b/SlackNet/WebApi/Responses/ConnectInvitesListResponse.cs index 01bb151..32ce771 100644 --- a/SlackNet/WebApi/Responses/ConnectInvitesListResponse.cs +++ b/SlackNet/WebApi/Responses/ConnectInvitesListResponse.cs @@ -2,13 +2,13 @@ namespace SlackNet.WebApi; -public class ConnectInvitesListResponse +public class ConnectInvitesListResponse : SlackObject { public IList Invites { get; set; } public ResponseMetadata ResponseMetadata { get; set; } = new(); } -public class PendingInvite +public class PendingInvite : SlackObject { public string Direction { get; set; } public string Status { get; set; } @@ -19,7 +19,7 @@ public class PendingInvite public IList Acceptances { get; set; } = []; } -public class InviteAcceptance +public class InviteAcceptance : SlackObject { public string ApprovalStatus { get; set; } public int DateAccepted { get; set; } @@ -30,7 +30,7 @@ public class InviteAcceptance public IList Reviews { get; set; } = []; } -public class InviteReview +public class InviteReview : SlackObject { public string Type { get; set; } public int DateReview { get; set; } diff --git a/SlackNet/WebApi/Responses/ConnectResponse.cs b/SlackNet/WebApi/Responses/ConnectResponse.cs index cc377d9..adb038f 100644 --- a/SlackNet/WebApi/Responses/ConnectResponse.cs +++ b/SlackNet/WebApi/Responses/ConnectResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ConnectResponse +public class ConnectResponse : SlackObject { public string Url { get; set; } public Team Team { get; set; } diff --git a/SlackNet/WebApi/Responses/ConnectionOpenResponse.cs b/SlackNet/WebApi/Responses/ConnectionOpenResponse.cs index f20e810..3eccddf 100644 --- a/SlackNet/WebApi/Responses/ConnectionOpenResponse.cs +++ b/SlackNet/WebApi/Responses/ConnectionOpenResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class ConnectionOpenResponse +public class ConnectionOpenResponse : SlackObject { public bool Ok { get; set; } public string Url { get; set; } diff --git a/SlackNet/WebApi/Responses/ConversationId.cs b/SlackNet/WebApi/Responses/ConversationId.cs index be65111..880573b 100644 --- a/SlackNet/WebApi/Responses/ConversationId.cs +++ b/SlackNet/WebApi/Responses/ConversationId.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class ConversationId +public class ConversationId : SlackObject { public string Id { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/ConversationIdResponse.cs b/SlackNet/WebApi/Responses/ConversationIdResponse.cs index dd95d8f..1d8f371 100644 --- a/SlackNet/WebApi/Responses/ConversationIdResponse.cs +++ b/SlackNet/WebApi/Responses/ConversationIdResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class ConversationIdResponse +public class ConversationIdResponse : SlackObject { public ConversationId Channel { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/ConversationJoinResponse.cs b/SlackNet/WebApi/Responses/ConversationJoinResponse.cs index 7bf549c..0851f7d 100644 --- a/SlackNet/WebApi/Responses/ConversationJoinResponse.cs +++ b/SlackNet/WebApi/Responses/ConversationJoinResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class ConversationJoinResponse +public class ConversationJoinResponse : SlackObject { public Conversation Channel { get; set; } public string Warning { get; set; } diff --git a/SlackNet/WebApi/Responses/ConversationJoinResponseMetadata.cs b/SlackNet/WebApi/Responses/ConversationJoinResponseMetadata.cs index 8f6e553..15c21ca 100644 --- a/SlackNet/WebApi/Responses/ConversationJoinResponseMetadata.cs +++ b/SlackNet/WebApi/Responses/ConversationJoinResponseMetadata.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ConversationJoinResponseMetadata +public class ConversationJoinResponseMetadata : SlackObject { public IList Warnings { get; set; } = []; } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/ConversationListResponse.cs b/SlackNet/WebApi/Responses/ConversationListResponse.cs index e373885..13c15c1 100644 --- a/SlackNet/WebApi/Responses/ConversationListResponse.cs +++ b/SlackNet/WebApi/Responses/ConversationListResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ConversationListResponse +public class ConversationListResponse : SlackObject { public IList Channels { get; set; } = []; public ResponseMetadata ResponseMetadata { get; set; } = new(); diff --git a/SlackNet/WebApi/Responses/ConversationMembersResponse.cs b/SlackNet/WebApi/Responses/ConversationMembersResponse.cs index a2939ad..6c8b348 100644 --- a/SlackNet/WebApi/Responses/ConversationMembersResponse.cs +++ b/SlackNet/WebApi/Responses/ConversationMembersResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ConversationMembersResponse +public class ConversationMembersResponse : SlackObject { public IList Members { get; set; } = []; public ResponseMetadata ResponseMetadata { get; set; } = new(); diff --git a/SlackNet/WebApi/Responses/ConversationMessagesResponse.cs b/SlackNet/WebApi/Responses/ConversationMessagesResponse.cs index 291d281..447b99b 100644 --- a/SlackNet/WebApi/Responses/ConversationMessagesResponse.cs +++ b/SlackNet/WebApi/Responses/ConversationMessagesResponse.cs @@ -3,7 +3,7 @@ namespace SlackNet.WebApi; -public class ConversationMessagesResponse +public class ConversationMessagesResponse : SlackObject { public IList Messages { get; set; } = []; public bool HasMore { get; set; } diff --git a/SlackNet/WebApi/Responses/ConversationOpenResponse.cs b/SlackNet/WebApi/Responses/ConversationOpenResponse.cs index 1063f27..b44b99b 100644 --- a/SlackNet/WebApi/Responses/ConversationOpenResponse.cs +++ b/SlackNet/WebApi/Responses/ConversationOpenResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class ConversationOpenResponse +public class ConversationOpenResponse : SlackObject { public bool NoOp { get; set; } public bool AlreadyOpen { get; set; } diff --git a/SlackNet/WebApi/Responses/DndResponse.cs b/SlackNet/WebApi/Responses/DndResponse.cs index 9389db7..b6556aa 100644 --- a/SlackNet/WebApi/Responses/DndResponse.cs +++ b/SlackNet/WebApi/Responses/DndResponse.cs @@ -3,7 +3,7 @@ namespace SlackNet.WebApi; -public class DndResponse +public class DndResponse : SlackObject { public bool DndEnabled { get; set; } public int NextDndStartTs { get; set; } diff --git a/SlackNet/WebApi/Responses/ErrorResponseMetadata.cs b/SlackNet/WebApi/Responses/ErrorResponseMetadata.cs index 741936c..17fb2a5 100644 --- a/SlackNet/WebApi/Responses/ErrorResponseMetadata.cs +++ b/SlackNet/WebApi/Responses/ErrorResponseMetadata.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ErrorResponseMetadata +public class ErrorResponseMetadata : SlackObject { public IList Messages { get; set; } = []; } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/ExternalTeamsListResponse.cs b/SlackNet/WebApi/Responses/ExternalTeamsListResponse.cs index 75f7289..29ea3f8 100644 --- a/SlackNet/WebApi/Responses/ExternalTeamsListResponse.cs +++ b/SlackNet/WebApi/Responses/ExternalTeamsListResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ExternalTeamsListResponse +public class ExternalTeamsListResponse : SlackObject { public IList Organizations { get; set; } public int TotalCount { get; set; } diff --git a/SlackNet/WebApi/Responses/FeaturedWorkflowsListResponse.cs b/SlackNet/WebApi/Responses/FeaturedWorkflowsListResponse.cs index e795fa4..659ff18 100644 --- a/SlackNet/WebApi/Responses/FeaturedWorkflowsListResponse.cs +++ b/SlackNet/WebApi/Responses/FeaturedWorkflowsListResponse.cs @@ -2,18 +2,18 @@ namespace SlackNet.WebApi; -public class FeaturedWorkflowsListResponse +public class FeaturedWorkflowsListResponse : SlackObject { public IList FeaturedWorkflows { get; set; } = new List(); } -public class ChannelFeaturedWorkflows +public class ChannelFeaturedWorkflows : SlackObject { public string ChannelId { get; set; } public IList Triggers { get; set; } = new List(); } -public class FeaturedTrigger +public class FeaturedTrigger : SlackObject { public string Id { get; set; } public string Title { get; set; } diff --git a/SlackNet/WebApi/Responses/FileListResponse.cs b/SlackNet/WebApi/Responses/FileListResponse.cs index 9ba3196..5d99386 100644 --- a/SlackNet/WebApi/Responses/FileListResponse.cs +++ b/SlackNet/WebApi/Responses/FileListResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class FileListResponse +public class FileListResponse : SlackObject { public IList Files { get; set; } = []; public Paging Paging { get; set; } = new(); diff --git a/SlackNet/WebApi/Responses/FileResponse.cs b/SlackNet/WebApi/Responses/FileResponse.cs index 0c875b1..32eee34 100644 --- a/SlackNet/WebApi/Responses/FileResponse.cs +++ b/SlackNet/WebApi/Responses/FileResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class FileResponse +public class FileResponse : SlackObject { public File File { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/FileSearchResponse.cs b/SlackNet/WebApi/Responses/FileSearchResponse.cs index d95643a..17e596d 100644 --- a/SlackNet/WebApi/Responses/FileSearchResponse.cs +++ b/SlackNet/WebApi/Responses/FileSearchResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class FileSearchResponse +public class FileSearchResponse : SlackObject { public string Query { get; set; } public SearchResults Files { get; set; } diff --git a/SlackNet/WebApi/Responses/FunctionPermissionsResponse.cs b/SlackNet/WebApi/Responses/FunctionPermissionsResponse.cs index 32e959e..b31b3e5 100644 --- a/SlackNet/WebApi/Responses/FunctionPermissionsResponse.cs +++ b/SlackNet/WebApi/Responses/FunctionPermissionsResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class FunctionPermissionsResponse +public class FunctionPermissionsResponse : SlackObject { public FunctionPermissionType PermissionType { get; set; } public IList Users { get; set; } diff --git a/SlackNet/WebApi/Responses/IdentityResponse.cs b/SlackNet/WebApi/Responses/IdentityResponse.cs index fb9e2e1..e098aa5 100644 --- a/SlackNet/WebApi/Responses/IdentityResponse.cs +++ b/SlackNet/WebApi/Responses/IdentityResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class IdentityResponse +public class IdentityResponse : SlackObject { public UserIdentity User { get; set; } public TeamIdentity Team { get; set; } diff --git a/SlackNet/WebApi/Responses/IntegrationLogRecord.cs b/SlackNet/WebApi/Responses/IntegrationLogRecord.cs index 72a3910..5ae55d4 100644 --- a/SlackNet/WebApi/Responses/IntegrationLogRecord.cs +++ b/SlackNet/WebApi/Responses/IntegrationLogRecord.cs @@ -3,7 +3,7 @@ namespace SlackNet.WebApi; -public class IntegrationLogRecord +public class IntegrationLogRecord : SlackObject { public string ServiceId { get; set; } public string ServiceType { get; set; } diff --git a/SlackNet/WebApi/Responses/IntegrationLogsResponse.cs b/SlackNet/WebApi/Responses/IntegrationLogsResponse.cs index 881ed5a..299636a 100644 --- a/SlackNet/WebApi/Responses/IntegrationLogsResponse.cs +++ b/SlackNet/WebApi/Responses/IntegrationLogsResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class IntegrationLogsResponse +public class IntegrationLogsResponse : SlackObject { public IList Logs { get; set; } public Paging Paging { get; set; } diff --git a/SlackNet/WebApi/Responses/InviteRequestListResponse.cs b/SlackNet/WebApi/Responses/InviteRequestListResponse.cs index 4f2f8a5..4111b2b 100644 --- a/SlackNet/WebApi/Responses/InviteRequestListResponse.cs +++ b/SlackNet/WebApi/Responses/InviteRequestListResponse.cs @@ -3,7 +3,7 @@ namespace SlackNet.WebApi; -public class InviteRequestListResponse +public class InviteRequestListResponse : SlackObject { public IList InviteRequests { get; set; } = []; public ResponseMetadata ResponseMetadata { get; set; } = new(); diff --git a/SlackNet/WebApi/Responses/InviteSharedResponse.cs b/SlackNet/WebApi/Responses/InviteSharedResponse.cs index 90ede18..99650e2 100644 --- a/SlackNet/WebApi/Responses/InviteSharedResponse.cs +++ b/SlackNet/WebApi/Responses/InviteSharedResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class InviteSharedResponse +public class InviteSharedResponse : SlackObject { public string InviteId { get; set; } public bool IsLegacySharedChannel { get; set; } diff --git a/SlackNet/WebApi/Responses/ListDownloadResponse.cs b/SlackNet/WebApi/Responses/ListDownloadResponse.cs index f1d2a0f..d3a347a 100644 --- a/SlackNet/WebApi/Responses/ListDownloadResponse.cs +++ b/SlackNet/WebApi/Responses/ListDownloadResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class ListDownloadResponse +public class ListDownloadResponse : SlackObject { public string Status { get; set; } public string Url { get; set; } diff --git a/SlackNet/WebApi/Responses/ListItemsResponse.cs b/SlackNet/WebApi/Responses/ListItemsResponse.cs index d853ffb..99bdbfe 100644 --- a/SlackNet/WebApi/Responses/ListItemsResponse.cs +++ b/SlackNet/WebApi/Responses/ListItemsResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ListItemsResponse +public class ListItemsResponse : SlackObject { public IList Items { get; set; } public ResponseMetadata ResponseMetadata { get; set; } diff --git a/SlackNet/WebApi/Responses/Login.cs b/SlackNet/WebApi/Responses/Login.cs index 7758b91..9740392 100644 --- a/SlackNet/WebApi/Responses/Login.cs +++ b/SlackNet/WebApi/Responses/Login.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class Login +public class Login : SlackObject { public string UserId { get; set; } public string Username { get; set; } diff --git a/SlackNet/WebApi/Responses/MessageSearchResponse.cs b/SlackNet/WebApi/Responses/MessageSearchResponse.cs index 41185ae..39257d7 100644 --- a/SlackNet/WebApi/Responses/MessageSearchResponse.cs +++ b/SlackNet/WebApi/Responses/MessageSearchResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class MessageSearchResponse +public class MessageSearchResponse : SlackObject { public string Query { get; set; } public SearchResults Messages { get; set; } diff --git a/SlackNet/WebApi/Responses/MessageTsResponse.cs b/SlackNet/WebApi/Responses/MessageTsResponse.cs index d125727..6956145 100644 --- a/SlackNet/WebApi/Responses/MessageTsResponse.cs +++ b/SlackNet/WebApi/Responses/MessageTsResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class MessageTsResponse +public class MessageTsResponse : SlackObject { public string Channel { get; set; } public string Ts { get; set; } diff --git a/SlackNet/WebApi/Responses/MessageUpdate.cs b/SlackNet/WebApi/Responses/MessageUpdate.cs index bee50f2..09a9de8 100644 --- a/SlackNet/WebApi/Responses/MessageUpdate.cs +++ b/SlackNet/WebApi/Responses/MessageUpdate.cs @@ -3,7 +3,7 @@ namespace SlackNet.WebApi; -public class MessageUpdate +public class MessageUpdate : SlackObject { /// /// Timestamp of the message to be updated. diff --git a/SlackNet/WebApi/Responses/MessageUpdateResponse.cs b/SlackNet/WebApi/Responses/MessageUpdateResponse.cs index d2eb627..6f409c1 100644 --- a/SlackNet/WebApi/Responses/MessageUpdateResponse.cs +++ b/SlackNet/WebApi/Responses/MessageUpdateResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class MessageUpdateResponse +public class MessageUpdateResponse : SlackObject { public string Channel { get; set; } public string Ts { get; set; } diff --git a/SlackNet/WebApi/Responses/MigrationResponse.cs b/SlackNet/WebApi/Responses/MigrationResponse.cs index 7ed6d32..877a94c 100644 --- a/SlackNet/WebApi/Responses/MigrationResponse.cs +++ b/SlackNet/WebApi/Responses/MigrationResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class MigrationResponse +public class MigrationResponse : SlackObject { public string TeamId { get; set; } public string EnterpriseId { get; set; } diff --git a/SlackNet/WebApi/Responses/OauthAccessResponse.cs b/SlackNet/WebApi/Responses/OauthAccessResponse.cs index 8bc8b5f..a2920a5 100644 --- a/SlackNet/WebApi/Responses/OauthAccessResponse.cs +++ b/SlackNet/WebApi/Responses/OauthAccessResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class OauthAccessResponse +public class OauthAccessResponse : SlackObject { public string AccessToken { get; set; } public string Scope { get; set; } diff --git a/SlackNet/WebApi/Responses/OauthV2AccessResponse.cs b/SlackNet/WebApi/Responses/OauthV2AccessResponse.cs index d59ec09..672bf80 100644 --- a/SlackNet/WebApi/Responses/OauthV2AccessResponse.cs +++ b/SlackNet/WebApi/Responses/OauthV2AccessResponse.cs @@ -35,7 +35,7 @@ public class OauthV2AccessResponse : OauthAccessResponse public IncomingWebhook IncomingWebhook { get; set; } } -public class IncomingWebhook +public class IncomingWebhook : SlackObject { /// /// The name of the channel that the user selected as a destination for webhook messages. diff --git a/SlackNet/WebApi/Responses/OpenIdTokenResponse.cs b/SlackNet/WebApi/Responses/OpenIdTokenResponse.cs index e0c9797..62f9a6e 100644 --- a/SlackNet/WebApi/Responses/OpenIdTokenResponse.cs +++ b/SlackNet/WebApi/Responses/OpenIdTokenResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class OpenIdTokenResponse +public class OpenIdTokenResponse : SlackObject { public bool Ok { get; set; } public string AccessToken { get; set; } diff --git a/SlackNet/WebApi/Responses/OpenIdUserInfoResponse.cs b/SlackNet/WebApi/Responses/OpenIdUserInfoResponse.cs index 534b351..e8354bb 100644 --- a/SlackNet/WebApi/Responses/OpenIdUserInfoResponse.cs +++ b/SlackNet/WebApi/Responses/OpenIdUserInfoResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class OpenIdUserInfoResponse +public class OpenIdUserInfoResponse : SlackObject { public string Ok { get; set; } public string Sub { get; set; } diff --git a/SlackNet/WebApi/Responses/Pagination.cs b/SlackNet/WebApi/Responses/Pagination.cs index f8b1636..6aa159d 100644 --- a/SlackNet/WebApi/Responses/Pagination.cs +++ b/SlackNet/WebApi/Responses/Pagination.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class Pagination +public class Pagination : SlackObject { public int TotalCount { get; set; } public int Page { get; set; } diff --git a/SlackNet/WebApi/Responses/Paging.cs b/SlackNet/WebApi/Responses/Paging.cs index 6120545..14dbee7 100644 --- a/SlackNet/WebApi/Responses/Paging.cs +++ b/SlackNet/WebApi/Responses/Paging.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class Paging +public class Paging : SlackObject { public int Count { get; set; } public int Total { get; set; } diff --git a/SlackNet/WebApi/Responses/PermalinkResponse.cs b/SlackNet/WebApi/Responses/PermalinkResponse.cs index d344245..8f7b74f 100644 --- a/SlackNet/WebApi/Responses/PermalinkResponse.cs +++ b/SlackNet/WebApi/Responses/PermalinkResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class PermalinkResponse +public class PermalinkResponse : SlackObject { public string Channel { get; set; } public string Permalink { get; set; } diff --git a/SlackNet/WebApi/Responses/PostEphemeralResponse.cs b/SlackNet/WebApi/Responses/PostEphemeralResponse.cs index e686f57..2a2771e 100644 --- a/SlackNet/WebApi/Responses/PostEphemeralResponse.cs +++ b/SlackNet/WebApi/Responses/PostEphemeralResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class PostEphemeralResponse +public class PostEphemeralResponse : SlackObject { public string MessageTs { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/PostMessageResponse.cs b/SlackNet/WebApi/Responses/PostMessageResponse.cs index 0437241..f32cca0 100644 --- a/SlackNet/WebApi/Responses/PostMessageResponse.cs +++ b/SlackNet/WebApi/Responses/PostMessageResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class PostMessageResponse +public class PostMessageResponse : SlackObject { public string Ts { get; set; } public string Channel { get; set; } diff --git a/SlackNet/WebApi/Responses/ReactionItemListResponse.cs b/SlackNet/WebApi/Responses/ReactionItemListResponse.cs index 91ed2fe..cab859e 100644 --- a/SlackNet/WebApi/Responses/ReactionItemListResponse.cs +++ b/SlackNet/WebApi/Responses/ReactionItemListResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ReactionItemListResponse +public class ReactionItemListResponse : SlackObject { public IList Items { get; set; } = []; public Paging Paging { get; set; } = new(); diff --git a/SlackNet/WebApi/Responses/ResponseMetadata.cs b/SlackNet/WebApi/Responses/ResponseMetadata.cs index 9b826fa..6657ec3 100644 --- a/SlackNet/WebApi/Responses/ResponseMetadata.cs +++ b/SlackNet/WebApi/Responses/ResponseMetadata.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class ResponseMetadata +public class ResponseMetadata : SlackObject { public string NextCursor { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/ScheduleMessageResponse.cs b/SlackNet/WebApi/Responses/ScheduleMessageResponse.cs index 2b3ecd5..6780237 100644 --- a/SlackNet/WebApi/Responses/ScheduleMessageResponse.cs +++ b/SlackNet/WebApi/Responses/ScheduleMessageResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class ScheduleMessageResponse +public class ScheduleMessageResponse : SlackObject { public string Channel { get; set; } public string ScheduledMessageId { get; set; } diff --git a/SlackNet/WebApi/Responses/ScheduledMessageListResponse.cs b/SlackNet/WebApi/Responses/ScheduledMessageListResponse.cs index 6de4467..e3ace08 100644 --- a/SlackNet/WebApi/Responses/ScheduledMessageListResponse.cs +++ b/SlackNet/WebApi/Responses/ScheduledMessageListResponse.cs @@ -2,13 +2,13 @@ namespace SlackNet.WebApi; -public class ScheduledMessageListResponse +public class ScheduledMessageListResponse : SlackObject { public IList ScheduledMessages { get; set; } = []; public ResponseMetadata ResponseMetadata { get; set; } = new(); } -public class ScheduledMessage +public class ScheduledMessage : SlackObject { public string Id { get; set; } public string ChannelId { get; set; } diff --git a/SlackNet/WebApi/Responses/SearchResponse.cs b/SlackNet/WebApi/Responses/SearchResponse.cs index 58e280d..49dc3c9 100644 --- a/SlackNet/WebApi/Responses/SearchResponse.cs +++ b/SlackNet/WebApi/Responses/SearchResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class SearchResponse +public class SearchResponse : SlackObject { public string Query { get; set; } public SearchResults Messages { get; set; } diff --git a/SlackNet/WebApi/Responses/SearchResults.cs b/SlackNet/WebApi/Responses/SearchResults.cs index 5751655..08f88b3 100644 --- a/SlackNet/WebApi/Responses/SearchResults.cs +++ b/SlackNet/WebApi/Responses/SearchResults.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class SearchResults +public class SearchResults : SlackObject { public int Total { get; set; } public Pagination Pagination { get; set; } diff --git a/SlackNet/WebApi/Responses/SlackListResponse.cs b/SlackNet/WebApi/Responses/SlackListResponse.cs index 5326fde..8640758 100644 --- a/SlackNet/WebApi/Responses/SlackListResponse.cs +++ b/SlackNet/WebApi/Responses/SlackListResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class SlackListResponse +public class SlackListResponse : SlackObject { public string ListId { get; set; } public ListMetadata ListMetadata { get; set; } diff --git a/SlackNet/WebApi/Responses/SnoozeResponse.cs b/SlackNet/WebApi/Responses/SnoozeResponse.cs index e9b8abd..63d15f2 100644 --- a/SlackNet/WebApi/Responses/SnoozeResponse.cs +++ b/SlackNet/WebApi/Responses/SnoozeResponse.cs @@ -3,7 +3,7 @@ namespace SlackNet.WebApi; -public class SnoozeResponse +public class SnoozeResponse : SlackObject { public bool SnoozeEnabled { get; set; } public int SnoozeEndtime { get; set; } diff --git a/SlackNet/WebApi/Responses/TeamIdentity.cs b/SlackNet/WebApi/Responses/TeamIdentity.cs index 90403c1..1228edb 100644 --- a/SlackNet/WebApi/Responses/TeamIdentity.cs +++ b/SlackNet/WebApi/Responses/TeamIdentity.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class TeamIdentity +public class TeamIdentity : SlackObject { public string Id { get; set; } public string Name { get; set; } diff --git a/SlackNet/WebApi/Responses/TeamPreferences.cs b/SlackNet/WebApi/Responses/TeamPreferences.cs index 9025a18..5133191 100644 --- a/SlackNet/WebApi/Responses/TeamPreferences.cs +++ b/SlackNet/WebApi/Responses/TeamPreferences.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class TeamPreferences +public class TeamPreferences : SlackObject { public bool AllowMessageDeletion { get; set; } public bool DisplayRealNames { get; set; } diff --git a/SlackNet/WebApi/Responses/TokenRotationResponse.cs b/SlackNet/WebApi/Responses/TokenRotationResponse.cs index 2e28527..a049d8c 100644 --- a/SlackNet/WebApi/Responses/TokenRotationResponse.cs +++ b/SlackNet/WebApi/Responses/TokenRotationResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class TokenRotationResponse +public class TokenRotationResponse : SlackObject { public string Token { get; set; } public string RefreshToken { get; set; } diff --git a/SlackNet/WebApi/Responses/TriggerPermissionsResponse.cs b/SlackNet/WebApi/Responses/TriggerPermissionsResponse.cs index d074266..7b6396d 100644 --- a/SlackNet/WebApi/Responses/TriggerPermissionsResponse.cs +++ b/SlackNet/WebApi/Responses/TriggerPermissionsResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.WebApi; -public class TriggerPermissionsResponse +public class TriggerPermissionsResponse : SlackObject { public TriggerPermissionType PermissionType { get; set; } public IList UserIds { get; set; } = []; diff --git a/SlackNet/WebApi/Responses/UploadUrlExternalResponse.cs b/SlackNet/WebApi/Responses/UploadUrlExternalResponse.cs index 00286ac..01716d9 100644 --- a/SlackNet/WebApi/Responses/UploadUrlExternalResponse.cs +++ b/SlackNet/WebApi/Responses/UploadUrlExternalResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class UploadUrlExternalResponse +public class UploadUrlExternalResponse : SlackObject { public string UploadUrl { get; set; } public string FileId { get; set; } diff --git a/SlackNet/WebApi/Responses/UserIdentity.cs b/SlackNet/WebApi/Responses/UserIdentity.cs index 6763960..3324502 100644 --- a/SlackNet/WebApi/Responses/UserIdentity.cs +++ b/SlackNet/WebApi/Responses/UserIdentity.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class UserIdentity +public class UserIdentity : SlackObject { public string Id { get; set; } public string Name { get; set; } diff --git a/SlackNet/WebApi/Responses/UserListResponse.cs b/SlackNet/WebApi/Responses/UserListResponse.cs index 6a12e24..100d12c 100644 --- a/SlackNet/WebApi/Responses/UserListResponse.cs +++ b/SlackNet/WebApi/Responses/UserListResponse.cs @@ -4,7 +4,7 @@ namespace SlackNet.WebApi; -public class UserListResponse +public class UserListResponse : SlackObject { public IList Members { get; set; } = []; public int CacheTs { get; set; } diff --git a/SlackNet/WebApi/Responses/ViewResponse.cs b/SlackNet/WebApi/Responses/ViewResponse.cs index 16a6ef6..4cd8642 100644 --- a/SlackNet/WebApi/Responses/ViewResponse.cs +++ b/SlackNet/WebApi/Responses/ViewResponse.cs @@ -1,6 +1,6 @@ namespace SlackNet.WebApi; -public class ViewResponse +public class ViewResponse : SlackObject { public ViewInfo View { get; set; } } \ No newline at end of file diff --git a/SlackNet/WebApi/Responses/WorkflowStepsVersionsResponse.cs b/SlackNet/WebApi/Responses/WorkflowStepsVersionsResponse.cs index 8438453..cdde329 100644 --- a/SlackNet/WebApi/Responses/WorkflowStepsVersionsResponse.cs +++ b/SlackNet/WebApi/Responses/WorkflowStepsVersionsResponse.cs @@ -2,12 +2,12 @@ namespace SlackNet.WebApi; -public class WorkflowStepsVersionsResponse +public class WorkflowStepsVersionsResponse : SlackObject { public IList StepsVersions { get; set; } = []; } -public class WorkflowStepsVersion +public class WorkflowStepsVersion : SlackObject { public string Title { get; set; } public string WorkflowId { get; set; } diff --git a/SlackNet/WebApi/StreamChunk.cs b/SlackNet/WebApi/StreamChunk.cs index d14e0d8..3ac4a2c 100644 --- a/SlackNet/WebApi/StreamChunk.cs +++ b/SlackNet/WebApi/StreamChunk.cs @@ -8,7 +8,7 @@ namespace SlackNet.WebApi; /// A stream that was started with chunks must be appended to with chunks, and a stream that was started with markdown text must be appended to with markdown text. /// /// See the Slack documentation for more information. -public abstract class StreamChunk(string type) +public abstract class StreamChunk(string type) : SlackObject { /// The kind of content carried by this chunk. public string Type { get; set; } = type; From 2db51a38efd596d76c94c614d84006364103fac0 Mon Sep 17 00:00:00 2001 From: John Johansson <1345217+we4sz@users.noreply.github.com> Date: Sat, 31 Oct 2026 09:21:14 +0100 Subject: [PATCH 4/8] Adding ExtraProperties to blocks and elements --- SlackNet/Blocks/Block.cs | 2 +- SlackNet/Blocks/BlockAction.cs | 2 +- SlackNet/Blocks/BlockElement.cs | 2 +- SlackNet/Blocks/ConfirmationDialog.cs | 2 +- SlackNet/Blocks/ContextActionsBlock.cs | 2 +- SlackNet/Blocks/ConversationFilter.cs | 2 +- SlackNet/Blocks/DataVisualizationBlock.cs | 10 +++++----- SlackNet/Blocks/DispatchActionConfig.cs | 2 +- SlackNet/Blocks/FeedbackButtons.cs | 2 +- SlackNet/Blocks/ImageFileReference.cs | 2 +- SlackNet/Blocks/Option.cs | 2 +- SlackNet/Blocks/OptionGroup.cs | 2 +- SlackNet/Blocks/RichTextBlock.cs | 6 +++--- SlackNet/Blocks/SlackIcon.cs | 2 +- SlackNet/Blocks/TableBlock.cs | 4 ++-- SlackNet/Blocks/TaskCardBlock.cs | 2 +- SlackNet/Blocks/TextObject.cs | 2 +- 17 files changed, 24 insertions(+), 24 deletions(-) diff --git a/SlackNet/Blocks/Block.cs b/SlackNet/Blocks/Block.cs index 329d372..da48c24 100644 --- a/SlackNet/Blocks/Block.cs +++ b/SlackNet/Blocks/Block.cs @@ -1,6 +1,6 @@ namespace SlackNet.Blocks; -public abstract class Block(string type) +public abstract class Block(string type) : SlackObject { public string Type { get; } = type; diff --git a/SlackNet/Blocks/BlockAction.cs b/SlackNet/Blocks/BlockAction.cs index 13dceef..5970bae 100644 --- a/SlackNet/Blocks/BlockAction.cs +++ b/SlackNet/Blocks/BlockAction.cs @@ -3,7 +3,7 @@ namespace SlackNet.Blocks; -public class BlockAction +public class BlockAction : SlackObject { public string Type { get; set; } public string ActionId { get; set; } diff --git a/SlackNet/Blocks/BlockElement.cs b/SlackNet/Blocks/BlockElement.cs index 16d11bd..957efa3 100644 --- a/SlackNet/Blocks/BlockElement.cs +++ b/SlackNet/Blocks/BlockElement.cs @@ -5,7 +5,7 @@ public interface IBlockElement string Type { get; } } -public abstract class BlockElement(string type) : IBlockElement +public abstract class BlockElement(string type) : SlackObject, IBlockElement { public string Type { get; } = type; } \ No newline at end of file diff --git a/SlackNet/Blocks/ConfirmationDialog.cs b/SlackNet/Blocks/ConfirmationDialog.cs index 0fb84af..96ed4ad 100644 --- a/SlackNet/Blocks/ConfirmationDialog.cs +++ b/SlackNet/Blocks/ConfirmationDialog.cs @@ -4,7 +4,7 @@ /// An object that defines a dialog that provides a confirmation step to any interactive element. /// This dialog will ask the user to confirm their action by offering a confirm and deny buttons. /// -public class ConfirmationDialog +public class ConfirmationDialog : SlackObject { /// /// A plain text object that defines the dialog's title. diff --git a/SlackNet/Blocks/ContextActionsBlock.cs b/SlackNet/Blocks/ContextActionsBlock.cs index 117440d..33bd386 100644 --- a/SlackNet/Blocks/ContextActionsBlock.cs +++ b/SlackNet/Blocks/ContextActionsBlock.cs @@ -8,7 +8,7 @@ public class ContextActionsBlock() : Block("context_actions") public IList Elements { get; set; } = []; } -public abstract class ContextActionsElement(string type) +public abstract class ContextActionsElement(string type) : SlackObject { public string Type { get; set; } = type; public string ActionId { get; set; } diff --git a/SlackNet/Blocks/ConversationFilter.cs b/SlackNet/Blocks/ConversationFilter.cs index c03ea17..89ef873 100644 --- a/SlackNet/Blocks/ConversationFilter.cs +++ b/SlackNet/Blocks/ConversationFilter.cs @@ -5,7 +5,7 @@ namespace SlackNet.Blocks; /// /// Provides a way to filter the list of options in a or . /// -public class ConversationFilter +public class ConversationFilter : SlackObject { /// /// Indicates which type of conversations should be included in the list. diff --git a/SlackNet/Blocks/DataVisualizationBlock.cs b/SlackNet/Blocks/DataVisualizationBlock.cs index 1f88c2e..5d2d090 100644 --- a/SlackNet/Blocks/DataVisualizationBlock.cs +++ b/SlackNet/Blocks/DataVisualizationBlock.cs @@ -23,7 +23,7 @@ public class DataVisualizationBlock() : Block("data_visualization") /// /// A chart displayed by a . /// -public abstract class DataVisualizationChart(string type) +public abstract class DataVisualizationChart(string type) : SlackObject { /// /// The type of chart. @@ -80,7 +80,7 @@ public class LineChart() : AxisChart("line"); /// /// A labeled slice in a . /// -public class ChartSegment +public class ChartSegment : SlackObject { /// /// Display name for this slice, shown in the legend and on hover. @@ -96,7 +96,7 @@ public class ChartSegment /// /// A named set of ordered data points. /// -public class DataSeries +public class DataSeries : SlackObject { /// /// Human-readable identifier displayed in the chart legend. @@ -112,7 +112,7 @@ public class DataSeries /// /// A value belonging to an x-axis category. /// -public class DataPoint +public class DataPoint : SlackObject { /// /// The x-axis category this point belongs to. @@ -128,7 +128,7 @@ public class DataPoint /// /// X-axis categories and optional axis titles. /// -public class AxisConfig +public class AxisConfig : SlackObject { /// /// Category labels for the x-axis, in display order. diff --git a/SlackNet/Blocks/DispatchActionConfig.cs b/SlackNet/Blocks/DispatchActionConfig.cs index 1d70e93..4644c56 100644 --- a/SlackNet/Blocks/DispatchActionConfig.cs +++ b/SlackNet/Blocks/DispatchActionConfig.cs @@ -5,7 +5,7 @@ namespace SlackNet.Blocks; /// /// Determines when a element will return a interaction payload. /// -public class DispatchActionConfig +public class DispatchActionConfig : SlackObject { /// /// An array of that you would like to receive a payload for. diff --git a/SlackNet/Blocks/FeedbackButtons.cs b/SlackNet/Blocks/FeedbackButtons.cs index 983aeb9..e1ce325 100644 --- a/SlackNet/Blocks/FeedbackButtons.cs +++ b/SlackNet/Blocks/FeedbackButtons.cs @@ -7,7 +7,7 @@ public class FeedbackButtons() : ContextActionsElement("feedback_buttons") public FeedbackButton NegativeButton { get; set; } = new(); } -public class FeedbackButton +public class FeedbackButton : SlackObject { public PlainText Text { get; set; } public string Value { get; set; } diff --git a/SlackNet/Blocks/ImageFileReference.cs b/SlackNet/Blocks/ImageFileReference.cs index 7462b55..11e8719 100644 --- a/SlackNet/Blocks/ImageFileReference.cs +++ b/SlackNet/Blocks/ImageFileReference.cs @@ -3,7 +3,7 @@ /// /// Defines an object containing Slack file information to be used in an image block or image element. /// -public class ImageFileReference +public class ImageFileReference : SlackObject { /// /// This URL can be the or the of the Slack . diff --git a/SlackNet/Blocks/Option.cs b/SlackNet/Blocks/Option.cs index ebc83f7..17d55f8 100644 --- a/SlackNet/Blocks/Option.cs +++ b/SlackNet/Blocks/Option.cs @@ -3,7 +3,7 @@ /// /// An object that represents a single selectable item in a select menu. /// -public class Option +public class Option : SlackObject { /// /// A plain text object that defines the text shown in the option on the menu. diff --git a/SlackNet/Blocks/OptionGroup.cs b/SlackNet/Blocks/OptionGroup.cs index c1c0915..c7eaded 100644 --- a/SlackNet/Blocks/OptionGroup.cs +++ b/SlackNet/Blocks/OptionGroup.cs @@ -5,7 +5,7 @@ namespace SlackNet.Blocks; /// /// Provides a way to group options in a select menu. /// -public class OptionGroup +public class OptionGroup : SlackObject { /// /// A plain text object that defines the label shown above this group of options. diff --git a/SlackNet/Blocks/RichTextBlock.cs b/SlackNet/Blocks/RichTextBlock.cs index 2292e88..ce4fe33 100644 --- a/SlackNet/Blocks/RichTextBlock.cs +++ b/SlackNet/Blocks/RichTextBlock.cs @@ -18,7 +18,7 @@ public class RichTextBlock() : Block("rich_text") public IList Elements { get; set; } = []; } -public abstract class RichTextElement(string type) +public abstract class RichTextElement(string type) : SlackObject { public string Type { get; set; } = type; } @@ -32,7 +32,7 @@ public class RichTextSection() : RichTextElement("rich_text_section") public IList Elements { get; set; } = []; } -public abstract class RichTextSectionElement(string type) +public abstract class RichTextSectionElement(string type) : SlackObject { public string Type { get; set; } = type; } @@ -288,7 +288,7 @@ public class RichTextListRecord() : RichTextElement("list_record") /// /// Rich text styling. Note that not all properties are supported by all elements. /// -public class RichTextStyle +public class RichTextStyle : SlackObject { [IgnoreIfDefault] public bool Bold { get; set; } diff --git a/SlackNet/Blocks/SlackIcon.cs b/SlackNet/Blocks/SlackIcon.cs index 0f6a4b3..b1639e4 100644 --- a/SlackNet/Blocks/SlackIcon.cs +++ b/SlackNet/Blocks/SlackIcon.cs @@ -6,7 +6,7 @@ namespace SlackNet.Blocks; /// Defines Slack icon information for use in a . /// /// See the Slack documentation for more information. -public class SlackIcon +public class SlackIcon : SlackObject { /// /// The type of composition object. Always icon. diff --git a/SlackNet/Blocks/TableBlock.cs b/SlackNet/Blocks/TableBlock.cs index 47921f0..1a7000b 100644 --- a/SlackNet/Blocks/TableBlock.cs +++ b/SlackNet/Blocks/TableBlock.cs @@ -9,7 +9,7 @@ public class TableBlock() : Block("table") public IList ColumnSettings { get; set; } = []; } -public abstract class TableCell(string type) +public abstract class TableCell(string type) : SlackObject { public string Type { get; set; } = type; } @@ -38,7 +38,7 @@ public class RawNumberCell() : TableCell("raw_number") public string Text { get; set; } } -public class TableColumnSettings +public class TableColumnSettings : SlackObject { public ColumnAlignment Align { get; set; } public bool IsWrapped { get; set; } diff --git a/SlackNet/Blocks/TaskCardBlock.cs b/SlackNet/Blocks/TaskCardBlock.cs index 3a1cb78..4faf9df 100644 --- a/SlackNet/Blocks/TaskCardBlock.cs +++ b/SlackNet/Blocks/TaskCardBlock.cs @@ -54,7 +54,7 @@ public class TaskCardBlock() : Block("task_card") /// /// One of Slack's named task icons. /// -public class TaskCardIcon +public class TaskCardIcon : SlackObject { public string Type { get; set; } = "icon"; diff --git a/SlackNet/Blocks/TextObject.cs b/SlackNet/Blocks/TextObject.cs index c36a443..60f6fb7 100644 --- a/SlackNet/Blocks/TextObject.cs +++ b/SlackNet/Blocks/TextObject.cs @@ -3,7 +3,7 @@ /// /// An object containing some text, formatted either as plain text or using Slack's "mrkdwn". /// -public abstract class TextObject +public abstract class TextObject : SlackObject { protected TextObject(string type) { From 7dd490d4dfde3dd293f7c808e42e5f8ac0756a97 Mon Sep 17 00:00:00 2001 From: John Johansson <1345217+we4sz@users.noreply.github.com> Date: Sat, 31 Oct 2026 09:21:14 +0100 Subject: [PATCH 5/8] Adding ExtraProperties to the interaction, event, RTM and Socket Mode models --- SlackNet/Events/AppContextChanged.cs | 4 ++-- SlackNet/Events/ChannelCreated.cs | 2 +- SlackNet/Events/ChannelRename.cs | 2 +- SlackNet/Events/DeletedProfile.cs | 2 +- SlackNet/Events/EventRequest.cs | 2 +- SlackNet/Events/FileId.cs | 2 +- SlackNet/Events/LinkShared.cs | 2 +- SlackNet/Events/Messages/AssistantAppThread.cs | 2 +- SlackNet/Events/Messages/MessageEvent.cs | 6 +++--- SlackNet/Events/ReorderedProfile.cs | 2 +- SlackNet/Events/ReorderedProfileField.cs | 2 +- SlackNet/Interaction/ActionElement.cs | 2 +- SlackNet/Interaction/BlockOptionsResponse.cs | 2 +- SlackNet/Interaction/Container.cs | 2 +- SlackNet/Interaction/Dialog.cs | 2 +- SlackNet/Interaction/DialogElement.cs | 2 +- SlackNet/Interaction/DialogError.cs | 2 +- SlackNet/Interaction/DialogErrorResponse.cs | 2 +- SlackNet/Interaction/InteractionRequest.cs | 2 +- SlackNet/Interaction/MessageResponse.cs | 2 +- SlackNet/Interaction/OptionsRequestBase.cs | 2 +- SlackNet/Interaction/OptionsResponse.cs | 2 +- SlackNet/Interaction/SelectOption.cs | 2 +- SlackNet/Interaction/SlashCommand.cs | 2 +- SlackNet/Interaction/SlashCommandResponse.cs | 2 +- SlackNet/Interaction/ViewSubmissionResponse.cs | 2 +- SlackNet/Rtm/Error.cs | 2 +- SlackNet/Rtm/MessageReply.cs | 2 +- SlackNet/Rtm/OutgoingRtmEvent.cs | 2 +- SlackNet/Rtm/Self.cs | 2 +- SlackNet/SocketMode/Acknowledgement.cs | 2 +- SlackNet/SocketMode/Disconnect.cs | 2 +- SlackNet/SocketMode/Hello.cs | 4 ++-- SlackNet/SocketMode/RawSocketMessage.cs | 2 +- SlackNet/SocketMode/SocketMessage.cs | 2 +- 35 files changed, 39 insertions(+), 39 deletions(-) diff --git a/SlackNet/Events/AppContextChanged.cs b/SlackNet/Events/AppContextChanged.cs index 14038d3..db73ece 100644 --- a/SlackNet/Events/AppContextChanged.cs +++ b/SlackNet/Events/AppContextChanged.cs @@ -17,7 +17,7 @@ public class AppContextChanged : Event /// /// Describes the Slack entities a user is viewing while interacting with an app. /// -public class AppContext +public class AppContext : SlackObject { /// /// The entities the user is currently viewing, ordered by relevance. @@ -28,7 +28,7 @@ public class AppContext /// /// Identifies one Slack entity in the user's current app context. /// -public class AppContextEntity +public class AppContextEntity : SlackObject { /// The kind of entity represented by . public string Type { get; set; } diff --git a/SlackNet/Events/ChannelCreated.cs b/SlackNet/Events/ChannelCreated.cs index 94caeef..4cc6542 100644 --- a/SlackNet/Events/ChannelCreated.cs +++ b/SlackNet/Events/ChannelCreated.cs @@ -8,7 +8,7 @@ public class ChannelCreated : Event public CreatedChannel Channel { get; set; } } -public class CreatedChannel +public class CreatedChannel : SlackObject { public string Id { get; set; } public string Name { get; set; } diff --git a/SlackNet/Events/ChannelRename.cs b/SlackNet/Events/ChannelRename.cs index fb0e72a..fbf72e3 100644 --- a/SlackNet/Events/ChannelRename.cs +++ b/SlackNet/Events/ChannelRename.cs @@ -8,7 +8,7 @@ public class ChannelRename : Event public RenamedChannel Channel { get; set; } } -public class RenamedChannel +public class RenamedChannel : SlackObject { public string Id { get; set; } public string Name { get; set; } diff --git a/SlackNet/Events/DeletedProfile.cs b/SlackNet/Events/DeletedProfile.cs index 5e038dc..ddb75c5 100644 --- a/SlackNet/Events/DeletedProfile.cs +++ b/SlackNet/Events/DeletedProfile.cs @@ -2,7 +2,7 @@ namespace SlackNet.Events; -public class DeletedProfile +public class DeletedProfile : SlackObject { public IList Fields { get; set; } } \ No newline at end of file diff --git a/SlackNet/Events/EventRequest.cs b/SlackNet/Events/EventRequest.cs index bd5ca9e..f39d970 100644 --- a/SlackNet/Events/EventRequest.cs +++ b/SlackNet/Events/EventRequest.cs @@ -1,6 +1,6 @@ namespace SlackNet.Events; -public class EventRequest +public class EventRequest : SlackObject { public string Type { get; set; } public string Token { get; set; } diff --git a/SlackNet/Events/FileId.cs b/SlackNet/Events/FileId.cs index 12927ae..76fd08e 100644 --- a/SlackNet/Events/FileId.cs +++ b/SlackNet/Events/FileId.cs @@ -1,6 +1,6 @@ namespace SlackNet.Events; -public class FileId +public class FileId : SlackObject { public string Id { get; set; } } \ No newline at end of file diff --git a/SlackNet/Events/LinkShared.cs b/SlackNet/Events/LinkShared.cs index f597eb0..d4a6ee5 100644 --- a/SlackNet/Events/LinkShared.cs +++ b/SlackNet/Events/LinkShared.cs @@ -21,7 +21,7 @@ public enum LinkSource Composer } -public class SharedLink +public class SharedLink : SlackObject { public string Domain { get; set; } public string Url { get; set; } diff --git a/SlackNet/Events/Messages/AssistantAppThread.cs b/SlackNet/Events/Messages/AssistantAppThread.cs index 4350f60..ae99205 100644 --- a/SlackNet/Events/Messages/AssistantAppThread.cs +++ b/SlackNet/Events/Messages/AssistantAppThread.cs @@ -12,7 +12,7 @@ public class AssistantAppThread : MessageEvent public AssistantAppThreadInfo AssistantThread { get; set; } } -public class AssistantAppThreadInfo +public class AssistantAppThreadInfo : SlackObject { public string Title { get; set; } public IList TitleBlocks { get; set; } = []; diff --git a/SlackNet/Events/Messages/MessageEvent.cs b/SlackNet/Events/Messages/MessageEvent.cs index 2b91c26..9645f37 100644 --- a/SlackNet/Events/Messages/MessageEvent.cs +++ b/SlackNet/Events/Messages/MessageEvent.cs @@ -32,14 +32,14 @@ public class MessageEvent : MessageEventBase public AppContext AppContext { get; set; } } -public class PinnedInfo +public class PinnedInfo : SlackObject { public string Channel { get; set; } public string PinnedBy { get; set; } public int? PinnedTs { get; set; } } -public class Edit +public class Edit : SlackObject { public string User { get; set; } public string Ts { get; set; } @@ -47,7 +47,7 @@ public class Edit public DateTime Timestamp => Ts.ToDateTime().GetValueOrDefault(); } -public class Reply +public class Reply : SlackObject { public string User { get; set; } public string Ts { get; set; } diff --git a/SlackNet/Events/ReorderedProfile.cs b/SlackNet/Events/ReorderedProfile.cs index 109d6e1..3518808 100644 --- a/SlackNet/Events/ReorderedProfile.cs +++ b/SlackNet/Events/ReorderedProfile.cs @@ -2,7 +2,7 @@ namespace SlackNet.Events; -public class ReorderedProfile +public class ReorderedProfile : SlackObject { public IList Fields { get; set; } } \ No newline at end of file diff --git a/SlackNet/Events/ReorderedProfileField.cs b/SlackNet/Events/ReorderedProfileField.cs index 34d9387..fb57d50 100644 --- a/SlackNet/Events/ReorderedProfileField.cs +++ b/SlackNet/Events/ReorderedProfileField.cs @@ -1,6 +1,6 @@ namespace SlackNet.Events; -public class ReorderedProfileField +public class ReorderedProfileField : SlackObject { public string Id { get; set; } public int Ordering { get; set; } diff --git a/SlackNet/Interaction/ActionElement.cs b/SlackNet/Interaction/ActionElement.cs index e54691c..d51f060 100644 --- a/SlackNet/Interaction/ActionElement.cs +++ b/SlackNet/Interaction/ActionElement.cs @@ -1,6 +1,6 @@ namespace SlackNet.Interaction; -public abstract class ActionElement +public abstract class ActionElement : SlackObject { protected ActionElement(string type) => Type = type; diff --git a/SlackNet/Interaction/BlockOptionsResponse.cs b/SlackNet/Interaction/BlockOptionsResponse.cs index f3a5413..ad682e0 100644 --- a/SlackNet/Interaction/BlockOptionsResponse.cs +++ b/SlackNet/Interaction/BlockOptionsResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.Interaction; -public class BlockOptionsResponse +public class BlockOptionsResponse : SlackObject { public IList Options { get; set; } public IList OptionGroups { get; set; } diff --git a/SlackNet/Interaction/Container.cs b/SlackNet/Interaction/Container.cs index 59d9fe5..606bbe1 100644 --- a/SlackNet/Interaction/Container.cs +++ b/SlackNet/Interaction/Container.cs @@ -1,6 +1,6 @@ namespace SlackNet.Interaction; -public class Container +public class Container : SlackObject { public string Type { get; set; } public string MessageTs { get; set; } diff --git a/SlackNet/Interaction/Dialog.cs b/SlackNet/Interaction/Dialog.cs index 7a9e4c9..198769b 100644 --- a/SlackNet/Interaction/Dialog.cs +++ b/SlackNet/Interaction/Dialog.cs @@ -2,7 +2,7 @@ namespace SlackNet.Interaction; -public class Dialog +public class Dialog : SlackObject { public string CallbackId { get; set; } public string Title { get; set; } diff --git a/SlackNet/Interaction/DialogElement.cs b/SlackNet/Interaction/DialogElement.cs index 5f5a7d3..976ef10 100644 --- a/SlackNet/Interaction/DialogElement.cs +++ b/SlackNet/Interaction/DialogElement.cs @@ -1,6 +1,6 @@ namespace SlackNet.Interaction; -public abstract class DialogElement +public abstract class DialogElement : SlackObject { protected DialogElement(string type) => Type = type; diff --git a/SlackNet/Interaction/DialogError.cs b/SlackNet/Interaction/DialogError.cs index 203eaac..66b2a20 100644 --- a/SlackNet/Interaction/DialogError.cs +++ b/SlackNet/Interaction/DialogError.cs @@ -1,6 +1,6 @@ namespace SlackNet.Interaction; -public class DialogError +public class DialogError : SlackObject { public string Name { get; set; } public string Error { get; set; } diff --git a/SlackNet/Interaction/DialogErrorResponse.cs b/SlackNet/Interaction/DialogErrorResponse.cs index d98e584..759ad43 100644 --- a/SlackNet/Interaction/DialogErrorResponse.cs +++ b/SlackNet/Interaction/DialogErrorResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.Interaction; -public class DialogErrorResponse +public class DialogErrorResponse : SlackObject { public IEnumerable Errors { get; set; } } \ No newline at end of file diff --git a/SlackNet/Interaction/InteractionRequest.cs b/SlackNet/Interaction/InteractionRequest.cs index d0130ab..beb1b3a 100644 --- a/SlackNet/Interaction/InteractionRequest.cs +++ b/SlackNet/Interaction/InteractionRequest.cs @@ -1,6 +1,6 @@ namespace SlackNet.Interaction; -public abstract class InteractionRequest +public abstract class InteractionRequest : SlackObject { public string Type { get; set; } public string Token { get; set; } diff --git a/SlackNet/Interaction/MessageResponse.cs b/SlackNet/Interaction/MessageResponse.cs index 5725bb5..717aabb 100644 --- a/SlackNet/Interaction/MessageResponse.cs +++ b/SlackNet/Interaction/MessageResponse.cs @@ -7,7 +7,7 @@ public interface IMessageResponse Message Message { get; set; } } -public class MessageResponse : IMessageResponse +public class MessageResponse : SlackObject, IMessageResponse { public ResponseType ResponseType { get; set; } public bool ReplaceOriginal { get; set; } diff --git a/SlackNet/Interaction/OptionsRequestBase.cs b/SlackNet/Interaction/OptionsRequestBase.cs index 87a2fab..b3dbece 100644 --- a/SlackNet/Interaction/OptionsRequestBase.cs +++ b/SlackNet/Interaction/OptionsRequestBase.cs @@ -1,6 +1,6 @@ namespace SlackNet.Interaction; -public class OptionsRequestBase +public class OptionsRequestBase : SlackObject { public string Type { get; set; } public string Value { get; set; } diff --git a/SlackNet/Interaction/OptionsResponse.cs b/SlackNet/Interaction/OptionsResponse.cs index 55fc53c..8f074dd 100644 --- a/SlackNet/Interaction/OptionsResponse.cs +++ b/SlackNet/Interaction/OptionsResponse.cs @@ -2,7 +2,7 @@ namespace SlackNet.Interaction; -public class OptionsResponse +public class OptionsResponse : SlackObject { public IList