From 7ebd1aa12cf7fbac31fe061f9035d3b284565be1 Mon Sep 17 00:00:00 2001 From: Mahsaap Date: Sun, 23 Jun 2024 01:14:38 -0300 Subject: [PATCH 1/3] Many Summaries added. --- TwitchLib.Api.Core.Enums/AuthScopesEnum.cs | 11 + .../BitsLeaderboardPeriodEnum.cs | 22 ++ .../BlockUserReasonEnum.cs | 14 + .../BlockUserSourceContextEnum.cs | 10 + TwitchLib.Api.Core.Enums/CodeStatusEnum.cs | 38 +++ .../CustomRewardRedemptionStatusEnum.cs | 14 + .../DropEntitlementUpdateStatus.cs | 22 ++ .../EventSubTransportMethod.cs | 14 + .../ExtensionStateEnum.cs | 38 +++ TwitchLib.Api.Core.Enums/ExtensionTypeEnum.cs | 14 + TwitchLib.Api.Core.Enums/FulfillmentStatus.cs | 10 + .../ManageHeldAutoModMessageAction.cs | 10 + TwitchLib.Api.Core.Enums/PollStatusEnum.cs | 10 + .../PredictionEndStatusEnum.cs | 14 + .../PredictionStatusEnum.cs | 18 ++ TwitchLib.Api.Core.Enums/VideoSort.cs | 14 + TwitchLib.Api.Core.Enums/VideoType.cs | 18 ++ TwitchLib.Api.Core.Interfaces/IApiSettings.cs | 29 ++ .../IAwaitableConstraint.cs | 3 + TwitchLib.Api.Core.Interfaces/IFollow.cs | 13 + TwitchLib.Api.Core.Interfaces/IFollows.cs | 14 + .../IHttpCallHandler.cs | 3 + TwitchLib.Api.Core.Interfaces/IRateLimiter.cs | 3 + TwitchLib.Api.Core.Interfaces/ITime.cs | 3 + TwitchLib.Api.Core.Interfaces/IUser.cs | 3 + TwitchLib.Api.Core.Models/RequestModel.cs | 3 + TwitchLib.Api.Core/ApiSettings.cs | 3 + .../IAwaitableConstraintExtension.cs | 3 + .../RateLimiter/BypassLimiter.cs | 3 + .../CountByIntervalAwaitableConstraint.cs | 3 + .../RateLimiter/DisposeAction.cs | 3 + .../RateLimiter/LimitedSizeStack.cs | 4 + TwitchLib.Api.Core/RateLimiter/TimeLimiter.cs | 3 + TwitchLib.Api.Core/RateLimiter/TimeSystem.cs | 3 + .../Analytics/ExtensionAnalytics.cs | 55 ++-- .../Analytics/GameAnalytics.cs | 55 ++-- .../GetExtensionAnalyticsResponse.cs | 45 ++- .../Analytics/GetGameAnalyticsResponse.cs | 47 ++-- TwitchLib.Api.Helix.Models/Bits/Cheermote.cs | 104 +++---- TwitchLib.Api.Helix.Models/Bits/DateRange.cs | 25 +- .../Bits/ExtensionBitsProducts/Cost.cs | 25 +- .../ExtensionBitsProduct.cs | 57 ++-- .../GetExtensionBitsProductsResponse.cs | 17 +- .../UpdateExtensionBitsProductResponse.cs | 17 +- .../Bits/GetBitsLeaderboardResponse.cs | 33 ++- .../Bits/GetCheermotesResponse.cs | 23 +- TwitchLib.Api.Helix.Models/Bits/ImageList.cs | 41 ++- TwitchLib.Api.Helix.Models/Bits/Images.cs | 45 ++- TwitchLib.Api.Helix.Models/Bits/Listing.cs | 49 +++- TwitchLib.Api.Helix.Models/Bits/Tier.cs | 93 +++--- .../CreateCustomRewardsRequest.cs | 147 +++++----- .../CreateCustomRewardsResponse.cs | 23 +- .../ChannelPoints/CustomReward.cs | 265 +++++++++--------- .../ChannelPoints/DefaultImage.cs | 43 ++- .../GetCustomRewardsResponse.cs | 23 +- .../GetCustomRewardRedemptionResponse.cs | 33 ++- .../ChannelPoints/GlobalCooldownSetting.cs | 33 ++- .../ChannelPoints/Image.cs | 43 ++- .../ChannelPoints/MaxPerStreamSetting.cs | 33 ++- .../MaxPerUserPerStreamSetting.cs | 33 ++- .../ChannelPoints/Reward.cs | 53 ++-- .../ChannelPoints/RewardRedemption.cs | 123 ++++---- .../UpdateCustomRewardRequest.cs | 159 ++++++----- .../UpdateCustomRewardResponse.cs | 23 +- ...dateCustomRewardRedemptionStatusRequest.cs | 25 +- ...ateCustomRewardRedemptionStatusResponse.cs | 23 +- .../Channels/GetAdSchedule/AdSchedule.cs | 69 +++-- .../GetAdSchedule/GetAdScheduleResponse.cs | 19 +- .../GetChannelEditors/ChannelEditor.cs | 43 ++- .../GetChannelEditorsResponse.cs | 25 +- .../GetChannelFollowers/ChannelFollower.cs | 56 ++-- .../GetChannelFollowersResponse.cs | 48 ++-- .../ChannelInformation.cs | 133 +++++---- .../GetChannelInformationResponse.cs | 25 +- .../ChannelVIPsResponseModel.cs | 43 ++- .../GetChannelVIPs/GetChannelVIPsResponse.cs | 35 ++- .../GetFollowedChannels/FollowedChannel.cs | 53 ++-- .../GetFollowedChannelsResponse.cs | 53 ++-- .../ContentClassificationLabel.cs | 39 ++- .../ModifyChannelInformationRequest.cs | 107 ++++--- .../Channels/SnoozeNextAd/SnoozeNextAd.cs | 42 ++- .../SnoozeNextAd/SnoozeNextAdResponse.cs | 22 +- .../StartCommercial/StartCommercialRequest.cs | 39 ++- .../StartCommercialResponse.cs | 45 ++- TwitchLib.Api.Helix.Models/Charity/Amount.cs | 49 ++-- .../CharityCampaignResponseModel.cs | 117 ++++---- .../GetCharityCampaignResponse.cs | 27 +- .../CharityCampaignDonationsResponseModel.cs | 73 +++-- .../GetCharityCampaignDonationsResponse.cs | 41 ++- .../Chat/AnnouncementColors.cs | 50 +++- .../Chat/Badges/BadgeEmoteSet.cs | 25 +- .../Chat/Badges/BadgeVersion.cs | 73 +++-- .../GetChannelChatBadgesResponse.cs | 17 +- .../GetGlobalChatBadgesResponse.cs | 17 +- .../Chat/ChatSettings/ChatSettings.cs | 83 ++++-- .../ChatSettings/ChatSettingsResponseModel.cs | 100 +++++-- .../ChatSettings/GetChatSettingsResponse.cs | 17 +- .../UpdateChatSettingsResponse.cs | 17 +- .../UpdateChatSettingsResponseModel.cs | 99 +++++-- .../Chat/Emotes/ChannelEmote.cs | 53 ++-- .../Chat/Emotes/Emote.cs | 64 +++-- .../Chat/Emotes/EmoteImages.cs | 42 +-- .../Chat/Emotes/EmoteSet.cs | 53 ++-- .../GetChannelEmotesResponse.cs | 26 +- .../GetEmoteSets/GetEmoteSetsResponse.cs | 26 +- .../GetGlobalEmotesResponse.cs | 26 +- .../GetUserEmotes/GetUserEmotesResponse.cs | 15 + .../Chat/Emotes/GlobalEmote.cs | 20 +- .../Chat/Emotes/UserEmote.cs | 21 +- .../Chat/GetChatters/Chatter.cs | 40 +-- .../Chat/GetChatters/GetChattersResponse.cs | 42 +-- .../GetUserChatColorResponse.cs | 20 +- .../UserChatColorResponseModel.cs | 50 ++-- TwitchLib.Api.Helix.Models/Chat/UserColors.cs | 104 +++++-- .../Clips/CreateClip/CreatedClip.cs | 35 ++- .../Clips/CreateClip/CreatedClipResponse.cs | 23 +- .../Clips/GetClips/Clip.cs | 223 ++++++++------- .../Clips/GetClips/GetClipsResponse.cs | 39 ++- .../Common/DateRange.cs | 33 ++- .../Common/Pagination.cs | 31 +- TwitchLib.Api.Helix.Models/Common/Tag.cs | 41 ++- .../ContentClassificationLabel.cs | 43 ++- .../GetContentClassificationLabelsResponse.cs | 23 +- .../GetDropsEntitlements/DropsEntitlement.cs | 67 +++-- .../GetDropsEntitlementsResponse.cs | 25 +- .../DropEntitlementUpdate.cs | 25 +- .../UpdateDropsEntitlementsResponse.cs | 17 +- .../EventSub/Conduits/Conduit.cs | 27 +- .../CreateConduits/CreateConduitsRequest.cs | 3 + .../CreateConduits/CreateConduitsResponse.cs | 3 + .../GetConduits/GetConduitsResponse.cs | 3 + .../GetConduitShardsResponse.cs | 4 + .../EventSub/Conduits/Shards/Shard.cs | 10 + .../EventSub/Conduits/Shards/Transport.cs | 7 + .../Shards/UpdateConduitShards/Error.cs | 5 + .../Shards/UpdateConduitShards/ShardUpdate.cs | 4 + .../UpdateConduitShards/TransportUpdate.cs | 6 + .../UpdateConduitShardsRequest.cs | 4 + .../UpdateConduitShardsResponse.cs | 4 + .../UpdateConduits/UpdateConduitsRequest.cs | 4 + .../UpdateConduits/UpdateConduitsResponse.cs | 3 + .../CreateEventSubSubscriptionResponse.cs | 41 ++- .../EventSub/EventSubSubscription.cs | 104 +++---- .../EventSub/EventSubTransport.cs | 41 ++- .../GetEventSubSubscriptionsResponse.cs | 60 ++-- .../GetExtensionLiveChannelsResponse.cs | 24 +- .../Extensions/LiveChannels/LiveChannel.cs | 49 +++- .../ReleasedExtensions/Component.cs | 105 +++++-- .../GetReleasedExtensionsResponse.cs | 17 +- .../Extensions/ReleasedExtensions/IconUrls.cs | 33 ++- .../Extensions/ReleasedExtensions/Mobile.cs | 17 +- .../Extensions/ReleasedExtensions/Panel.cs | 33 ++- .../ReleasedExtensions/ReleasedExtension.cs | 193 +++++++++---- .../ReleasedExtensions/VideoOverlay.cs | 25 +- .../Extensions/ReleasedExtensions/Views.cs | 41 ++- .../GetExtensionTransactionsResponse.cs | 25 +- .../Extensions/Transactions/ProductData.cs | 73 +++-- .../Extensions/Transactions/Transaction.cs | 89 ++++-- TwitchLib.Api.Helix.Models/Games/Game.cs | 41 ++- .../Games/GetGamesResponse.cs | 17 +- .../Games/GetTopGamesResponse.cs | 25 +- .../Goals/CreatorGoal.cs | 81 ++++-- .../Goals/GetCreatorGoalsResponse.cs | 17 +- .../CreateGuestStarSessionResponse.cs | 3 + .../EndGuestStarSessionResponse.cs | 3 + .../GetChannelGuestStarSettingsResponse.cs | 3 + .../GuestStarSettings.cs | 3 + .../GetGuestStarInvitesResponse.cs | 3 + .../GetGuestStarInvites/GuestStarInvite.cs | 15 +- .../GetGuestStarSessionResponse.cs | 3 + .../GuestStar/GuestStarGuest.cs | 19 +- .../GuestStar/GuestStarMediaSettings.cs | 3 + .../GuestStar/GuestStarSession.cs | 5 +- .../GuestStar/GuestStarSettingsBase.cs | 3 + .../Helpers/ExtensionAnalytics.cs | 139 ++++++--- .../HypeTrain/GetHypeTrainResponse.cs | 25 +- .../HypeTrain/HypeTrain.cs | 49 +++- .../HypeTrain/HypeTrainContribution.cs | 34 ++- .../HypeTrain/HypeTrainEventData.cs | 90 ++++-- .../AutomodSettings/AutomodSettings.cs | 81 ++++-- .../AutomodSettingsResponseModel.cs | 98 +++++-- .../GetAutomodSettingsResponse.cs | 18 +- .../UpdateAutomodSettingsResponse.cs | 18 +- .../Moderation/BanUser/BanUserRequest.cs | 36 ++- .../Moderation/BanUser/BanUserResponse.cs | 17 +- .../Moderation/BanUser/BannedUser.cs | 60 ++-- .../BlockedTerms/AddBlockedTermResponse.cs | 17 +- .../Moderation/BlockedTerms/BlockedTerm.cs | 65 +++-- .../BlockedTerms/GetBlockedTermsResponse.cs | 26 +- .../CheckAutoModStatus/AutoModResult.cs | 30 +- .../CheckAutoModStatusResponse.cs | 17 +- .../CheckAutoModStatus/Request/Message.cs | 30 +- .../Request/MessageRequest.cs | 17 +- .../GetBannedUsers/BannedUserEvent.cs | 116 ++++---- .../GetBannedUsers/GetBannedUsersResponse.cs | 30 +- .../GetModeratedChannelsResponse.cs | 29 +- .../GetModeratedChannels/ModeratedChannel.cs | 39 ++- .../GetModerators/GetModeratorsResponse.cs | 25 +- .../Moderation/GetModerators/Moderator.cs | 33 ++- .../GetShieldModeStatusResponse.cs | 20 +- .../ShieldModeStatus/ShieldModeStatus.cs | 66 ++--- .../ShieldModeStatusRequest.cs | 21 +- .../UpdateShieldModeStatusResponse.cs | 20 +- .../GetUnbanRequestsResponse.cs | 30 +- .../ResolveUnbanRequestsResponse.cs | 20 +- .../Moderation/UnbanRequests/UnbanRequest.cs | 159 ++++++----- TwitchLib.Api.Helix.Models/Polls/Choice.cs | 22 ++ .../Polls/CreatePoll/Choice.cs | 18 +- .../Polls/CreatePoll/CreatePollRequest.cs | 67 +++-- .../Polls/CreatePoll/CreatePollResponse.cs | 17 +- .../Polls/EndPoll/EndPollResponse.cs | 17 +- .../Polls/GetPolls/GetPollsResponse.cs | 25 +- TwitchLib.Api.Helix.Models/Polls/Poll.cs | 120 ++++++-- .../CreatePredictionRequest.cs | 45 ++- .../CreatePredictionResponse.cs | 17 +- .../Predictions/CreatePrediction/Outcome.cs | 18 +- .../EndPrediction/EndPredictionResponse.cs | 17 +- .../Predictions/Outcome.cs | 57 ++-- .../Predictions/Prediction.cs | 105 +++++-- .../Predictions/TopPredictor.cs | 49 +++- TwitchLib.Api.Helix.Models/Raids/Raid.cs | 25 +- .../Raids/StartRaid/StartRaidResponse.cs | 17 +- .../Schedule/Category.cs | 25 +- .../Schedule/ChannelStreamSchedule.cs | 49 +++- .../CreateChannelStreamSegmentRequest.cs | 66 +++-- .../CreateChannelStreamSegmentResponse.cs | 17 +- .../GetChannelStreamScheduleResponse.cs | 25 +- .../Schedule/Segment.cs | 66 +++-- .../UpdateChannelStreamSegmentRequest.cs | 57 +++- .../UpdateChannelStreamSegmentResponse.cs | 17 +- .../Schedule/Vacation.cs | 25 +- TwitchLib.Api.Helix.Models/Search/Channel.cs | 106 +++++-- .../Search/SearchCategoriesResponse.cs | 26 +- .../Search/SearchChannelsResponse.cs | 25 +- .../CreateStreamMarkerRequest.cs | 29 +- .../CreateStreamMarkerResponse.cs | 17 +- .../CreateStreamMarker/CreatedMarker.cs | 41 ++- .../GetFollowedStreamsResponse.cs | 25 +- .../Streams/GetFollowedStreams/Stream.cs | 122 +++++--- .../GetStreamKey/GetStreamKeyResponse.cs | 17 +- .../Streams/GetStreamKey/StreamKey.cs | 17 +- .../GetStreamMarkersResponse.cs | 25 +- .../Streams/GetStreamMarkers/Marker.cs | 49 +++- .../GetStreamMarkers/UserMarkerListing.cs | 41 ++- .../Streams/GetStreamMarkers/Video.cs | 25 +- .../Streams/GetStreams/GetStreamsResponse.cs | 25 +- .../Streams/GetStreams/GetStreamsType.cs | 25 +- .../Streams/GetStreams/Stream.cs | 132 ++++++--- .../CheckUserSubscriptionResponse.cs | 17 +- .../GetBroadcasterSubscriptionResponse.cs | 41 ++- .../GetUserSubscriptionsResponse.cs | 17 +- .../Subscriptions/Subscription.cs | 105 +++++-- .../Teams/ChannelTeam.cs | 33 ++- .../Teams/GetChannelTeamsResponse.cs | 17 +- .../Teams/GetTeamsResponse.cs | 17 +- TwitchLib.Api.Helix.Models/Teams/Team.cs | 17 +- TwitchLib.Api.Helix.Models/Teams/TeamBase.cs | 81 ++++-- .../Teams/TeamMember.cs | 33 ++- .../GetUserActiveExtensionsResponse.cs | 17 +- .../Users/GetUserBlockList/BlockedUser.cs | 33 ++- .../GetUserBlockListResponse.cs | 18 +- .../GetUserExtensionsResponse.cs | 17 +- .../Users/GetUsers/GetUsersResponse.cs | 17 +- .../Users/GetUsers/User.cs | 99 +++++-- .../Users/Internal/ActiveExtensions.cs | 33 ++- .../Users/Internal/ExtensionSlot.cs | 45 ++- .../Users/Internal/UserActiveExtension.cs | 57 ++-- .../Users/Internal/UserExtension.cs | 49 +++- .../Users/Internal/UserExtensionState.cs | 49 +++- .../UpdateUserExtensionsRequest.cs | 33 ++- .../DeleteVideos/DeleteVideosResponse.cs | 17 +- .../Videos/GetVideos/GetVideosResponse.cs | 25 +- .../Videos/GetVideos/MutedSegment.cs | 25 +- .../Videos/GetVideos/Video.cs | 145 +++++++--- .../ContentClassificationLabels.cs | 6 +- TwitchLib.Api/Auth/AuthCodeResponse.cs | 18 ++ TwitchLib.Api/Auth/RefreshResponse.cs | 15 + .../Auth/ValidateAccessTokenResponse.cs | 22 ++ .../Events/OnAuthorizationFlowErrorArgs.cs | 10 + .../Events/OnUserAuthorizationDetectedArgs.cs | 26 ++ .../Helpers/ExtensionAnalyticsHelper.cs | 3 + TwitchLib.Api/Interfaces/ITwitchAPI.cs | 24 +- TwitchLib.Api/Services/ApiService.cs | 8 + 283 files changed, 6916 insertions(+), 3910 deletions(-) diff --git a/TwitchLib.Api.Core.Enums/AuthScopesEnum.cs b/TwitchLib.Api.Core.Enums/AuthScopesEnum.cs index 9fbb659f..492e86b8 100644 --- a/TwitchLib.Api.Core.Enums/AuthScopesEnum.cs +++ b/TwitchLib.Api.Core.Enums/AuthScopesEnum.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Auth Scopes + /// public enum AuthScopes { /// @@ -336,11 +339,19 @@ public enum AuthScopes /// User_Read_Follows, + /// + /// View the list of channels a user moderates. + /// + User_Read_Moderated_Channels, + /// /// View if an authorized user is subscribed to specific channels. /// User_Read_Subscriptions, + /// + /// + /// User_Write_Chat, /// diff --git a/TwitchLib.Api.Core.Enums/BitsLeaderboardPeriodEnum.cs b/TwitchLib.Api.Core.Enums/BitsLeaderboardPeriodEnum.cs index e146d27b..8960f608 100644 --- a/TwitchLib.Api.Core.Enums/BitsLeaderboardPeriodEnum.cs +++ b/TwitchLib.Api.Core.Enums/BitsLeaderboardPeriodEnum.cs @@ -1,11 +1,33 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing Bits Leaderboard Period + /// public enum BitsLeaderboardPeriodEnum { + /// + /// A Day + /// Day, + + /// + /// A Week + /// Week, + + /// + /// A Month + /// Month, + + /// + /// A Year + /// Year, + + /// + /// All-Time or everything + /// All } } diff --git a/TwitchLib.Api.Core.Enums/BlockUserReasonEnum.cs b/TwitchLib.Api.Core.Enums/BlockUserReasonEnum.cs index ef41db2f..00309f9b 100644 --- a/TwitchLib.Api.Core.Enums/BlockUserReasonEnum.cs +++ b/TwitchLib.Api.Core.Enums/BlockUserReasonEnum.cs @@ -1,9 +1,23 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the reason a User was blocked + /// public enum BlockUserReasonEnum { + /// + /// Spam + /// Spam, + + /// + /// Harrassment + /// Harassment, + + /// + /// Some other reason + /// Other } } diff --git a/TwitchLib.Api.Core.Enums/BlockUserSourceContextEnum.cs b/TwitchLib.Api.Core.Enums/BlockUserSourceContextEnum.cs index c037f250..654735e8 100644 --- a/TwitchLib.Api.Core.Enums/BlockUserSourceContextEnum.cs +++ b/TwitchLib.Api.Core.Enums/BlockUserSourceContextEnum.cs @@ -1,8 +1,18 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing where the source context was for the blocked user + /// public enum BlockUserSourceContextEnum { + /// + /// In chat + /// Chat, + + /// + /// In a whisper + /// Whisper } } diff --git a/TwitchLib.Api.Core.Enums/CodeStatusEnum.cs b/TwitchLib.Api.Core.Enums/CodeStatusEnum.cs index b4e63d48..8542d235 100644 --- a/TwitchLib.Api.Core.Enums/CodeStatusEnum.cs +++ b/TwitchLib.Api.Core.Enums/CodeStatusEnum.cs @@ -1,15 +1,53 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing code status + /// public enum CodeStatusEnum { + /// + /// Successfully Redeemed + /// SUCCESSFULLY_REDEEMED, + + /// + /// Already Claimed + /// ALREADY_CLAIMED, + + /// + /// Expired + /// EXPIRED, + + /// + /// User not eligible + /// USER_NOT_ELIGIBLE, + + /// + /// Not found + /// NOT_FOUND, + + /// + /// Inactive + /// INACTIVE, + + /// + /// Unused + /// UNUSED, + + /// + /// Incorrect format + /// INCORRECT_FORMAT, + + /// + /// Internal error + /// INTERNAL_ERROR } } diff --git a/TwitchLib.Api.Core.Enums/CustomRewardRedemptionStatusEnum.cs b/TwitchLib.Api.Core.Enums/CustomRewardRedemptionStatusEnum.cs index f0925d2e..24b1f5c9 100644 --- a/TwitchLib.Api.Core.Enums/CustomRewardRedemptionStatusEnum.cs +++ b/TwitchLib.Api.Core.Enums/CustomRewardRedemptionStatusEnum.cs @@ -1,9 +1,23 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the custeom reward redemption status + /// public enum CustomRewardRedemptionStatus { + /// + /// Not completed + /// UNFULFILLED, + + /// + /// Completed + /// FULFILLED, + + /// + /// Cancelled + /// CANCELED } } diff --git a/TwitchLib.Api.Core.Enums/DropEntitlementUpdateStatus.cs b/TwitchLib.Api.Core.Enums/DropEntitlementUpdateStatus.cs index 572e444e..7dfe9426 100644 --- a/TwitchLib.Api.Core.Enums/DropEntitlementUpdateStatus.cs +++ b/TwitchLib.Api.Core.Enums/DropEntitlementUpdateStatus.cs @@ -1,11 +1,33 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing drop entitlement update status + /// public enum DropEntitlementUpdateStatus { + /// + /// Completed + /// SUCCESS, + + /// + /// Not Authorized + /// UNAUTHORIZED, + + /// + /// Failed + /// UPDATE_FAILED, + + /// + /// Invalid Id + /// INVALID_ID, + + /// + /// Not found + /// NOT_FOUND } } \ No newline at end of file diff --git a/TwitchLib.Api.Core.Enums/EventSubTransportMethod.cs b/TwitchLib.Api.Core.Enums/EventSubTransportMethod.cs index 40f13b92..60f0ec79 100644 --- a/TwitchLib.Api.Core.Enums/EventSubTransportMethod.cs +++ b/TwitchLib.Api.Core.Enums/EventSubTransportMethod.cs @@ -1,9 +1,23 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the eventsub transport method + /// public enum EventSubTransportMethod { + /// + /// Webhook + /// Webhook, + + /// + /// Websocket + /// Websocket, + + /// + /// Conduit + /// Conduit } } diff --git a/TwitchLib.Api.Core.Enums/ExtensionStateEnum.cs b/TwitchLib.Api.Core.Enums/ExtensionStateEnum.cs index 418d6ece..f6bb3216 100644 --- a/TwitchLib.Api.Core.Enums/ExtensionStateEnum.cs +++ b/TwitchLib.Api.Core.Enums/ExtensionStateEnum.cs @@ -1,15 +1,53 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the extension state + /// public enum ExtensionState { + /// + /// In testing + /// InTest, + + /// + /// In review + /// InReview, + + /// + /// Rejected + /// Rejected, + + /// + /// Approved + /// Approved, + + /// + /// Released + /// Released, + + /// + /// Deprecated + /// Deprecated, + + /// + /// Pending action + /// PendingAction, + + /// + /// Assets uploaded + /// AssetsUploaded, + + /// + /// Deleted + /// Deleted } } diff --git a/TwitchLib.Api.Core.Enums/ExtensionTypeEnum.cs b/TwitchLib.Api.Core.Enums/ExtensionTypeEnum.cs index 75b0b9bd..56749fe1 100644 --- a/TwitchLib.Api.Core.Enums/ExtensionTypeEnum.cs +++ b/TwitchLib.Api.Core.Enums/ExtensionTypeEnum.cs @@ -1,9 +1,23 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the extension type + /// public enum ExtensionType { + /// + /// Extenion is a panel + /// Panel, + + /// + /// Extension is an overlay + /// Overlay, + + /// + /// Extension is a component + /// Component } } diff --git a/TwitchLib.Api.Core.Enums/FulfillmentStatus.cs b/TwitchLib.Api.Core.Enums/FulfillmentStatus.cs index 0b08e3f9..f2f12c8b 100644 --- a/TwitchLib.Api.Core.Enums/FulfillmentStatus.cs +++ b/TwitchLib.Api.Core.Enums/FulfillmentStatus.cs @@ -1,8 +1,18 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the fulfullment status + /// public enum FulfillmentStatus { + /// + /// Claimed + /// CLAIMED, + + /// + /// Fulfilled + /// FULFILLED } } \ No newline at end of file diff --git a/TwitchLib.Api.Core.Enums/ManageHeldAutoModMessageAction.cs b/TwitchLib.Api.Core.Enums/ManageHeldAutoModMessageAction.cs index 7ec85761..7ce6e2e7 100644 --- a/TwitchLib.Api.Core.Enums/ManageHeldAutoModMessageAction.cs +++ b/TwitchLib.Api.Core.Enums/ManageHeldAutoModMessageAction.cs @@ -1,8 +1,18 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the action related to manage held auto mod action + /// public enum ManageHeldAutoModMessageActionEnum { + /// + /// Allow the messsage + /// ALLOW, + + /// + /// Deny the message + /// DENY } } diff --git a/TwitchLib.Api.Core.Enums/PollStatusEnum.cs b/TwitchLib.Api.Core.Enums/PollStatusEnum.cs index 9f694af0..004054b2 100644 --- a/TwitchLib.Api.Core.Enums/PollStatusEnum.cs +++ b/TwitchLib.Api.Core.Enums/PollStatusEnum.cs @@ -1,8 +1,18 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the poll status + /// public enum PollStatusEnum { + /// + /// Poll Terminated + /// TERMINATED, + + /// + /// Poll Archived + /// ARCHIVED } } diff --git a/TwitchLib.Api.Core.Enums/PredictionEndStatusEnum.cs b/TwitchLib.Api.Core.Enums/PredictionEndStatusEnum.cs index 44b34c00..fb13c739 100644 --- a/TwitchLib.Api.Core.Enums/PredictionEndStatusEnum.cs +++ b/TwitchLib.Api.Core.Enums/PredictionEndStatusEnum.cs @@ -1,9 +1,23 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the prediction end status + /// public enum PredictionEndStatus { + /// + /// Prediction resolved + /// RESOLVED, + + /// + /// Prediction cancelled + /// CANCELED, + + /// + /// Prediction locked + /// LOCKED } } diff --git a/TwitchLib.Api.Core.Enums/PredictionStatusEnum.cs b/TwitchLib.Api.Core.Enums/PredictionStatusEnum.cs index 2fb3b141..ab8a0932 100644 --- a/TwitchLib.Api.Core.Enums/PredictionStatusEnum.cs +++ b/TwitchLib.Api.Core.Enums/PredictionStatusEnum.cs @@ -1,10 +1,28 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the prediction status + /// public enum PredictionStatus { + /// + /// Prediction is active + /// ACTIVE, + + /// + /// Prediction is resolved + /// RESOLVED, + + /// + /// Prediction is canceled + /// CANCELED, + + /// + /// Prediction is locked + /// LOCKED } } diff --git a/TwitchLib.Api.Core.Enums/VideoSort.cs b/TwitchLib.Api.Core.Enums/VideoSort.cs index 7d680074..466c08f0 100644 --- a/TwitchLib.Api.Core.Enums/VideoSort.cs +++ b/TwitchLib.Api.Core.Enums/VideoSort.cs @@ -1,9 +1,23 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the video sort + /// public enum VideoSort { + /// + /// Sort by time + /// Time, + + /// + /// Sort by trending + /// Trending, + + /// + /// Sort by views + /// Views } } diff --git a/TwitchLib.Api.Core.Enums/VideoType.cs b/TwitchLib.Api.Core.Enums/VideoType.cs index 420d9afb..76208cb1 100644 --- a/TwitchLib.Api.Core.Enums/VideoType.cs +++ b/TwitchLib.Api.Core.Enums/VideoType.cs @@ -1,10 +1,28 @@ namespace TwitchLib.Api.Core.Enums { + /// + /// Enum representing the video type + /// public enum VideoType { + /// + /// All videos + /// All, + + /// + /// Uploaded videos + /// Upload, + + /// + /// Archived videos + /// Archive, + + /// + /// Highlighted videos + /// Highlight } } diff --git a/TwitchLib.Api.Core.Interfaces/IApiSettings.cs b/TwitchLib.Api.Core.Interfaces/IApiSettings.cs index 6aed6862..33fa24cd 100644 --- a/TwitchLib.Api.Core.Interfaces/IApiSettings.cs +++ b/TwitchLib.Api.Core.Interfaces/IApiSettings.cs @@ -4,15 +4,44 @@ namespace TwitchLib.Api.Core.Interfaces { + /// + /// Interface for Api Settings + /// public interface IApiSettings { + /// + /// Access token + /// string AccessToken { get; set; } + + /// + /// Client Secret + /// string Secret { get; set; } + + /// + /// Client Id + /// string ClientId { get; set; } + + /// + /// Skip Dynamic Scope Validation boolean + /// bool SkipDynamicScopeValidation { get; set; } + + /// + /// Skip Auto Server Token Generation boolean + /// bool SkipAutoServerTokenGeneration { get; set; } + + /// + /// Scopes + /// List Scopes { get; set; } + /// + /// Event that fires when a property changed + /// event PropertyChangedEventHandler PropertyChanged; } } \ No newline at end of file diff --git a/TwitchLib.Api.Core.Interfaces/IAwaitableConstraint.cs b/TwitchLib.Api.Core.Interfaces/IAwaitableConstraint.cs index 35085896..a537824f 100644 --- a/TwitchLib.Api.Core.Interfaces/IAwaitableConstraint.cs +++ b/TwitchLib.Api.Core.Interfaces/IAwaitableConstraint.cs @@ -4,6 +4,9 @@ namespace TwitchLib.Api.Core.Interfaces { + /// + /// Interface for Awaitable Constraint + /// public interface IAwaitableConstraint { Task WaitForReadiness(CancellationToken cancellationToken); diff --git a/TwitchLib.Api.Core.Interfaces/IFollow.cs b/TwitchLib.Api.Core.Interfaces/IFollow.cs index 34f19996..537d89b6 100644 --- a/TwitchLib.Api.Core.Interfaces/IFollow.cs +++ b/TwitchLib.Api.Core.Interfaces/IFollow.cs @@ -2,11 +2,24 @@ namespace TwitchLib.Api.Core.Interfaces { + /// + /// Interface for a follow + /// public interface IFollow { + /// + /// Created at date and time + /// DateTime CreatedAt { get; } + + /// + /// Notifications boolean + /// bool Notifications { get; } + /// + /// User interface + /// IUser User { get; } } } diff --git a/TwitchLib.Api.Core.Interfaces/IFollows.cs b/TwitchLib.Api.Core.Interfaces/IFollows.cs index 8fcb804a..e9dcd3e5 100644 --- a/TwitchLib.Api.Core.Interfaces/IFollows.cs +++ b/TwitchLib.Api.Core.Interfaces/IFollows.cs @@ -1,9 +1,23 @@ namespace TwitchLib.Api.Core.Interfaces { + /// + /// Interface for follows + /// public interface IFollows { + /// + /// Total follows + /// int Total { get; } + + /// + /// Cursor + /// string Cursor { get; } + + /// + /// Follows interface + /// IFollow[] Follows { get; } } } diff --git a/TwitchLib.Api.Core.Interfaces/IHttpCallHandler.cs b/TwitchLib.Api.Core.Interfaces/IHttpCallHandler.cs index 12e2ad70..d87f509a 100644 --- a/TwitchLib.Api.Core.Interfaces/IHttpCallHandler.cs +++ b/TwitchLib.Api.Core.Interfaces/IHttpCallHandler.cs @@ -4,6 +4,9 @@ namespace TwitchLib.Api.Core.Interfaces { + /// + /// Interface for HTTP call handler + /// public interface IHttpCallHandler { Task> GeneralRequestAsync(string url, string method, string payload = null, ApiVersion api = ApiVersion.Helix, string clientId = null, string accessToken = null); diff --git a/TwitchLib.Api.Core.Interfaces/IRateLimiter.cs b/TwitchLib.Api.Core.Interfaces/IRateLimiter.cs index eb0763d0..112127e3 100644 --- a/TwitchLib.Api.Core.Interfaces/IRateLimiter.cs +++ b/TwitchLib.Api.Core.Interfaces/IRateLimiter.cs @@ -4,6 +4,9 @@ namespace TwitchLib.Api.Core.Interfaces { + /// + /// Interface for rate limiter + /// public interface IRateLimiter { Task Perform(Func perform, CancellationToken cancellationToken); diff --git a/TwitchLib.Api.Core.Interfaces/ITime.cs b/TwitchLib.Api.Core.Interfaces/ITime.cs index 764b0a4d..9e3de4e8 100644 --- a/TwitchLib.Api.Core.Interfaces/ITime.cs +++ b/TwitchLib.Api.Core.Interfaces/ITime.cs @@ -4,6 +4,9 @@ namespace TwitchLib.Api.Core.Interfaces { + /// + /// Interface for time + /// public interface ITime { DateTime GetTimeNow(); diff --git a/TwitchLib.Api.Core.Interfaces/IUser.cs b/TwitchLib.Api.Core.Interfaces/IUser.cs index 71b1c407..354bd9cd 100644 --- a/TwitchLib.Api.Core.Interfaces/IUser.cs +++ b/TwitchLib.Api.Core.Interfaces/IUser.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Core.Interfaces { + /// + /// Interface for a user + /// public interface IUser { string Id { get; } diff --git a/TwitchLib.Api.Core.Models/RequestModel.cs b/TwitchLib.Api.Core.Models/RequestModel.cs index 7f3a2bd3..0fd58ba0 100644 --- a/TwitchLib.Api.Core.Models/RequestModel.cs +++ b/TwitchLib.Api.Core.Models/RequestModel.cs @@ -1,5 +1,8 @@ namespace TwitchLib.Api.Core.Models { + /// + /// Request Model + /// public abstract class RequestModel { diff --git a/TwitchLib.Api.Core/ApiSettings.cs b/TwitchLib.Api.Core/ApiSettings.cs index 6c9e6ad3..2ddf0bc5 100644 --- a/TwitchLib.Api.Core/ApiSettings.cs +++ b/TwitchLib.Api.Core/ApiSettings.cs @@ -6,6 +6,9 @@ namespace TwitchLib.Api.Core { + /// + /// Api Settings + /// public class ApiSettings : IApiSettings, INotifyPropertyChanged { private string _clientId; diff --git a/TwitchLib.Api.Core/Extensions/RateLimiter/IAwaitableConstraintExtension.cs b/TwitchLib.Api.Core/Extensions/RateLimiter/IAwaitableConstraintExtension.cs index bd63be84..b8ba0677 100644 --- a/TwitchLib.Api.Core/Extensions/RateLimiter/IAwaitableConstraintExtension.cs +++ b/TwitchLib.Api.Core/Extensions/RateLimiter/IAwaitableConstraintExtension.cs @@ -3,6 +3,9 @@ namespace TwitchLib.Api.Core.Extensions.RateLimiter { + /// + /// IAwaitable Constraint Extension + /// public static class IAwaitableConstraintExtension { public static IAwaitableConstraint Compose(this IAwaitableConstraint ac1, IAwaitableConstraint ac2) diff --git a/TwitchLib.Api.Core/RateLimiter/BypassLimiter.cs b/TwitchLib.Api.Core/RateLimiter/BypassLimiter.cs index c1dee6a3..2c6b0a86 100644 --- a/TwitchLib.Api.Core/RateLimiter/BypassLimiter.cs +++ b/TwitchLib.Api.Core/RateLimiter/BypassLimiter.cs @@ -5,6 +5,9 @@ namespace TwitchLib.Api.Core.RateLimiter { + /// + /// Bypass Limiter + /// public class BypassLimiter : IRateLimiter { public Task Perform(Func perform) diff --git a/TwitchLib.Api.Core/RateLimiter/CountByIntervalAwaitableConstraint.cs b/TwitchLib.Api.Core/RateLimiter/CountByIntervalAwaitableConstraint.cs index 74969835..327e939c 100644 --- a/TwitchLib.Api.Core/RateLimiter/CountByIntervalAwaitableConstraint.cs +++ b/TwitchLib.Api.Core/RateLimiter/CountByIntervalAwaitableConstraint.cs @@ -7,6 +7,9 @@ namespace TwitchLib.Api.Core.RateLimiter { + /// + /// Count By Interval Awaitable Constraint + /// public class CountByIntervalAwaitableConstraint : IAwaitableConstraint { public IReadOnlyList TimeStamps => _timeStamps.ToList(); diff --git a/TwitchLib.Api.Core/RateLimiter/DisposeAction.cs b/TwitchLib.Api.Core/RateLimiter/DisposeAction.cs index b80032da..488dc4a0 100644 --- a/TwitchLib.Api.Core/RateLimiter/DisposeAction.cs +++ b/TwitchLib.Api.Core/RateLimiter/DisposeAction.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Core.RateLimiter { + /// + /// Dispose Action + /// public class DisposeAction : IDisposable { private Action _act; diff --git a/TwitchLib.Api.Core/RateLimiter/LimitedSizeStack.cs b/TwitchLib.Api.Core/RateLimiter/LimitedSizeStack.cs index 09ba9b31..a59dda2e 100644 --- a/TwitchLib.Api.Core/RateLimiter/LimitedSizeStack.cs +++ b/TwitchLib.Api.Core/RateLimiter/LimitedSizeStack.cs @@ -2,6 +2,10 @@ namespace TwitchLib.Api.Core.RateLimiter { + /// + /// Limited Size Stack + /// + /// public class LimitedSizeStack: LinkedList { private readonly int _maxSize; diff --git a/TwitchLib.Api.Core/RateLimiter/TimeLimiter.cs b/TwitchLib.Api.Core/RateLimiter/TimeLimiter.cs index fcc09125..d8e8d238 100644 --- a/TwitchLib.Api.Core/RateLimiter/TimeLimiter.cs +++ b/TwitchLib.Api.Core/RateLimiter/TimeLimiter.cs @@ -7,6 +7,9 @@ namespace TwitchLib.Api.Core.RateLimiter { + /// + /// Time Limiter + /// public class TimeLimiter : IRateLimiter { private readonly IAwaitableConstraint _ac; diff --git a/TwitchLib.Api.Core/RateLimiter/TimeSystem.cs b/TwitchLib.Api.Core/RateLimiter/TimeSystem.cs index de439e81..5ae7fd66 100644 --- a/TwitchLib.Api.Core/RateLimiter/TimeSystem.cs +++ b/TwitchLib.Api.Core/RateLimiter/TimeSystem.cs @@ -5,6 +5,9 @@ namespace TwitchLib.Api.Core.RateLimiter { + /// + /// Time System + /// public class TimeSystem : ITime { public static ITime StandardTime { get; } diff --git a/TwitchLib.Api.Helix.Models/Analytics/ExtensionAnalytics.cs b/TwitchLib.Api.Helix.Models/Analytics/ExtensionAnalytics.cs index 87100e74..9a47b553 100644 --- a/TwitchLib.Api.Helix.Models/Analytics/ExtensionAnalytics.cs +++ b/TwitchLib.Api.Helix.Models/Analytics/ExtensionAnalytics.cs @@ -1,36 +1,35 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Analytics +namespace TwitchLib.Api.Helix.Models.Analytics; + +/// +/// A analytic report for an extension. +/// +public class ExtensionAnalytics { - /// - /// A analytic report for an extension. - /// - public class ExtensionAnalytics - { - /// - /// An ID that identifies the extension that the analytic report was generated for. - /// - [JsonProperty(PropertyName = "extension_id")] - public string ExtensionId { get; protected set; } + /// + /// An ID that identifies the extension that the analytic report was generated for. + /// + [JsonProperty(PropertyName = "extension_id")] + public string ExtensionId { get; protected set; } - /// - /// The URL that you use to download the analytic report. - /// The URL is valid for 5 minutes. - /// - [JsonProperty(PropertyName = "URL")] - public string Url { get; protected set; } + /// + /// The URL that you use to download the analytic report. + /// The URL is valid for 5 minutes. + /// + [JsonProperty(PropertyName = "URL")] + public string Url { get; protected set; } - /// - /// The type of analytic report. - /// - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } + /// + /// The type of analytic report. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } - /// - /// The reporting period�s start and end dates. - /// - [JsonProperty(PropertyName = "date_range")] - public DateRange DateRange { get; protected set; } - } + /// + /// The reporting period�s start and end dates. + /// + [JsonProperty(PropertyName = "date_range")] + public DateRange DateRange { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Analytics/GameAnalytics.cs b/TwitchLib.Api.Helix.Models/Analytics/GameAnalytics.cs index 963311aa..8c3dfe6f 100644 --- a/TwitchLib.Api.Helix.Models/Analytics/GameAnalytics.cs +++ b/TwitchLib.Api.Helix.Models/Analytics/GameAnalytics.cs @@ -1,36 +1,35 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Analytics +namespace TwitchLib.Api.Helix.Models.Analytics; + +/// +/// +/// +public class GameAnalytics { - /// - /// - /// - public class GameAnalytics - { - /// - /// An ID that identifies the game that the analytic report was generated for. - /// - [JsonProperty(PropertyName = "game_id")] - public string GameId { get; protected set; } + /// + /// An ID that identifies the game that the analytic report was generated for. + /// + [JsonProperty(PropertyName = "game_id")] + public string GameId { get; protected set; } - /// - /// The URL that you use to download the analytic report. - /// The URL is valid for 5 minutes. - /// - [JsonProperty(PropertyName = "URL")] - public string Url { get; protected set; } + /// + /// The URL that you use to download the analytic report. + /// The URL is valid for 5 minutes. + /// + [JsonProperty(PropertyName = "URL")] + public string Url { get; protected set; } - /// - /// The type of analytic report. - /// - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } + /// + /// The type of analytic report. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } - /// - /// The reporting period’s start and end dates. - /// - [JsonProperty(PropertyName = "date_range")] - public DateRange DateRange { get; protected set; } - } + /// + /// The reporting period’s start and end dates. + /// + [JsonProperty(PropertyName = "date_range")] + public DateRange DateRange { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Analytics/GetExtensionAnalyticsResponse.cs b/TwitchLib.Api.Helix.Models/Analytics/GetExtensionAnalyticsResponse.cs index 0c4d524b..436e60ec 100644 --- a/TwitchLib.Api.Helix.Models/Analytics/GetExtensionAnalyticsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Analytics/GetExtensionAnalyticsResponse.cs @@ -1,29 +1,28 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Analytics +namespace TwitchLib.Api.Helix.Models.Analytics; + +/// +/// The response for GetExtensionAnalytics that gets a list of analytic reports for one or more extensions. +/// The response contains the URLs used to download the reports (CSV files) and the URLs are only valid for 5 minutes. +/// +public class GetExtensionAnalyticsResponse { - /// - /// The response for GetExtensionAnalytics that gets a list of analytic reports for one or more extensions. - /// The response contains the URLs used to download the reports (CSV files) and the URLs are only valid for 5 minutes. - /// - public class GetExtensionAnalyticsResponse - { - /// - /// A list of analytic reports for the extensions. - /// The reports are returned in no particular order; however, the data within each report is in ascending order by date (newest first). - /// The report contains one row of data per day of the reporting window and only contains rows for the days that the extension was used. - /// The array is empty if there are no reports. - /// - [JsonProperty(PropertyName = "data")] - public ExtensionAnalytics[] Data { get; protected set; } + /// + /// A list of analytic reports for the extensions. + /// The reports are returned in no particular order; however, the data within each report is in ascending order by date (newest first). + /// The report contains one row of data per day of the reporting window and only contains rows for the days that the extension was used. + /// The array is empty if there are no reports. + /// + [JsonProperty(PropertyName = "data")] + public ExtensionAnalytics[] Data { get; protected set; } - /// - /// Contains the information used to page through the list of results. - /// The object is empty if there are no more pages left to page through. - /// Use the cursor to set the GetExtensionAnalytics request’s after query parameter. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// Contains the information used to page through the list of results. + /// The object is empty if there are no more pages left to page through. + /// Use the cursor to set the GetExtensionAnalytics request’s after query parameter. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Analytics/GetGameAnalyticsResponse.cs b/TwitchLib.Api.Helix.Models/Analytics/GetGameAnalyticsResponse.cs index 9781ff30..d01eabb2 100644 --- a/TwitchLib.Api.Helix.Models/Analytics/GetGameAnalyticsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Analytics/GetGameAnalyticsResponse.cs @@ -1,30 +1,29 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Analytics +namespace TwitchLib.Api.Helix.Models.Analytics; + +/// +/// Response for GetGameAnalytics which gets gets a list of analytic reports for one or more games. +/// The response contains the URLs used to download the reports (CSV files) and the URLs are only valid for 5 minutes. +/// +public class GetGameAnalyticsResponse { - /// - /// Response for GetGameAnalytics which gets gets a list of analytic reports for one or more games. - /// The response contains the URLs used to download the reports (CSV files) and the URLs are only valid for 5 minutes. - /// - public class GetGameAnalyticsResponse - { - /// - /// A list of game analytics reports. - /// The reports are returned in no particular order; however, the data within each report is in ascending order by date (newest first). - /// The report contains one row of data per day of the reporting window and only contains rows the days that the game was used. - /// A report is available only if the game was broadcast for at least 5 hours over the reporting period. - /// The array is empty if there are no reports. - /// - [JsonProperty(PropertyName = "data")] - public GameAnalytics[] Data { get; protected set; } + /// + /// A list of game analytics reports. + /// The reports are returned in no particular order; however, the data within each report is in ascending order by date (newest first). + /// The report contains one row of data per day of the reporting window and only contains rows the days that the game was used. + /// A report is available only if the game was broadcast for at least 5 hours over the reporting period. + /// The array is empty if there are no reports. + /// + [JsonProperty(PropertyName = "data")] + public GameAnalytics[] Data { get; protected set; } - /// - /// Contains the information used to page through the list of results. - /// The object is empty if there are no more pages left to page through. - /// Use the cursor to set the GetGameAnalytics request’s after query parameter. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// Contains the information used to page through the list of results. + /// The object is empty if there are no more pages left to page through. + /// Use the cursor to set the GetGameAnalytics request’s after query parameter. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/Cheermote.cs b/TwitchLib.Api.Helix.Models/Bits/Cheermote.cs index ef7397fc..2bd9e8ea 100644 --- a/TwitchLib.Api.Helix.Models/Bits/Cheermote.cs +++ b/TwitchLib.Api.Helix.Models/Bits/Cheermote.cs @@ -1,61 +1,61 @@ using Newtonsoft.Json; using System; -namespace TwitchLib.Api.Helix.Models.Bits -{ /// - /// Cheermotes are animated emotes that viewers can assign Bits to and can be used in any Bits-enabled channel’s chat room. - /// - public class Cheermote - { - /// - /// The name portion of the Cheermote string that you use in chat to cheer Bits. - /// The full Cheermote string is the concatenation of {prefix} + {number of Bits}. - /// For example, if the prefix is “Cheer” and you want to cheer 100 Bits, the full Cheermote string is Cheer100. - /// When the Cheermote string is entered in chat, Twitch converts it to the image associated with the Bits tier that was cheered. - /// - [JsonProperty(PropertyName = "prefix")] - public string Prefix { get; protected set; } +namespace TwitchLib.Api.Helix.Models.Bits; - /// - /// A list of tier levels that the Cheermote supports. - /// Each tier identifies the range of Bits that you can cheer at that tier level and an image that graphically identifies the tier level. - /// - [JsonProperty(PropertyName = "tiers")] - public Tier[] Tiers { get; protected set; } +/// +/// Cheermotes are animated emotes that viewers can assign Bits to and can be used in any Bits-enabled channel’s chat room. +/// +public class Cheermote +{ + /// + /// The name portion of the Cheermote string that you use in chat to cheer Bits. + /// The full Cheermote string is the concatenation of {prefix} + {number of Bits}. + /// For example, if the prefix is “Cheer” and you want to cheer 100 Bits, the full Cheermote string is Cheer100. + /// When the Cheermote string is entered in chat, Twitch converts it to the image associated with the Bits tier that was cheered. + /// + [JsonProperty(PropertyName = "prefix")] + public string Prefix { get; protected set; } - /// - /// The type of Cheermote. Possible values are: - /// global_first_party - A Twitch-defined Cheermote that is shown in the Bits card. - /// global_third_party - A Twitch-defined Cheermote that is not shown in the Bits card. - /// channel_custom - A broadcaster-defined Cheermote. - /// display_only - Do not use; for internal use only. - /// sponsored - A sponsor-defined Cheermote. - /// When used, the sponsor adds additional Bits to the amount that the user cheered. - /// For example, if the user cheered Terminator100, the broadcaster might receive 110 Bits, which includes the sponsor's 10 Bits contribution. - /// - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } + /// + /// A list of tier levels that the Cheermote supports. + /// Each tier identifies the range of Bits that you can cheer at that tier level and an image that graphically identifies the tier level. + /// + [JsonProperty(PropertyName = "tiers")] + public Tier[] Tiers { get; protected set; } - /// - /// The order that the Cheermotes are shown in the Bits card. - /// The numbers may not be consecutive. - /// For example, the numbers may jump from 1 to 7 to 13. - /// The order numbers are unique within a Cheermote type (for example, global_first_party) - /// but may not be unique amongst all Cheermotes in the response. - /// - [JsonProperty(PropertyName = "order")] - public int Order { get; protected set; } + /// + /// The type of Cheermote. Possible values are: + /// global_first_party - A Twitch-defined Cheermote that is shown in the Bits card. + /// global_third_party - A Twitch-defined Cheermote that is not shown in the Bits card. + /// channel_custom - A broadcaster-defined Cheermote. + /// display_only - Do not use; for internal use only. + /// sponsored - A sponsor-defined Cheermote. + /// When used, the sponsor adds additional Bits to the amount that the user cheered. + /// For example, if the user cheered Terminator100, the broadcaster might receive 110 Bits, which includes the sponsor's 10 Bits contribution. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } - /// - /// The date and time when this Cheermote was last updated. - /// - [JsonProperty(PropertyName = "last_updated")] - public DateTime LastUpdated { get; protected set; } + /// + /// The order that the Cheermotes are shown in the Bits card. + /// The numbers may not be consecutive. + /// For example, the numbers may jump from 1 to 7 to 13. + /// The order numbers are unique within a Cheermote type (for example, global_first_party) + /// but may not be unique amongst all Cheermotes in the response. + /// + [JsonProperty(PropertyName = "order")] + public int Order { get; protected set; } - /// - /// A Boolean value that indicates whether this Cheermote provides a charitable contribution match during charity campaigns. - /// - [JsonProperty(PropertyName = "is_charitable")] - public bool IsCharitable { get; protected set; } - } + /// + /// The date and time when this Cheermote was last updated. + /// + [JsonProperty(PropertyName = "last_updated")] + public DateTime LastUpdated { get; protected set; } + + /// + /// A Boolean value that indicates whether this Cheermote provides a charitable contribution match during charity campaigns. + /// + [JsonProperty(PropertyName = "is_charitable")] + public bool IsCharitable { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/DateRange.cs b/TwitchLib.Api.Helix.Models/Bits/DateRange.cs index 80d109e3..a4bca116 100644 --- a/TwitchLib.Api.Helix.Models/Bits/DateRange.cs +++ b/TwitchLib.Api.Helix.Models/Bits/DateRange.cs @@ -1,13 +1,22 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits +namespace TwitchLib.Api.Helix.Models.Bits; + +/// +/// The reporting window’s start and end dates +/// +public class DateRange { - public class DateRange - { - [JsonProperty(PropertyName = "started_at")] - public DateTime StartedAt { get; protected set; } - [JsonProperty(PropertyName = "ended_at")] - public DateTime EndedAt { get; protected set; } - } + /// + /// The reporting window’s start date. + /// + [JsonProperty(PropertyName = "started_at")] + public DateTime StartedAt { get; protected set; } + + /// + /// The reporting window’s end date. + /// + [JsonProperty(PropertyName = "ended_at")] + public DateTime EndedAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/Cost.cs b/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/Cost.cs index 8819e7f4..f0b810bf 100644 --- a/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/Cost.cs +++ b/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/Cost.cs @@ -1,12 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits.ExtensionBitsProducts +namespace TwitchLib.Api.Helix.Models.Bits.ExtensionBitsProducts; + +/// +/// An object that contains the product’s cost information. +/// +public class Cost { - public class Cost - { - [JsonProperty(PropertyName = "amount")] - public int Amount { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - } + /// + /// The product’s price. + /// + [JsonProperty(PropertyName = "amount")] + public int Amount { get; protected set; } + + /// + /// The type of currency. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/ExtensionBitsProduct.cs b/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/ExtensionBitsProduct.cs index d237bf25..5eac3308 100644 --- a/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/ExtensionBitsProduct.cs +++ b/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/ExtensionBitsProduct.cs @@ -1,21 +1,46 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits.ExtensionBitsProducts +namespace TwitchLib.Api.Helix.Models.Bits.ExtensionBitsProducts; + +/// +/// List of Bits products that belongs to the extension. +/// +public class ExtensionBitsProduct { - public class ExtensionBitsProduct - { - [JsonProperty(PropertyName = "sku")] - public string Sku { get; protected set; } - [JsonProperty(PropertyName = "cost")] - public Cost Cost { get; protected set; } - [JsonProperty(PropertyName = "in_development")] - public bool InDevelopment { get; protected set; } - [JsonProperty(PropertyName = "display_name")] - public string DisplayName { get; protected set; } - [JsonProperty(PropertyName = "expiration")] - public DateTime Expiration { get; protected set; } - [JsonProperty(PropertyName = "is_broadcast")] - public bool IsBroadcast { get; protected set; } - } + /// + /// The product’s SKU. The SKU is unique across an extension’s products. + /// + [JsonProperty(PropertyName = "sku")] + public string Sku { get; protected set; } + + /// + /// An object that contains the product’s cost information. + /// + [JsonProperty(PropertyName = "cost")] + public Cost Cost { get; protected set; } + + /// + /// A Boolean value that indicates whether the product is in development. If true, the product is not available for public use. + /// + [JsonProperty(PropertyName = "in_development")] + public bool InDevelopment { get; protected set; } + + /// + /// The product’s name as displayed in the extension. + /// + [JsonProperty(PropertyName = "display_name")] + public string DisplayName { get; protected set; } + + /// + /// The date and time, in RFC3339 format, when the product expires. + /// + [JsonProperty(PropertyName = "expiration")] + public DateTime Expiration { get; protected set; } + + /// + /// A Boolean value that determines whether Bits product purchase events are broadcast to all instances of an extension on a channel. + /// + [JsonProperty(PropertyName = "is_broadcast")] + public bool IsBroadcast { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/GetExtensionBitsProductsResponse.cs b/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/GetExtensionBitsProductsResponse.cs index 8c5eebcd..6d281828 100644 --- a/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/GetExtensionBitsProductsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/GetExtensionBitsProductsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits.ExtensionBitsProducts +namespace TwitchLib.Api.Helix.Models.Bits.ExtensionBitsProducts; + +/// +/// List of Bits products that belongs to the extension response object. +/// +public class GetExtensionBitsProductsResponse { - public class GetExtensionBitsProductsResponse - { - [JsonProperty(PropertyName = "data")] - public ExtensionBitsProduct[] Data { get; protected set; } - } + /// + /// A list of Bits products that the extension created. The list is in ascending SKU order. + /// + [JsonProperty(PropertyName = "data")] + public ExtensionBitsProduct[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/UpdateExtensionBitsProductResponse.cs b/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/UpdateExtensionBitsProductResponse.cs index 1f0df589..26dc3a1d 100644 --- a/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/UpdateExtensionBitsProductResponse.cs +++ b/TwitchLib.Api.Helix.Models/Bits/ExtensionBitsProducts/UpdateExtensionBitsProductResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits.ExtensionBitsProducts +namespace TwitchLib.Api.Helix.Models.Bits.ExtensionBitsProducts; + +/// +/// Adds or updates a Bits product that the extension created response object. +/// +public class UpdateExtensionBitsProductResponse { - public class UpdateExtensionBitsProductResponse - { - [JsonProperty(PropertyName = "data")] - public ExtensionBitsProduct[] Data { get; protected set; } - } + /// + /// A list of Bits products that the extension created. The list is in ascending SKU order. + /// + [JsonProperty(PropertyName = "data")] + public ExtensionBitsProduct[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/GetBitsLeaderboardResponse.cs b/TwitchLib.Api.Helix.Models/Bits/GetBitsLeaderboardResponse.cs index c6891604..57309032 100644 --- a/TwitchLib.Api.Helix.Models/Bits/GetBitsLeaderboardResponse.cs +++ b/TwitchLib.Api.Helix.Models/Bits/GetBitsLeaderboardResponse.cs @@ -1,14 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits +namespace TwitchLib.Api.Helix.Models.Bits; + +/// +/// Bits leaderboard for the authenticated broadcaster response object. +/// +public class GetBitsLeaderboardResponse { - public class GetBitsLeaderboardResponse - { - [JsonProperty(PropertyName = "data")] - public Listing[] Listings { get; protected set; } - [JsonProperty(PropertyName = "date_range")] - public DateRange DateRange { get; protected set; } - [JsonProperty(PropertyName = "total")] - public int Total { get; protected set; } - } + /// + /// A list of leaderboard leaders. The leaders are returned in rank order by how much they’ve cheered. + /// + [JsonProperty(PropertyName = "data")] + public Listing[] Listings { get; protected set; } + + /// + /// The reporting window’s start and end dates. + /// + [JsonProperty(PropertyName = "date_range")] + public DateRange DateRange { get; protected set; } + + /// + /// The number of ranked users in data. + /// + [JsonProperty(PropertyName = "total")] + public int Total { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/GetCheermotesResponse.cs b/TwitchLib.Api.Helix.Models/Bits/GetCheermotesResponse.cs index 6aeb4165..0464346f 100644 --- a/TwitchLib.Api.Helix.Models/Bits/GetCheermotesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Bits/GetCheermotesResponse.cs @@ -1,16 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits +namespace TwitchLib.Api.Helix.Models.Bits; + +/// +/// Response from GetCheermotes which gets a list of Cheermotes that users can use to cheer Bits in any Bits-enabled channel’s chat room. +/// +public class GetCheermotesResponse { - /// - /// Response from GetCheermotes which gets a list of Cheermotes that users can use to cheer Bits in any Bits-enabled channel’s chat room. - /// - public class GetCheermotesResponse - { - /// - /// The list of Cheermotes. The list is in ascending order by the order field’s value. - /// - [JsonProperty(PropertyName = "data")] - public Cheermote[] Listings { get; protected set; } - } + /// + /// The list of Cheermotes. The list is in ascending order by the order field’s value. + /// + [JsonProperty(PropertyName = "data")] + public Cheermote[] Listings { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/ImageList.cs b/TwitchLib.Api.Helix.Models/Bits/ImageList.cs index 7bd634bb..2056da0e 100644 --- a/TwitchLib.Api.Helix.Models/Bits/ImageList.cs +++ b/TwitchLib.Api.Helix.Models/Bits/ImageList.cs @@ -1,27 +1,26 @@ using Newtonsoft.Json; using System.Collections.Generic; -namespace TwitchLib.Api.Helix.Models.Bits +namespace TwitchLib.Api.Helix.Models.Bits; + +/// +/// Animated and static image sets for a Cheermote. +/// Each set is a dictionary with the following sizes: 1, 1.5, 2, 3, and 4. +/// The value of each size contains the URL to the image. +/// +public class ImageList { - /// - /// Animated and static image sets for a Cheermote. - /// Each set is a dictionary with the following sizes: 1, 1.5, 2, 3, and 4. - /// The value of each size contains the URL to the image. - /// - public class ImageList - { - /// - /// Animated image set for a Cheermote and include the following sizes: 1, 1.5, 2, 3, and 4 - /// The value of each size contains the URL to the image. - /// - [JsonProperty(PropertyName = "animated")] - public Dictionary Animated { get; protected set; } + /// + /// Animated image set for a Cheermote and include the following sizes: 1, 1.5, 2, 3, and 4 + /// The value of each size contains the URL to the image. + /// + [JsonProperty(PropertyName = "animated")] + public Dictionary Animated { get; protected set; } - /// - /// Static image set for a Cheermote and include the following sizes: 1, 1.5, 2, 3, and 4 - /// The value of each size contains the URL to the image. - /// - [JsonProperty(PropertyName = "static")] - public Dictionary Static { get; protected set; } - } + /// + /// Static image set for a Cheermote and include the following sizes: 1, 1.5, 2, 3, and 4 + /// The value of each size contains the URL to the image. + /// + [JsonProperty(PropertyName = "static")] + public Dictionary Static { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/Images.cs b/TwitchLib.Api.Helix.Models/Bits/Images.cs index 1ac2feb2..9478ddad 100644 --- a/TwitchLib.Api.Helix.Models/Bits/Images.cs +++ b/TwitchLib.Api.Helix.Models/Bits/Images.cs @@ -1,28 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits +namespace TwitchLib.Api.Helix.Models.Bits; + +/// +/// The dark and light themes of a Cheermote. +/// Each theme has static and animated formats of the Cheermote. Each format has a dictionary +/// containing multiple image sizes and associated image URLs. +/// +public class Images { - /// - /// The dark and light themes of a Cheermote. - /// Each theme has static and animated formats of the Cheermote. Each format has a dictionary - /// containing multiple image sizes and associated image URLs. - /// - public class Images - { - /// - /// Dark theme key for a Cheermote. - /// Contains the static and animated formats for the Cheermote. - /// Each format has a dictionary containing multiple image sizes and associated image URLs. - /// - [JsonProperty(PropertyName = "dark")] - public ImageList Dark { get; protected set; } + /// + /// Dark theme key for a Cheermote. + /// Contains the static and animated formats for the Cheermote. + /// Each format has a dictionary containing multiple image sizes and associated image URLs. + /// + [JsonProperty(PropertyName = "dark")] + public ImageList Dark { get; protected set; } - /// - /// Light theme key for a Cheermote. - /// Contains the static and animated formats for the Cheermote. - /// Each format has a dictionary containing multiple image sizes and associated image URLs. - /// - [JsonProperty(PropertyName = "light")] - public ImageList Light { get; protected set; } - } + /// + /// Light theme key for a Cheermote. + /// Contains the static and animated formats for the Cheermote. + /// Each format has a dictionary containing multiple image sizes and associated image URLs. + /// + [JsonProperty(PropertyName = "light")] + public ImageList Light { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/Listing.cs b/TwitchLib.Api.Helix.Models/Bits/Listing.cs index baa833b4..abba4da4 100644 --- a/TwitchLib.Api.Helix.Models/Bits/Listing.cs +++ b/TwitchLib.Api.Helix.Models/Bits/Listing.cs @@ -1,18 +1,39 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits +namespace TwitchLib.Api.Helix.Models.Bits; + +/// +/// A listing in the list of bit leadboard leaders. +/// +public class Listing { - public class Listing - { - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "rank")] - public int Rank { get; protected set; } - [JsonProperty(PropertyName = "score")] - public int Score { get; protected set; } - } + /// + /// An ID that identifies a user on the leaderboard. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The user’s position on the leaderboard. + /// + [JsonProperty(PropertyName = "rank")] + public int Rank { get; protected set; } + + /// + /// The number of Bits the user has cheered. + /// + [JsonProperty(PropertyName = "score")] + public int Score { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Bits/Tier.cs b/TwitchLib.Api.Helix.Models/Bits/Tier.cs index 52ba82d2..cae89924 100644 --- a/TwitchLib.Api.Helix.Models/Bits/Tier.cs +++ b/TwitchLib.Api.Helix.Models/Bits/Tier.cs @@ -1,56 +1,55 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Bits +namespace TwitchLib.Api.Helix.Models.Bits; + +/// +/// A list of tier levels that the Cheermote supports. +/// Each tier identifies the range of Bits that you can cheer at that tier level and an image that graphically identifies the tier level. +/// +public class Tier { - /// - /// A list of tier levels that the Cheermote supports. - /// Each tier identifies the range of Bits that you can cheer at that tier level and an image that graphically identifies the tier level. - /// - public class Tier - { - /// - /// The minimum number of Bits that you must cheer at this tier level. - /// The maximum number of Bits that you can cheer at this level is determined by the required minimum Bits of the next tier level minus 1. - /// For example, if min_bits is 1 and min_bits for the next tier is 100, the Bits range for this tier level is 1 through 99. - /// The minimum Bits value of the last tier is the maximum number of Bits you can cheer using this Cheermote. For example, 10000. - /// - [JsonProperty(PropertyName = "min_bits")] - public int MinBits { get; protected set; } + /// + /// The minimum number of Bits that you must cheer at this tier level. + /// The maximum number of Bits that you can cheer at this level is determined by the required minimum Bits of the next tier level minus 1. + /// For example, if min_bits is 1 and min_bits for the next tier is 100, the Bits range for this tier level is 1 through 99. + /// The minimum Bits value of the last tier is the maximum number of Bits you can cheer using this Cheermote. For example, 10000. + /// + [JsonProperty(PropertyName = "min_bits")] + public int MinBits { get; protected set; } - /// - /// The tier level. Possible tiers are:
- /// 1 | 100 | 500 | 1,000 | 5,000 | 10,000 | 100,000 - ///
- [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } + /// + /// The tier level. Possible tiers are:
+ /// 1 | 100 | 500 | 1,000 | 5,000 | 10,000 | 100,000 + ///
+ [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } - /// - /// The hex code of the color associated with this tier level (for example, #979797). - /// - [JsonProperty(PropertyName = "color")] - public string Color { get; protected set; } + /// + /// The hex code of the color associated with this tier level (for example, #979797). + /// + [JsonProperty(PropertyName = "color")] + public string Color { get; protected set; } - /// - /// The animated and static image sets for the Cheermote - organized by theme, format, and size. - /// The theme keys are dark and light.
- /// Each theme is a dictionary of formats: animated and static.
- /// Each format is a dictionary with the following sizes: 1, 1.5, 2, 3, and 4.
- /// The value of each size contains the URL to the image. - ///
- [JsonProperty(PropertyName = "images")] - public Images Images { get; protected set; } + /// + /// The animated and static image sets for the Cheermote - organized by theme, format, and size. + /// The theme keys are dark and light.
+ /// Each theme is a dictionary of formats: animated and static.
+ /// Each format is a dictionary with the following sizes: 1, 1.5, 2, 3, and 4.
+ /// The value of each size contains the URL to the image. + ///
+ [JsonProperty(PropertyName = "images")] + public Images Images { get; protected set; } - /// - /// A Boolean value that determines whether users can cheer at this tier level. - /// - [JsonProperty(PropertyName = "can_cheer")] - public bool CanCheer { get; protected set; } + /// + /// A Boolean value that determines whether users can cheer at this tier level. + /// + [JsonProperty(PropertyName = "can_cheer")] + public bool CanCheer { get; protected set; } - /// - /// A Boolean value that determines whether this tier level is shown in the Bits card. - /// Is true if this tier level is shown in the Bits card. - /// - [JsonProperty(PropertyName = "show_in_bits_card")] - public bool ShowInBitsCard { get; protected set; } - } + /// + /// A Boolean value that determines whether this tier level is shown in the Bits card. + /// Is true if this tier level is shown in the Bits card. + /// + [JsonProperty(PropertyName = "show_in_bits_card")] + public bool ShowInBitsCard { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/CreateCustomReward/CreateCustomRewardsRequest.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/CreateCustomReward/CreateCustomRewardsRequest.cs index 50bb4770..56e6d195 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/CreateCustomReward/CreateCustomRewardsRequest.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/CreateCustomReward/CreateCustomRewardsRequest.cs @@ -1,90 +1,89 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints.CreateCustomReward +namespace TwitchLib.Api.Helix.Models.ChannelPoints.CreateCustomReward; + +/// +/// Creates a Custom Reward in the broadcaster’s channel. The maximum number of custom rewards per channel is 50, which includes both enabled and disabled rewards. +/// +/// Requires a user access token that includes the channel:manage:redemptions scope. +/// +public class CreateCustomRewardsRequest { - /// - /// Creates a Custom Reward in the broadcaster’s channel. The maximum number of custom rewards per channel is 50, which includes both enabled and disabled rewards. - /// - /// Requires a user access token that includes the channel:manage:redemptions scope. - /// - public class CreateCustomRewardsRequest - { - /// - /// The custom reward’s title. The title may contain a maximum of 45 characters and it must be unique amongst all of the broadcaster’s custom rewards. - /// - [JsonProperty(PropertyName = "title")] - public string Title { get; set; } + /// + /// The custom reward’s title. The title may contain a maximum of 45 characters and it must be unique amongst all of the broadcaster’s custom rewards. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; set; } - /// - /// The cost of the reward, in Channel Points. The minimum is 1 point. - /// - [JsonProperty(PropertyName = "cost")] - public int Cost { get; set; } + /// + /// The cost of the reward, in Channel Points. The minimum is 1 point. + /// + [JsonProperty(PropertyName = "cost")] + public int Cost { get; set; } - /// - /// The prompt shown to the viewer when they redeem the reward. Specify a prompt if IsUserInputRequired is true. The prompt is limited to a maximum of 200 characters. - /// - [JsonProperty(PropertyName = "prompt")] - public string Prompt { get; set; } + /// + /// The prompt shown to the viewer when they redeem the reward. Specify a prompt if IsUserInputRequired is true. The prompt is limited to a maximum of 200 characters. + /// + [JsonProperty(PropertyName = "prompt")] + public string Prompt { get; set; } - /// - /// A Boolean value that determines whether the reward is enabled. Viewers see only enabled rewards. The default is true. - /// - [JsonProperty(PropertyName = "is_enabled")] - public bool IsEnabled { get; set; } + /// + /// A Boolean value that determines whether the reward is enabled. Viewers see only enabled rewards. The default is true. + /// + [JsonProperty(PropertyName = "is_enabled")] + public bool IsEnabled { get; set; } - /// - /// The background color to use for the reward. Specify the color using Hex format (for example, #9147FF). - /// - [JsonProperty(PropertyName = "background_color")] - public string BackgroundColor { get; set; } + /// + /// The background color to use for the reward. Specify the color using Hex format (for example, #9147FF). + /// + [JsonProperty(PropertyName = "background_color")] + public string BackgroundColor { get; set; } - /// - /// A Boolean value that determines whether the user needs to enter information when redeeming the reward. See the Prompt field. The default is false. - /// - [JsonProperty(PropertyName = "is_user_input_required")] - public bool IsUserInputRequired { get; set; } + /// + /// A Boolean value that determines whether the user needs to enter information when redeeming the reward. See the Prompt field. The default is false. + /// + [JsonProperty(PropertyName = "is_user_input_required")] + public bool IsUserInputRequired { get; set; } - /// - /// A Boolean value that determines whether to limit the maximum number of redemptions allowed per live stream (see the MaxPerStream field). The default is false. - /// - [JsonProperty(PropertyName = "is_max_per_stream_enabled")] - public bool IsMaxPerStreamEnabled { get; set; } + /// + /// A Boolean value that determines whether to limit the maximum number of redemptions allowed per live stream (see the MaxPerStream field). The default is false. + /// + [JsonProperty(PropertyName = "is_max_per_stream_enabled")] + public bool IsMaxPerStreamEnabled { get; set; } - /// - /// The maximum number of redemptions allowed per live stream. Applied only if IsMaxPerStreamEnabled is true. The minimum value is 1. - /// - [JsonProperty(PropertyName = "max_per_stream")] - public int? MaxPerStream { get; set; } + /// + /// The maximum number of redemptions allowed per live stream. Applied only if IsMaxPerStreamEnabled is true. The minimum value is 1. + /// + [JsonProperty(PropertyName = "max_per_stream")] + public int? MaxPerStream { get; set; } - /// - /// A Boolean value that determines whether to limit the maximum number of redemptions allowed per user per stream (see the MaxPerUserPerStream field). The default is false. - /// - [JsonProperty(PropertyName = "is_max_per_user_per_stream_enabled")] - public bool IsMaxPerUserPerStreamEnabled { get; set; } + /// + /// A Boolean value that determines whether to limit the maximum number of redemptions allowed per user per stream (see the MaxPerUserPerStream field). The default is false. + /// + [JsonProperty(PropertyName = "is_max_per_user_per_stream_enabled")] + public bool IsMaxPerUserPerStreamEnabled { get; set; } - /// - /// The maximum number of redemptions allowed per user per stream. Applied only if IsMaxPerUserPerStreamEnabled is true. The minimum value is 1. - /// - [JsonProperty(PropertyName = "max_per_user_per_stream")] - public int? MaxPerUserPerStream { get; set; } + /// + /// The maximum number of redemptions allowed per user per stream. Applied only if IsMaxPerUserPerStreamEnabled is true. The minimum value is 1. + /// + [JsonProperty(PropertyName = "max_per_user_per_stream")] + public int? MaxPerUserPerStream { get; set; } - /// - /// A Boolean value that determines whether to apply a cooldown period between redemptions (see the GlobalCooldownSeconds field for the duration of the cooldown period). The default is false. - /// - [JsonProperty(PropertyName = "is_global_cooldown_enabled")] - public bool IsGlobalCooldownEnabled { get; set; } + /// + /// A Boolean value that determines whether to apply a cooldown period between redemptions (see the GlobalCooldownSeconds field for the duration of the cooldown period). The default is false. + /// + [JsonProperty(PropertyName = "is_global_cooldown_enabled")] + public bool IsGlobalCooldownEnabled { get; set; } - /// - /// The cooldown period, in seconds. Applied only if the IsGlobalCooldownEnabled field is true. The minimum value is 1; however, the minimum value is 60 for it to be shown in the Twitch UX. - /// - [JsonProperty(PropertyName = "global_cooldown_seconds")] - public int? GlobalCooldownSeconds { get; set; } + /// + /// The cooldown period, in seconds. Applied only if the IsGlobalCooldownEnabled field is true. The minimum value is 1; however, the minimum value is 60 for it to be shown in the Twitch UX. + /// + [JsonProperty(PropertyName = "global_cooldown_seconds")] + public int? GlobalCooldownSeconds { get; set; } - /// - /// A Boolean value that determines whether redemptions should be set to FULFILLED status immediately when a reward is redeemed. If false, status is set to UNFULFILLED and follows the normal request queue process. The default is false. - /// - [JsonProperty(PropertyName = "should_redemptions_skip_request_queue")] - public bool ShouldRedemptionsSkipRequestQueue { get; set; } - } + /// + /// A Boolean value that determines whether redemptions should be set to FULFILLED status immediately when a reward is redeemed. If false, status is set to UNFULFILLED and follows the normal request queue process. The default is false. + /// + [JsonProperty(PropertyName = "should_redemptions_skip_request_queue")] + public bool ShouldRedemptionsSkipRequestQueue { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/CreateCustomReward/CreateCustomRewardsResponse.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/CreateCustomReward/CreateCustomRewardsResponse.cs index 9a1da03a..4e9ee046 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/CreateCustomReward/CreateCustomRewardsResponse.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/CreateCustomReward/CreateCustomRewardsResponse.cs @@ -1,16 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints.CreateCustomReward +namespace TwitchLib.Api.Helix.Models.ChannelPoints.CreateCustomReward; + +/// +/// The response for creating a Custom Reward in the broadcaster’s channel. +/// +public class CreateCustomRewardsResponse { - /// - /// The response for creating a Custom Reward in the broadcaster’s channel. - /// - public class CreateCustomRewardsResponse - { - /// - /// A list that contains the single custom reward you created. - /// - [JsonProperty(PropertyName = "data")] - public CustomReward[] Data { get; protected set; } - } + /// + /// A list that contains the single custom reward you created. + /// + [JsonProperty(PropertyName = "data")] + public CustomReward[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/CustomReward.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/CustomReward.cs index b047e90d..41cc019e 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/CustomReward.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/CustomReward.cs @@ -1,137 +1,136 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints +namespace TwitchLib.Api.Helix.Models.ChannelPoints; + +/// +/// Custom reward that the specified broadcaster created. +/// +public class CustomReward { - /// - /// Custom reward that the specified broadcaster created. - /// - public class CustomReward - { - /// - /// The ID that uniquely identifies the broadcaster. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - - /// - /// The broadcaster’s login name. (Name is lowercase) - /// - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - - /// - /// The broadcaster’s display name. (Name has capitalization) - /// - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - - /// - /// The ID that uniquely identifies this custom reward. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - - /// - /// The title of the reward. - /// - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - - /// - /// The prompt shown to the viewer when they redeem the reward if user input is required (see the IsUserInputRequired field). - /// - [JsonProperty(PropertyName = "prompt")] - public string Prompt { get; protected set; } - - /// - /// The cost of the reward in Channel Points. - /// - [JsonProperty(PropertyName = "cost")] - public int Cost { get; protected set; } - - - /// - /// A set of custom images for the reward. This field is null if the broadcaster didn’t upload images. - /// - [JsonProperty(PropertyName = "image")] - public Image Image { get; protected set; } - - - /// - /// A set of default images for the reward. - /// - [JsonProperty(PropertyName = "default_image")] - public DefaultImage DefaultImage { get; protected set; } - - - /// - /// The background color to use for the reward. The color is in Hex format (for example, #00E5CB). - /// - [JsonProperty(PropertyName = "background_color")] - public string BackgroundColor { get; protected set; } - - - /// - /// A Boolean value that determines whether the reward is enabled. Is true if enabled; otherwise, false. Disabled rewards aren’t shown to the user. - /// - [JsonProperty(PropertyName = "is_enabled")] - public bool IsEnabled { get; protected set; } - - - /// - /// A Boolean value that determines whether the user must enter information when redeeming the reward. Is true if the user is prompted. - /// - [JsonProperty(PropertyName = "is_user_input_required")] - public bool IsUserInputRequired { get; protected set; } - - - /// - /// The settings used to determine whether to apply a maximum to the number of redemptions allowed per live stream. - /// - [JsonProperty(PropertyName = "max_per_stream_setting")] - public MaxPerStreamSetting MaxPerStreamSetting { get; protected set; } - - - /// - /// The settings used to determine whether to apply a maximum to the number of redemptions allowed per user per live stream. - /// - [JsonProperty(PropertyName = "max_per_user_per_stream_setting")] - public MaxPerUserPerStreamSetting MaxPerUserPerStreamSetting { get; protected set; } - - /// - /// The settings used to determine whether to apply a cooldown period between redemptions and the length of the cooldown. - /// - [JsonProperty(PropertyName = "global_cooldown_setting")] - public GlobalCooldownSetting GlobalCooldownSetting { get; protected set; } - - /// - /// A Boolean value that determines whether to pause the reward. Set to true to pause the reward. Viewers can’t redeem paused rewards, however the reward will still be visible with "Reward is temporarily unavailable. Check back for it soon." message. - /// - [JsonProperty(PropertyName = "is_paused")] - public bool IsPaused { get; protected set; } - - /// - /// A Boolean value that determines whether the reward is currently in stock. Is true if the reward is in stock. Viewers can’t redeem out of stock rewards. - /// - [JsonProperty(PropertyName = "is_in_stock")] - public bool IsInStock { get; protected set; } - - /// - /// A Boolean value that determines whether redemptions should be set to FULFILLED status immediately when a reward is redeemed. If false, status is set to UNFULFILLED and follows the normal request queue process. - /// - [JsonProperty(PropertyName = "should_redemptions_skip_request_queue")] - public bool ShouldRedemptionsSkipQueue { get; protected set; } - - /// - /// The number of redemptions redeemed during the current live stream. The number counts against the MaxPerStreamSetting limit. This field is null if the broadcaster’s stream isn’t live or MaxPerStreamSetting isn’t enabled. - /// - [JsonProperty(PropertyName = "redemptions_redeemed_current_stream")] - public int? RedemptionsRedeemedCurrentStream { get; protected set; } - - /// - /// The timestamp of when the cooldown period expires. Is null if the reward isn’t in a cooldown state. See the GlobalCooldownSetting field. - /// - [JsonProperty(PropertyName = "cooldown_expires_at")] - public string CooldownExpiresAt { get; protected set; } - } + /// + /// The ID that uniquely identifies the broadcaster. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s login name. (Name is lowercase) + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + + /// + /// The broadcaster’s display name. (Name has capitalization) + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The ID that uniquely identifies this custom reward. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The title of the reward. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// The prompt shown to the viewer when they redeem the reward if user input is required (see the IsUserInputRequired field). + /// + [JsonProperty(PropertyName = "prompt")] + public string Prompt { get; protected set; } + + /// + /// The cost of the reward in Channel Points. + /// + [JsonProperty(PropertyName = "cost")] + public int Cost { get; protected set; } + + + /// + /// A set of custom images for the reward. This field is null if the broadcaster didn’t upload images. + /// + [JsonProperty(PropertyName = "image")] + public Image Image { get; protected set; } + + + /// + /// A set of default images for the reward. + /// + [JsonProperty(PropertyName = "default_image")] + public DefaultImage DefaultImage { get; protected set; } + + + /// + /// The background color to use for the reward. The color is in Hex format (for example, #00E5CB). + /// + [JsonProperty(PropertyName = "background_color")] + public string BackgroundColor { get; protected set; } + + + /// + /// A Boolean value that determines whether the reward is enabled. Is true if enabled; otherwise, false. Disabled rewards aren’t shown to the user. + /// + [JsonProperty(PropertyName = "is_enabled")] + public bool IsEnabled { get; protected set; } + + + /// + /// A Boolean value that determines whether the user must enter information when redeeming the reward. Is true if the user is prompted. + /// + [JsonProperty(PropertyName = "is_user_input_required")] + public bool IsUserInputRequired { get; protected set; } + + + /// + /// The settings used to determine whether to apply a maximum to the number of redemptions allowed per live stream. + /// + [JsonProperty(PropertyName = "max_per_stream_setting")] + public MaxPerStreamSetting MaxPerStreamSetting { get; protected set; } + + + /// + /// The settings used to determine whether to apply a maximum to the number of redemptions allowed per user per live stream. + /// + [JsonProperty(PropertyName = "max_per_user_per_stream_setting")] + public MaxPerUserPerStreamSetting MaxPerUserPerStreamSetting { get; protected set; } + + /// + /// The settings used to determine whether to apply a cooldown period between redemptions and the length of the cooldown. + /// + [JsonProperty(PropertyName = "global_cooldown_setting")] + public GlobalCooldownSetting GlobalCooldownSetting { get; protected set; } + + /// + /// A Boolean value that determines whether to pause the reward. Set to true to pause the reward. Viewers can’t redeem paused rewards, however the reward will still be visible with "Reward is temporarily unavailable. Check back for it soon." message. + /// + [JsonProperty(PropertyName = "is_paused")] + public bool IsPaused { get; protected set; } + + /// + /// A Boolean value that determines whether the reward is currently in stock. Is true if the reward is in stock. Viewers can’t redeem out of stock rewards. + /// + [JsonProperty(PropertyName = "is_in_stock")] + public bool IsInStock { get; protected set; } + + /// + /// A Boolean value that determines whether redemptions should be set to FULFILLED status immediately when a reward is redeemed. If false, status is set to UNFULFILLED and follows the normal request queue process. + /// + [JsonProperty(PropertyName = "should_redemptions_skip_request_queue")] + public bool ShouldRedemptionsSkipQueue { get; protected set; } + + /// + /// The number of redemptions redeemed during the current live stream. The number counts against the MaxPerStreamSetting limit. This field is null if the broadcaster’s stream isn’t live or MaxPerStreamSetting isn’t enabled. + /// + [JsonProperty(PropertyName = "redemptions_redeemed_current_stream")] + public int? RedemptionsRedeemedCurrentStream { get; protected set; } + + /// + /// The timestamp of when the cooldown period expires. Is null if the reward isn’t in a cooldown state. See the GlobalCooldownSetting field. + /// + [JsonProperty(PropertyName = "cooldown_expires_at")] + public string CooldownExpiresAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/DefaultImage.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/DefaultImage.cs index a433c7a3..eb7d2689 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/DefaultImage.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/DefaultImage.cs @@ -1,28 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints +namespace TwitchLib.Api.Helix.Models.ChannelPoints; + +/// +/// A set of default images for the reward. +/// +public class DefaultImage { - /// - /// A set of default images for the reward. - /// - public class DefaultImage - { - /// - /// The URL to a small version of the image. - /// - [JsonProperty(PropertyName = "url_1x")] - public string Url1x { get; } + /// + /// The URL to a small version of the image. + /// + [JsonProperty(PropertyName = "url_1x")] + public string Url1x { get; } - /// - /// The URL to a medium version of the image. - /// - [JsonProperty(PropertyName = "url_2x")] - public string Url2x { get; } + /// + /// The URL to a medium version of the image. + /// + [JsonProperty(PropertyName = "url_2x")] + public string Url2x { get; } - /// - /// The URL to a large version of the image. - /// - [JsonProperty(PropertyName = "url_4x")] - public string Url4x { get; } - } + /// + /// The URL to a large version of the image. + /// + [JsonProperty(PropertyName = "url_4x")] + public string Url4x { get; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/GetCustomReward/GetCustomRewardsResponse.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/GetCustomReward/GetCustomRewardsResponse.cs index 6daeb872..cc658b55 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/GetCustomReward/GetCustomRewardsResponse.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/GetCustomReward/GetCustomRewardsResponse.cs @@ -1,16 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints.GetCustomReward +namespace TwitchLib.Api.Helix.Models.ChannelPoints.GetCustomReward; + +/// +/// The response for getting a list of custom rewards that the specified broadcaster created. +/// +public class GetCustomRewardsResponse { - /// - /// The response for getting a list of custom rewards that the specified broadcaster created. - /// - public class GetCustomRewardsResponse - { - /// - /// A list of custom rewards. The list is in ascending order by id. If the broadcaster hasn’t created custom rewards, the list is empty. - /// - [JsonProperty(PropertyName = "data")] - public CustomReward[] Data { get; protected set; } - } + /// + /// A list of custom rewards. The list is in ascending order by id. If the broadcaster hasn’t created custom rewards, the list is empty. + /// + [JsonProperty(PropertyName = "data")] + public CustomReward[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/GetCustomRewardRedemption/GetCustomRewardRedemptionResponse.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/GetCustomRewardRedemption/GetCustomRewardRedemptionResponse.cs index 5d129c02..299e5129 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/GetCustomRewardRedemption/GetCustomRewardRedemptionResponse.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/GetCustomRewardRedemption/GetCustomRewardRedemptionResponse.cs @@ -1,23 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.ChannelPoints.GetCustomRewardRedemption +namespace TwitchLib.Api.Helix.Models.ChannelPoints.GetCustomRewardRedemption; + +/// +/// The response for getting a list of redemptions for a custom reward. +/// +public class GetCustomRewardRedemptionResponse { - /// - /// The response for getting a list of redemptions for a custom reward. - /// - public class GetCustomRewardRedemptionResponse - { - /// - /// The list of redemptions for the specified reward. The list is empty if there are no redemptions that match the redemption criteria. - /// - [JsonProperty(PropertyName = "data")] - public RewardRedemption[] Data { get; protected set; } + /// + /// The list of redemptions for the specified reward. The list is empty if there are no redemptions that match the redemption criteria. + /// + [JsonProperty(PropertyName = "data")] + public RewardRedemption[] Data { get; protected set; } - /// - /// - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// Contains the information used to page through the list of results + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/GlobalCooldownSetting.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/GlobalCooldownSetting.cs index fa3416ca..1bb50fee 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/GlobalCooldownSetting.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/GlobalCooldownSetting.cs @@ -1,22 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints +namespace TwitchLib.Api.Helix.Models.ChannelPoints; + +/// +/// The settings used to determine whether to apply a cooldown period between redemptions and the length of the cooldown. +/// +public class GlobalCooldownSetting { - /// - /// The settings used to determine whether to apply a cooldown period between redemptions and the length of the cooldown. - /// - public class GlobalCooldownSetting - { - /// - /// A Boolean value that determines whether to apply a cooldown period. Is true if a cooldown period is enabled. - /// - [JsonProperty(PropertyName = "is_enabled")] - public bool IsEnabled { get; protected set; } + /// + /// A Boolean value that determines whether to apply a cooldown period. Is true if a cooldown period is enabled. + /// + [JsonProperty(PropertyName = "is_enabled")] + public bool IsEnabled { get; protected set; } - /// - /// The cooldown period, in seconds. - /// - [JsonProperty(PropertyName = "global_cooldown_seconds")] - public int GlobalCooldownSeconds { get; protected set; } - } + /// + /// The cooldown period, in seconds. + /// + [JsonProperty(PropertyName = "global_cooldown_seconds")] + public int GlobalCooldownSeconds { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/Image.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/Image.cs index b68d84cf..8fc7b4af 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/Image.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/Image.cs @@ -1,28 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints +namespace TwitchLib.Api.Helix.Models.ChannelPoints; + +/// +/// A set of custom images for the reward. This field is null if the broadcaster didn’t upload images. +/// +public class Image { - /// - /// A set of custom images for the reward. This field is null if the broadcaster didn’t upload images. - /// - public class Image - { - /// - /// The URL to a small version of the image. - /// - [JsonProperty(PropertyName = "url_1x")] - public string Url1x { get; protected set; } + /// + /// The URL to a small version of the image. + /// + [JsonProperty(PropertyName = "url_1x")] + public string Url1x { get; protected set; } - /// - /// The URL to a medium version of the image. - /// - [JsonProperty(PropertyName = "url_2x")] - public string Url2x { get; protected set; } + /// + /// The URL to a medium version of the image. + /// + [JsonProperty(PropertyName = "url_2x")] + public string Url2x { get; protected set; } - /// - /// The URL to a large version of the image. - /// - [JsonProperty(PropertyName = "url_4x")] - public string Url4x { get; protected set; } - } + /// + /// The URL to a large version of the image. + /// + [JsonProperty(PropertyName = "url_4x")] + public string Url4x { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/MaxPerStreamSetting.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/MaxPerStreamSetting.cs index f11c35c2..a922bce0 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/MaxPerStreamSetting.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/MaxPerStreamSetting.cs @@ -1,22 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints +namespace TwitchLib.Api.Helix.Models.ChannelPoints; + +/// +/// The settings used to determine whether to apply a maximum to the number of redemptions allowed per live stream. +/// +public class MaxPerStreamSetting { - /// - /// The settings used to determine whether to apply a maximum to the number of redemptions allowed per live stream. - /// - public class MaxPerStreamSetting - { - /// - /// A Boolean value that determines whether the reward applies a limit on the number of redemptions allowed per live stream. Is true if the reward applies a limit. - /// - [JsonProperty(PropertyName = "is_enabled")] - public bool IsEnabled { get; protected set; } + /// + /// A Boolean value that determines whether the reward applies a limit on the number of redemptions allowed per live stream. Is true if the reward applies a limit. + /// + [JsonProperty(PropertyName = "is_enabled")] + public bool IsEnabled { get; protected set; } - /// - /// The maximum number of redemptions allowed per live stream. - /// - [JsonProperty(PropertyName = "max_per_stream")] - public int MaxPerStream { get; protected set; } - } + /// + /// The maximum number of redemptions allowed per live stream. + /// + [JsonProperty(PropertyName = "max_per_stream")] + public int MaxPerStream { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/MaxPerUserPerStreamSetting.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/MaxPerUserPerStreamSetting.cs index 301ba6a6..ceb8321d 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/MaxPerUserPerStreamSetting.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/MaxPerUserPerStreamSetting.cs @@ -1,22 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints +namespace TwitchLib.Api.Helix.Models.ChannelPoints; + +/// +/// The settings used to determine whether to apply a maximum to the number of redemptions allowed per user per live stream. +/// +public class MaxPerUserPerStreamSetting { - /// - /// The settings used to determine whether to apply a maximum to the number of redemptions allowed per user per live stream. - /// - public class MaxPerUserPerStreamSetting - { - /// - /// A Boolean value that determines whether the reward applies a limit on the number of redemptions allowed per user per live stream. Is true if the reward applies a limit. - /// - [JsonProperty(PropertyName = "is_enabled")] - public bool IsEnabled { get; protected set; } + /// + /// A Boolean value that determines whether the reward applies a limit on the number of redemptions allowed per user per live stream. Is true if the reward applies a limit. + /// + [JsonProperty(PropertyName = "is_enabled")] + public bool IsEnabled { get; protected set; } - /// - /// The maximum number of redemptions allowed per user per live stream. - /// - [JsonProperty(PropertyName = "max_per_user_per_stream")] - public int MaxPerUserPerStream { get; protected set; } - } + /// + /// The maximum number of redemptions allowed per user per live stream. + /// + [JsonProperty(PropertyName = "max_per_user_per_stream")] + public int MaxPerUserPerStream { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/Reward.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/Reward.cs index 0d4da674..6308620a 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/Reward.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/Reward.cs @@ -1,34 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints +namespace TwitchLib.Api.Helix.Models.ChannelPoints; + +/// +/// The reward that the user redeemed. +/// +public class Reward { - /// - /// The reward that the user redeemed. - /// - public class Reward - { - /// - /// The ID that uniquely identifies the redeemed reward. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } + /// + /// The ID that uniquely identifies the redeemed reward. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } - /// - /// The reward’s title. - /// - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } + /// + /// The reward’s title. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } - /// - /// The prompt displayed to the viewer if user input is required. - /// - [JsonProperty(PropertyName = "prompt")] - public string Prompt { get; protected set; } + /// + /// The prompt displayed to the viewer if user input is required. + /// + [JsonProperty(PropertyName = "prompt")] + public string Prompt { get; protected set; } - /// - /// The reward’s cost, in Channel Points. - /// - [JsonProperty(PropertyName = "cost")] - public int Cost { get; protected set; } - } + /// + /// The reward’s cost, in Channel Points. + /// + [JsonProperty(PropertyName = "cost")] + public int Cost { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/RewardRedemption.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/RewardRedemption.cs index 1e2476ef..d4797742 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/RewardRedemption.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/RewardRedemption.cs @@ -2,77 +2,76 @@ using System; using TwitchLib.Api.Core.Enums; -namespace TwitchLib.Api.Helix.Models.ChannelPoints +namespace TwitchLib.Api.Helix.Models.ChannelPoints; + +/// +/// A redemption for a custom reward. +/// +public class RewardRedemption { - /// - /// A redemption for a custom reward. - /// - public class RewardRedemption - { - /// - /// The ID that uniquely identifies the broadcaster. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } + /// + /// The ID that uniquely identifies the broadcaster. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } - /// - /// The broadcaster’s login name. (Name is lowercase) - /// - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } + /// + /// The broadcaster’s login name. (Name is lowercase) + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } - /// - /// The broadcaster’s display name. (Name has capitalization) - /// - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } + /// + /// The broadcaster’s display name. (Name has capitalization) + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } - /// - /// The ID that uniquely identifies this redemption. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } + /// + /// The ID that uniquely identifies this redemption. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } - /// - /// The user’s login name. (Name is lowercase) - /// - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } + /// + /// The user’s login name. (Name is lowercase) + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } - /// - /// The ID that uniquely identifies the user that redeemed the reward. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } + /// + /// The ID that uniquely identifies the user that redeemed the reward. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } - /// - /// The user’s display name. (Name has capitalization) - /// - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } + /// + /// The user’s display name. (Name has capitalization) + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } - /// - /// The text that the user entered at the prompt when they redeemed the reward; otherwise, an empty string if user input was not required. - /// - [JsonProperty(PropertyName = "user_input")] - public string UserInput { get; protected set; } + /// + /// The text that the user entered at the prompt when they redeemed the reward; otherwise, an empty string if user input was not required. + /// + [JsonProperty(PropertyName = "user_input")] + public string UserInput { get; protected set; } - /// - /// The state of the redemption. Possible values are: CANCELED, FULFILLED, UNFULFILLED - /// - [JsonProperty(PropertyName = "status")] - public CustomRewardRedemptionStatus Status { get; protected set; } + /// + /// The state of the redemption. Possible values are: CANCELED, FULFILLED, UNFULFILLED + /// + [JsonProperty(PropertyName = "status")] + public CustomRewardRedemptionStatus Status { get; protected set; } - /// - /// The date and time of when the reward was redeemed. - /// - [JsonProperty(PropertyName = "redeemed_at")] - public DateTime RedeemedAt { get; protected set; } + /// + /// The date and time of when the reward was redeemed. + /// + [JsonProperty(PropertyName = "redeemed_at")] + public DateTime RedeemedAt { get; protected set; } - /// - /// The reward that the user redeemed. - /// - [JsonProperty(PropertyName = "reward")] - public Reward Reward { get; protected set; } - } + /// + /// The reward that the user redeemed. + /// + [JsonProperty(PropertyName = "reward")] + public Reward Reward { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateCustomReward/UpdateCustomRewardRequest.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateCustomReward/UpdateCustomRewardRequest.cs index 6fe1ff71..54bafe40 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateCustomReward/UpdateCustomRewardRequest.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateCustomReward/UpdateCustomRewardRequest.cs @@ -1,97 +1,96 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints.UpdateCustomReward +namespace TwitchLib.Api.Helix.Models.ChannelPoints.UpdateCustomReward; + +/// +/// Updates a custom reward. The app used to create the reward is the only app that may update the reward. +/// +/// Requires a user access token that includes the channel:manage:redemptions scope. +/// +[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] +public class UpdateCustomRewardRequest { - /// - /// Updates a custom reward. The app used to create the reward is the only app that may update the reward. - /// - /// Requires a user access token that includes the channel:manage:redemptions scope. - /// - [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] - public class UpdateCustomRewardRequest - { - /// - /// The reward’s title. The title may contain a maximum of 45 characters and it must be unique amongst all of the broadcaster’s custom rewards. - /// - [JsonProperty(PropertyName = "title")] - public string Title { get; set; } + /// + /// The reward’s title. The title may contain a maximum of 45 characters and it must be unique amongst all of the broadcaster’s custom rewards. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; set; } - /// - /// The prompt shown to the viewer when they redeem the reward. Specify a prompt if IsUserInputRequired is true. The prompt is limited to a maximum of 200 characters. - /// - [JsonProperty(PropertyName = "prompt")] - public string Prompt { get; set; } + /// + /// The prompt shown to the viewer when they redeem the reward. Specify a prompt if IsUserInputRequired is true. The prompt is limited to a maximum of 200 characters. + /// + [JsonProperty(PropertyName = "prompt")] + public string Prompt { get; set; } - /// - /// The cost of the reward, in channel points. The minimum is 1 point. - /// - [JsonProperty(PropertyName = "cost")] - public int? Cost { get; set; } + /// + /// The cost of the reward, in channel points. The minimum is 1 point. + /// + [JsonProperty(PropertyName = "cost")] + public int? Cost { get; set; } - /// - /// The background color to use for the reward. Specify the color using Hex format (for example, #00E5CB). - /// - [JsonProperty(PropertyName = "background_color")] - public string BackgroundColor { get; set; } + /// + /// The background color to use for the reward. Specify the color using Hex format (for example, #00E5CB). + /// + [JsonProperty(PropertyName = "background_color")] + public string BackgroundColor { get; set; } - /// - /// A Boolean value that indicates whether the reward is enabled. Set to true to enable the reward. Viewers see only enabled rewards. - /// - [JsonProperty(PropertyName = "is_enabled")] - public bool? IsEnabled { get; set; } + /// + /// A Boolean value that indicates whether the reward is enabled. Set to true to enable the reward. Viewers see only enabled rewards. + /// + [JsonProperty(PropertyName = "is_enabled")] + public bool? IsEnabled { get; set; } - /// - /// A Boolean value that determines whether users must enter information to redeem the reward. Set to true if user input is required. See the Prompt field. - /// - [JsonProperty(PropertyName = "is_user_input_required")] - public bool? IsUserInputRequired { get; set; } + /// + /// A Boolean value that determines whether users must enter information to redeem the reward. Set to true if user input is required. See the Prompt field. + /// + [JsonProperty(PropertyName = "is_user_input_required")] + public bool? IsUserInputRequired { get; set; } - /// - /// A Boolean value that determines whether to limit the maximum number of redemptions allowed per live stream (see the MaxPerStream field). Set to true to limit redemptions. - /// - [JsonProperty(PropertyName = "is_max_per_stream_enabled")] - public bool? IsMaxPerStreamEnabled { get; set; } + /// + /// A Boolean value that determines whether to limit the maximum number of redemptions allowed per live stream (see the MaxPerStream field). Set to true to limit redemptions. + /// + [JsonProperty(PropertyName = "is_max_per_stream_enabled")] + public bool? IsMaxPerStreamEnabled { get; set; } - /// - /// The maximum number of redemptions allowed per live stream. Applied only if IsMaxPerUserPerStreamEnabled is true. The minimum value is 1. - /// - [JsonProperty(PropertyName = "max_per_stream")] - public int? MaxPerStream { get; set; } + /// + /// The maximum number of redemptions allowed per live stream. Applied only if IsMaxPerUserPerStreamEnabled is true. The minimum value is 1. + /// + [JsonProperty(PropertyName = "max_per_stream")] + public int? MaxPerStream { get; set; } - /// - /// A Boolean value that determines whether to limit the maximum number of redemptions allowed per user per stream (see MaxPerUserPerStream). The minimum value is 1. Set to true to limit redemptions. - /// - [JsonProperty(PropertyName = "is_max_per_user_per_stream_enabled")] - public bool? IsMaxPerUserPerStreamEnabled { get; set; } + /// + /// A Boolean value that determines whether to limit the maximum number of redemptions allowed per user per stream (see MaxPerUserPerStream). The minimum value is 1. Set to true to limit redemptions. + /// + [JsonProperty(PropertyName = "is_max_per_user_per_stream_enabled")] + public bool? IsMaxPerUserPerStreamEnabled { get; set; } - /// - /// The maximum number of redemptions allowed per user per stream. Applied only if IsMaxPerUserPerStreamEnabled is true. - /// - [JsonProperty(PropertyName = "max_per_user_per_stream")] - public int? MaxPerUserPerStream { get; set; } + /// + /// The maximum number of redemptions allowed per user per stream. Applied only if IsMaxPerUserPerStreamEnabled is true. + /// + [JsonProperty(PropertyName = "max_per_user_per_stream")] + public int? MaxPerUserPerStream { get; set; } - /// - /// A Boolean value that determines whether to apply a cooldown period between redemptions. Set to true to apply a cooldown period. For the duration of the cooldown period, see GlobalCooldownSeconds. - /// - [JsonProperty(PropertyName = "is_global_cooldown_enabled")] - public bool? IsGlobalCooldownEnabled { get; set; } + /// + /// A Boolean value that determines whether to apply a cooldown period between redemptions. Set to true to apply a cooldown period. For the duration of the cooldown period, see GlobalCooldownSeconds. + /// + [JsonProperty(PropertyName = "is_global_cooldown_enabled")] + public bool? IsGlobalCooldownEnabled { get; set; } - /// - /// The cooldown period, in seconds. Applied only if IsGlobalCooldownEnabled is true. The minimum value is 1; however, for it to be shown in the Twitch UX, the minimum value is 60. - /// - [JsonProperty(PropertyName = "global_cooldown_seconds")] - public int? GlobalCooldownSeconds { get; set; } + /// + /// The cooldown period, in seconds. Applied only if IsGlobalCooldownEnabled is true. The minimum value is 1; however, for it to be shown in the Twitch UX, the minimum value is 60. + /// + [JsonProperty(PropertyName = "global_cooldown_seconds")] + public int? GlobalCooldownSeconds { get; set; } - /// - /// A Boolean value that determines whether to pause the reward. Set to true to pause the reward. Viewers can’t redeem paused rewards, however the reward will still be visible with "Reward is temporarily unavailable. Check back for it soon." message. - /// - [JsonProperty(PropertyName = "is_paused")] - public bool? IsPaused { get; set; } + /// + /// A Boolean value that determines whether to pause the reward. Set to true to pause the reward. Viewers can’t redeem paused rewards, however the reward will still be visible with "Reward is temporarily unavailable. Check back for it soon." message. + /// + [JsonProperty(PropertyName = "is_paused")] + public bool? IsPaused { get; set; } - /// - /// A Boolean value that determines whether redemptions should be set to FULFILLED status immediately when a reward is redeemed. If false, status is set to UNFULFILLED and follows the normal request queue process. - /// - [JsonProperty(PropertyName = "should_redemptions_skip_request_queue")] - public bool? ShouldRedemptionsSkipRequestQueue { get; set; } - } + /// + /// A Boolean value that determines whether redemptions should be set to FULFILLED status immediately when a reward is redeemed. If false, status is set to UNFULFILLED and follows the normal request queue process. + /// + [JsonProperty(PropertyName = "should_redemptions_skip_request_queue")] + public bool? ShouldRedemptionsSkipRequestQueue { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateCustomReward/UpdateCustomRewardResponse.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateCustomReward/UpdateCustomRewardResponse.cs index 62a220bc..fcf7d36a 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateCustomReward/UpdateCustomRewardResponse.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateCustomReward/UpdateCustomRewardResponse.cs @@ -1,16 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints.UpdateCustomReward +namespace TwitchLib.Api.Helix.Models.ChannelPoints.UpdateCustomReward; + +/// +/// The response for updating a custom reward. +/// +public class UpdateCustomRewardResponse { - /// - /// The response for updating a custom reward. - /// - public class UpdateCustomRewardResponse - { - /// - /// The list contains the single reward that you updated. - /// - [JsonProperty(PropertyName = "data")] - public CustomReward[] Data { get; protected set; } - } + /// + /// The list contains the single reward that you updated. + /// + [JsonProperty(PropertyName = "data")] + public CustomReward[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateRedemptionStatus/UpdateCustomRewardRedemptionStatusRequest.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateRedemptionStatus/UpdateCustomRewardRedemptionStatusRequest.cs index 4d12d060..b3fa73af 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateRedemptionStatus/UpdateCustomRewardRedemptionStatusRequest.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateRedemptionStatus/UpdateCustomRewardRedemptionStatusRequest.cs @@ -2,18 +2,17 @@ using Newtonsoft.Json.Converters; using TwitchLib.Api.Core.Enums; -namespace TwitchLib.Api.Helix.Models.ChannelPoints.UpdateCustomRewardRedemptionStatus +namespace TwitchLib.Api.Helix.Models.ChannelPoints.UpdateCustomRewardRedemptionStatus; + +/// +/// The request for updating a redemption’s status. +/// +public class UpdateCustomRewardRedemptionStatusRequest { - /// - /// The request for updating a redemption’s status. - /// - public class UpdateCustomRewardRedemptionStatusRequest - { - /// - /// The status to set the redemption to. Possible values are: CANCELED, FULFILLED. Setting the status to CANCELED refunds the user’s channel points. - /// - [JsonConverter(typeof(StringEnumConverter))] - [JsonProperty(PropertyName = "status")] - public CustomRewardRedemptionStatus Status { get; set; } - } + /// + /// The status to set the redemption to. Possible values are: CANCELED, FULFILLED. Setting the status to CANCELED refunds the user’s channel points. + /// + [JsonConverter(typeof(StringEnumConverter))] + [JsonProperty(PropertyName = "status")] + public CustomRewardRedemptionStatus Status { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateRedemptionStatus/UpdateCustomRewardRedemptionStatusResponse.cs b/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateRedemptionStatus/UpdateCustomRewardRedemptionStatusResponse.cs index 5d1a95b9..4f9d41a7 100644 --- a/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateRedemptionStatus/UpdateCustomRewardRedemptionStatusResponse.cs +++ b/TwitchLib.Api.Helix.Models/ChannelPoints/UpdateRedemptionStatus/UpdateCustomRewardRedemptionStatusResponse.cs @@ -1,16 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ChannelPoints.UpdateRedemptionStatus +namespace TwitchLib.Api.Helix.Models.ChannelPoints.UpdateRedemptionStatus; + +/// +/// The response for updating a redemption’s status. +/// +public class UpdateRedemptionStatusResponse { - /// - /// The response for updating a redemption’s status. - /// - public class UpdateRedemptionStatusResponse - { - /// - /// The state of the redemption. Possible values are: CANCELED, FULFILLED, UNFULFILLED - /// - [JsonProperty(PropertyName = "data")] - public RewardRedemption[] Data { get; protected set; } - } + /// + /// The state of the redemption. Possible values are: CANCELED, FULFILLED, UNFULFILLED + /// + [JsonProperty(PropertyName = "data")] + public RewardRedemption[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetAdSchedule/AdSchedule.cs b/TwitchLib.Api.Helix.Models/Channels/GetAdSchedule/AdSchedule.cs index b9dd25fb..decf0c7e 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetAdSchedule/AdSchedule.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetAdSchedule/AdSchedule.cs @@ -1,41 +1,40 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.GetAdSchedule +namespace TwitchLib.Api.Helix.Models.Channels.GetAdSchedule; + +/// +/// Contains information related to the channel’s ad schedule. +/// +public class AdSchedule { /// - /// Contains information related to the channel’s ad schedule. + /// The number of snoozes available for the broadcaster. + /// + [JsonProperty(PropertyName = "snooze_count")] + public int SnoozeCount { get; protected set; } + /// + /// The UTC timestamp when the broadcaster will gain an additional snooze, in RFC3339 format. + /// + [JsonProperty(PropertyName = "snooze_refresh_at")] + public string SnoozeRefreshAt { get; protected set; } + /// + /// The UTC timestamp of the broadcaster’s next scheduled ad, in RFC3339 format. Empty if the channel has no ad scheduled or is not live. + /// + [JsonProperty(PropertyName = "next_ad_at")] + public string NextAdAt { get; protected set; } + /// + /// The length in seconds of the scheduled upcoming ad break. + /// + [JsonProperty(PropertyName = "duration")] + public int Duration { get; protected set; } + /// + /// The UTC timestamp of the broadcaster’s last ad-break, in RFC3339 format. Empty if the channel has not run an ad or is not live. + /// + [JsonProperty(PropertyName = "last_ad_at")] + public string LastAdAt { get; protected set; } + /// + /// The amount of pre-roll free time remaining for the channel in seconds. Returns 0 if they are currently not pre-roll free. /// - public class AdSchedule - { - /// - /// The number of snoozes available for the broadcaster. - /// - [JsonProperty(PropertyName = "snooze_count")] - public int SnoozeCount { get; protected set; } - /// - /// The UTC timestamp when the broadcaster will gain an additional snooze, in RFC3339 format. - /// - [JsonProperty(PropertyName = "snooze_refresh_at")] - public string SnoozeRefreshAt { get; protected set; } - /// - /// The UTC timestamp of the broadcaster’s next scheduled ad, in RFC3339 format. Empty if the channel has no ad scheduled or is not live. - /// - [JsonProperty(PropertyName = "next_ad_at")] - public string NextAdAt { get; protected set; } - /// - /// The length in seconds of the scheduled upcoming ad break. - /// - [JsonProperty(PropertyName = "duration")] - public int Duration { get; protected set; } - /// - /// The UTC timestamp of the broadcaster’s last ad-break, in RFC3339 format. Empty if the channel has not run an ad or is not live. - /// - [JsonProperty(PropertyName = "last_ad_at")] - public string LastAdAt { get; protected set; } - /// - /// The amount of pre-roll free time remaining for the channel in seconds. Returns 0 if they are currently not pre-roll free. - /// - [JsonProperty(PropertyName = "preroll_free_time")] - public int PrerollFreeTime { get; protected set; } - } + [JsonProperty(PropertyName = "preroll_free_time")] + public int PrerollFreeTime { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetAdSchedule/GetAdScheduleResponse.cs b/TwitchLib.Api.Helix.Models/Channels/GetAdSchedule/GetAdScheduleResponse.cs index 36537c45..92860931 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetAdSchedule/GetAdScheduleResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetAdSchedule/GetAdScheduleResponse.cs @@ -1,16 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.GetAdSchedule +namespace TwitchLib.Api.Helix.Models.Channels.GetAdSchedule; + +/// +/// Response to getting ad schedule +/// +public class GetAdScheduleResponse { /// - /// Response to getting ad schedule + /// A list that contains information related to the channel’s ad schedule. /// - public class GetAdScheduleResponse - { - /// - /// A list that contains information related to the channel’s ad schedule. - /// - [JsonProperty(PropertyName = "data")] - public AdSchedule[] Data { get; protected set; } - } + [JsonProperty(PropertyName = "data")] + public AdSchedule[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetChannelEditors/ChannelEditor.cs b/TwitchLib.Api.Helix.Models/Channels/GetChannelEditors/ChannelEditor.cs index d27815cf..8c8bf7b1 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetChannelEditors/ChannelEditor.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetChannelEditors/ChannelEditor.cs @@ -1,29 +1,28 @@ using Newtonsoft.Json; using System; -namespace TwitchLib.Api.Helix.Models.Channels.GetChannelEditors +namespace TwitchLib.Api.Helix.Models.Channels.GetChannelEditors; + +/// +/// A user that is a channel editor for the broadcaster. +/// +public class ChannelEditor { - /// - /// A user that is a channel editor for the broadcaster. - /// - public class ChannelEditor - { - /// - /// An ID that uniquely identifies a user with editor permissions. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } + /// + /// An ID that uniquely identifies a user with editor permissions. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } - /// - /// The user’s display name. - /// - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } - /// - /// The date and time when the user became one of the broadcaster’s editors. - /// - [JsonProperty(PropertyName = "created_at")] - public DateTime CreatedAt { get; protected set; } - } + /// + /// The date and time when the user became one of the broadcaster’s editors. + /// + [JsonProperty(PropertyName = "created_at")] + public DateTime CreatedAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetChannelEditors/GetChannelEditorsResponse.cs b/TwitchLib.Api.Helix.Models/Channels/GetChannelEditors/GetChannelEditorsResponse.cs index ac9d9654..8d566861 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetChannelEditors/GetChannelEditorsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetChannelEditors/GetChannelEditorsResponse.cs @@ -1,17 +1,16 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.GetChannelEditors +namespace TwitchLib.Api.Helix.Models.Channels.GetChannelEditors; + +/// +/// Response for GetChannelEditors that returns a list of the broadcaster's channels editors. +/// +public class GetChannelEditorsResponse { - /// - /// Response for GetChannelEditors that returns a list of the broadcaster's channels editors. - /// - public class GetChannelEditorsResponse - { - /// - /// A list of users that are editors for the specified broadcaster. - /// The list is empty if the broadcaster doesn’t have editors. - /// - [JsonProperty(PropertyName = "data")] - public ChannelEditor[] Data { get; protected set; } - } + /// + /// A list of users that are editors for the specified broadcaster. + /// The list is empty if the broadcaster doesn’t have editors. + /// + [JsonProperty(PropertyName = "data")] + public ChannelEditor[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetChannelFollowers/ChannelFollower.cs b/TwitchLib.Api.Helix.Models/Channels/GetChannelFollowers/ChannelFollower.cs index 4dfdf480..bb18bf5f 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetChannelFollowers/ChannelFollower.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetChannelFollowers/ChannelFollower.cs @@ -1,31 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.GetChannelFollowers +namespace TwitchLib.Api.Helix.Models.Channels.GetChannelFollowers; + +/// +/// A user that follow the specified broadcaster. +/// +public class ChannelFollower { - public class ChannelFollower - { - /// - /// An ID that uniquely identifies the user that’s following the broadcaster. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - - /// - /// The user’s login name. - /// - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - - /// - /// The user’s display name. - /// - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - - /// - /// The UTC timestamp when the user started following the broadcaster. - /// - [JsonProperty(PropertyName = "followed_at")] - public string FollowedAt { get; protected set; } - } + /// + /// An ID that uniquely identifies the user that’s following the broadcaster. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The UTC timestamp when the user started following the broadcaster. + /// + [JsonProperty(PropertyName = "followed_at")] + public string FollowedAt { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Channels/GetChannelFollowers/GetChannelFollowersResponse.cs b/TwitchLib.Api.Helix.Models/Channels/GetChannelFollowers/GetChannelFollowersResponse.cs index b64942e6..016cda83 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetChannelFollowers/GetChannelFollowersResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetChannelFollowers/GetChannelFollowersResponse.cs @@ -1,28 +1,30 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Channels.GetChannelFollowers +namespace TwitchLib.Api.Helix.Models.Channels.GetChannelFollowers; + +/// +/// Users that follow the specified broadcaster response object. +/// +public class GetChannelFollowersResponse { - public class GetChannelFollowersResponse - { - /// - /// The list of users that follow the specified broadcaster. - /// The list is in descending order by followed_at (with the most recent follower first). - /// The list is empty if nobody follows the broadcaster. - /// - [JsonProperty(PropertyName = "data")] - public ChannelFollower[] Data { get; protected set; } - - /// - /// Contains the information used to page through the list of results. The object is empty if there are no more pages left to page through. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - - /// - /// The total number of users that follow this broadcaster. As someone pages through the list, the number of users may change as users follow or unfollow the broadcaster. - /// - [JsonProperty(PropertyName = "total")] - public int Total { get; protected set; } - } + /// + /// The list of users that follow the specified broadcaster. + /// The list is in descending order by followed_at (with the most recent follower first). + /// The list is empty if nobody follows the broadcaster. + /// + [JsonProperty(PropertyName = "data")] + public ChannelFollower[] Data { get; protected set; } + + /// + /// Contains the information used to page through the list of results. The object is empty if there are no more pages left to page through. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } + + /// + /// The total number of users that follow this broadcaster. As someone pages through the list, the number of users may change as users follow or unfollow the broadcaster. + /// + [JsonProperty(PropertyName = "total")] + public int Total { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Channels/GetChannelInformation/ChannelInformation.cs b/TwitchLib.Api.Helix.Models/Channels/GetChannelInformation/ChannelInformation.cs index b186eab7..e6ff034c 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetChannelInformation/ChannelInformation.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetChannelInformation/ChannelInformation.cs @@ -1,81 +1,80 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.GetChannelInformation +namespace TwitchLib.Api.Helix.Models.Channels.GetChannelInformation; + +/// +/// Information about a channel +/// +public class ChannelInformation { - /// - /// Information about a channel - /// - public class ChannelInformation - { - /// - /// An ID that uniquely identifies the broadcaster. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } + /// + /// An ID that uniquely identifies the broadcaster. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } - /// - /// The broadcaster’s login name. - /// - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } + /// + /// The broadcaster’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } - /// - /// The broadcaster’s display name. - /// - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } - /// - /// An ID that uniquely identifies the game that the broadcaster is playing or last played. - /// The value is an empty string if the broadcaster has never played a game. - /// - [JsonProperty(PropertyName = "game_id")] - public string GameId { get; protected set; } + /// + /// An ID that uniquely identifies the game that the broadcaster is playing or last played. + /// The value is an empty string if the broadcaster has never played a game. + /// + [JsonProperty(PropertyName = "game_id")] + public string GameId { get; protected set; } - /// - /// The broadcaster’s preferred language. - /// The value is an ISO 639-1 two-letter language code (for example, en for English). The value is set to “other” if the language is not a Twitch supported language. - /// - [JsonProperty(PropertyName = "broadcaster_language")] - public string BroadcasterLanguage { get; protected set; } + /// + /// The broadcaster’s preferred language. + /// The value is an ISO 639-1 two-letter language code (for example, en for English). The value is set to “other” if the language is not a Twitch supported language. + /// + [JsonProperty(PropertyName = "broadcaster_language")] + public string BroadcasterLanguage { get; protected set; } - /// - /// The name of the game that the broadcaster is playing or last played. - /// The value is an empty string if the broadcaster has never played a game. - /// - [JsonProperty(PropertyName = "game_name")] - public string GameName { get; protected set; } + /// + /// The name of the game that the broadcaster is playing or last played. + /// The value is an empty string if the broadcaster has never played a game. + /// + [JsonProperty(PropertyName = "game_name")] + public string GameName { get; protected set; } - /// - /// The title of the stream that the broadcaster is currently streaming or last streamed. - /// The value is an empty string if the broadcaster has never streamed. - /// - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } + /// + /// The title of the stream that the broadcaster is currently streaming or last streamed. + /// The value is an empty string if the broadcaster has never streamed. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } - /// - /// The value of the broadcaster’s stream delay setting, in seconds. - /// This field’s value defaults to zero unless 1) the request specifies a user access token, 2) the ID in the broadcaster_id query parameter matches the user ID in the access token, and 3) the broadcaster has partner status and they set a non-zero stream delay value. - /// - [JsonProperty(PropertyName = "delay")] - public int Delay { get; protected set; } + /// + /// The value of the broadcaster’s stream delay setting, in seconds. + /// This field’s value defaults to zero unless 1) the request specifies a user access token, 2) the ID in the broadcaster_id query parameter matches the user ID in the access token, and 3) the broadcaster has partner status and they set a non-zero stream delay value. + /// + [JsonProperty(PropertyName = "delay")] + public int Delay { get; protected set; } - /// - /// The tags applied to the channel. - /// - [JsonProperty(PropertyName = "tags")] - public string[] Tags { get; protected set; } + /// + /// The tags applied to the channel. + /// + [JsonProperty(PropertyName = "tags")] + public string[] Tags { get; protected set; } - /// - /// The Content Classification Labels (CCL) applied to the channel. - /// - [JsonProperty(PropertyName = "content_classification_labels")] - public string[] ContentClassificationLabels { get; protected set; } + /// + /// The Content Classification Labels (CCL) applied to the channel. + /// + [JsonProperty(PropertyName = "content_classification_labels")] + public string[] ContentClassificationLabels { get; protected set; } - /// - /// Boolean flag indicating if the channel has branded content. - /// - [JsonProperty(PropertyName = "is_branded_content")] - public bool IsBrandedContent { get; protected set; } - } + /// + /// Boolean flag indicating if the channel has branded content. + /// + [JsonProperty(PropertyName = "is_branded_content")] + public bool IsBrandedContent { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetChannelInformation/GetChannelInformationResponse.cs b/TwitchLib.Api.Helix.Models/Channels/GetChannelInformation/GetChannelInformationResponse.cs index f90023a3..e69ce020 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetChannelInformation/GetChannelInformationResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetChannelInformation/GetChannelInformationResponse.cs @@ -1,17 +1,16 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.GetChannelInformation +namespace TwitchLib.Api.Helix.Models.Channels.GetChannelInformation; + +/// +/// Response for GetChannelInformation which returns information about one or more channels. +/// +public class GetChannelInformationResponse { - /// - /// Response for GetChannelInformation which returns information about one or more channels. - /// - public class GetChannelInformationResponse - { - /// - /// A list that contains information about the specified channels. - /// The list is empty if the specified channels weren’t found. - /// - [JsonProperty(PropertyName = "data")] - public ChannelInformation[] Data { get; protected set; } - } + /// + /// A list that contains information about the specified channels. + /// The list is empty if the specified channels weren’t found. + /// + [JsonProperty(PropertyName = "data")] + public ChannelInformation[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetChannelVIPs/ChannelVIPsResponseModel.cs b/TwitchLib.Api.Helix.Models/Channels/GetChannelVIPs/ChannelVIPsResponseModel.cs index 4faaa420..2e31b0bb 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetChannelVIPs/ChannelVIPsResponseModel.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetChannelVIPs/ChannelVIPsResponseModel.cs @@ -1,26 +1,25 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.GetChannelVIPs +namespace TwitchLib.Api.Helix.Models.Channels.GetChannelVIPs; + +/// +/// A user that is a VIP in a broadcaster's channel. +/// +public class ChannelVIPsResponseModel { - /// - /// A user that is a VIP in a broadcaster's channel. - /// - public class ChannelVIPsResponseModel - { - /// - /// An ID that uniquely identifies the VIP user. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - /// - /// The user’s display name. (Name has capitalization) - /// - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - /// - /// The user’s login name. (Name is lowercase) - /// - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - } + /// + /// An ID that uniquely identifies the VIP user. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + /// + /// The user’s display name. (Name has capitalization) + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + /// + /// The user’s login name. (Name is lowercase) + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetChannelVIPs/GetChannelVIPsResponse.cs b/TwitchLib.Api.Helix.Models/Channels/GetChannelVIPs/GetChannelVIPsResponse.cs index 4334c4da..9359f292 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetChannelVIPs/GetChannelVIPsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetChannelVIPs/GetChannelVIPsResponse.cs @@ -1,24 +1,23 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Channels.GetChannelVIPs +namespace TwitchLib.Api.Helix.Models.Channels.GetChannelVIPs; + +/// +/// Response for GetVIPs that returns a list of the broadcaster's VIPs. +/// +public class GetChannelVIPsResponse { - /// - /// Response for GetVIPs that returns a list of the broadcaster's VIPs. - /// - public class GetChannelVIPsResponse - { - /// - /// The list of VIPs. - /// The list is empty if the channel doesn’t have VIP users. The list does not include the broadcaster. - /// - [JsonProperty(PropertyName = "data")] - public ChannelVIPsResponseModel[] Data { get; protected set; } + /// + /// The list of VIPs. + /// The list is empty if the channel doesn’t have VIP users. The list does not include the broadcaster. + /// + [JsonProperty(PropertyName = "data")] + public ChannelVIPsResponseModel[] Data { get; protected set; } - /// - /// Contains the information used to page through the list of results. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/GetFollowedChannels/FollowedChannel.cs b/TwitchLib.Api.Helix.Models/Channels/GetFollowedChannels/FollowedChannel.cs index 862bf899..27e0120d 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetFollowedChannels/FollowedChannel.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetFollowedChannels/FollowedChannel.cs @@ -1,34 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.GetFollowedChannels +namespace TwitchLib.Api.Helix.Models.Channels.GetFollowedChannels; + +/// +/// The broadcaster a user is following. +/// +public class FollowedChannel { - /// - /// The broadcaster a user is following. - /// - public class FollowedChannel - { - /// - /// An ID that uniquely identifies the broadcaster that this user is following. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } + /// + /// An ID that uniquely identifies the broadcaster that this user is following. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } - /// - /// The broadcaster’s login name. (Name is lowercase) - /// - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } + /// + /// The broadcaster’s login name. (Name is lowercase) + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } - /// - /// The broadcaster’s display name. (Name has capitalization) - /// - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } + /// + /// The broadcaster’s display name. (Name has capitalization) + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } - /// - /// The UTC timestamp when the user started following the broadcaster. - /// - [JsonProperty(PropertyName = "followed_at")] - public string FollowedAt { get; protected set; } - } + /// + /// The UTC timestamp when the user started following the broadcaster. + /// + [JsonProperty(PropertyName = "followed_at")] + public string FollowedAt { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Channels/GetFollowedChannels/GetFollowedChannelsResponse.cs b/TwitchLib.Api.Helix.Models/Channels/GetFollowedChannels/GetFollowedChannelsResponse.cs index 679bfdb0..730a9935 100644 --- a/TwitchLib.Api.Helix.Models/Channels/GetFollowedChannels/GetFollowedChannelsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/GetFollowedChannels/GetFollowedChannelsResponse.cs @@ -1,34 +1,33 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Channels.GetFollowedChannels +namespace TwitchLib.Api.Helix.Models.Channels.GetFollowedChannels; + +/// +/// The response for GetFollowedChannels that returns a list of broadcasters that the specified user follows. +/// This can also return whether a user follows a specific broadcaster. +/// +public class GetFollowedChannelsResponse { - /// - /// The response for GetFollowedChannels that returns a list of broadcasters that the specified user follows. - /// This can also return whether a user follows a specific broadcaster. - /// - public class GetFollowedChannelsResponse - { - /// - /// The list of broadcasters that the user follows. - /// The list is in descending order by followed_at, with the most recently followed broadcaster first. - /// The list is empty if the user doesn’t follow anyone. - /// - [JsonProperty(PropertyName = "data")] - public FollowedChannel[] Data { get; protected set; } + /// + /// The list of broadcasters that the user follows. + /// The list is in descending order by followed_at, with the most recently followed broadcaster first. + /// The list is empty if the user doesn’t follow anyone. + /// + [JsonProperty(PropertyName = "data")] + public FollowedChannel[] Data { get; protected set; } - /// - /// Contains the information used to page through the list of results. - /// The object is empty if there are no more pages left to page through. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } + /// + /// Contains the information used to page through the list of results. + /// The object is empty if there are no more pages left to page through. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } - /// - /// The total number of broadcasters that the user follows. - /// As someone pages through the list, the number may change as the user follows or unfollows broadcasters. - /// - [JsonProperty(PropertyName = "total")] - public int Total { get; protected set; } - } + /// + /// The total number of broadcasters that the user follows. + /// As someone pages through the list, the number may change as the user follows or unfollows broadcasters. + /// + [JsonProperty(PropertyName = "total")] + public int Total { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Channels/ModifyChannelInformation/ContentClassificationLabel.cs b/TwitchLib.Api.Helix.Models/Channels/ModifyChannelInformation/ContentClassificationLabel.cs index 84ec9d7a..4c651b87 100644 --- a/TwitchLib.Api.Helix.Models/Channels/ModifyChannelInformation/ContentClassificationLabel.cs +++ b/TwitchLib.Api.Helix.Models/Channels/ModifyChannelInformation/ContentClassificationLabel.cs @@ -2,26 +2,25 @@ using Newtonsoft.Json.Converters; using TwitchLib.Api.Core.Enums; -namespace TwitchLib.Api.Helix.Models.Channels.ModifyChannelInformation +namespace TwitchLib.Api.Helix.Models.Channels.ModifyChannelInformation; + +/// +/// Labels that can be set for the channel's Content Classification Labels +/// +public class ContentClassificationLabel { - /// - /// Labels that can be set for the channel's Content Classification Labels - /// - public class ContentClassificationLabel - { - /// - /// ID of the Content Classification Labels that must be added/removed from the channel. - /// Can be one of the following values: - /// DrugsIntoxication, SexualThemes, ViolentGraphic, Gambling, ProfanityVulgarity - /// - [JsonConverter(typeof(StringEnumConverter))] - [JsonProperty(PropertyName = "id")] - public ContentClassificationLabelEnum Id { get; set; } + /// + /// ID of the Content Classification Labels that must be added/removed from the channel. + /// Can be one of the following values: + /// DrugsIntoxication, SexualThemes, ViolentGraphic, Gambling, ProfanityVulgarity + /// + [JsonConverter(typeof(StringEnumConverter))] + [JsonProperty(PropertyName = "id")] + public ContentClassificationLabelEnum Id { get; set; } - /// - /// Boolean flag indicating whether the label should be enabled (true) or disabled (false) for the channel. - /// - [JsonProperty(PropertyName = "is_enabled")] - public bool IsEnabled { get; set; } - } + /// + /// Boolean flag indicating whether the label should be enabled (true) or disabled (false) for the channel. + /// + [JsonProperty(PropertyName = "is_enabled")] + public bool IsEnabled { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/ModifyChannelInformation/ModifyChannelInformationRequest.cs b/TwitchLib.Api.Helix.Models/Channels/ModifyChannelInformation/ModifyChannelInformationRequest.cs index 793f67d9..3fdd80d5 100644 --- a/TwitchLib.Api.Helix.Models/Channels/ModifyChannelInformation/ModifyChannelInformationRequest.cs +++ b/TwitchLib.Api.Helix.Models/Channels/ModifyChannelInformation/ModifyChannelInformationRequest.cs @@ -1,64 +1,63 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.ModifyChannelInformation +namespace TwitchLib.Api.Helix.Models.Channels.ModifyChannelInformation; + +/// +/// A request to update a channel's properties +/// All fields are optional but you must specify at least one field. +/// +[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] +public class ModifyChannelInformationRequest { - /// - /// A request to update a channel's properties - /// All fields are optional but you must specify at least one field. - /// - [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] - public class ModifyChannelInformationRequest - { - /// - /// The ID of the game that the broadcaster will be playing. - /// The game will not updated if the ID is not a game ID that Twitch recognizes. - /// To unset this field, use “0” or “” (an empty string). - /// - [JsonProperty(PropertyName = "game_id", NullValueHandling = NullValueHandling.Ignore)] - public string GameId { get; set; } + /// + /// The ID of the game that the broadcaster will be playing. + /// The game will not updated if the ID is not a game ID that Twitch recognizes. + /// To unset this field, use “0” or “” (an empty string). + /// + [JsonProperty(PropertyName = "game_id", NullValueHandling = NullValueHandling.Ignore)] + public string GameId { get; set; } - /// - /// The broadcaster’s preferred language. - /// Set the value to an ISO 639-1 two-letter language code - for example, en for English. - /// Set the value to “other” if the broadcaster’s preferred language is not a Twitch supported language. - /// The language will not updated if the language code is not a Twitch supported language. - /// - [JsonProperty(PropertyName = "broadcaster_language", NullValueHandling = NullValueHandling.Ignore)] - public string BroadcasterLanguage { get; set; } + /// + /// The broadcaster’s preferred language. + /// Set the value to an ISO 639-1 two-letter language code - for example, en for English. + /// Set the value to “other” if the broadcaster’s preferred language is not a Twitch supported language. + /// The language will not updated if the language code is not a Twitch supported language. + /// + [JsonProperty(PropertyName = "broadcaster_language", NullValueHandling = NullValueHandling.Ignore)] + public string BroadcasterLanguage { get; set; } - /// - /// The title of the broadcaster's stream. - /// You may not set this field to an empty string. - /// - [JsonProperty(PropertyName = "title", NullValueHandling = NullValueHandling.Ignore)] - public string Title { get; set; } + /// + /// The title of the broadcaster's stream. + /// You may not set this field to an empty string. + /// + [JsonProperty(PropertyName = "title", NullValueHandling = NullValueHandling.Ignore)] + public string Title { get; set; } - /// - /// The number of seconds you want your broadcast buffered before streaming it live. The delay helps ensure fairness during competitive play. - /// The maximum delay is 900 seconds (15 minutes). - /// Only users with Partner status may set this field. - /// - [JsonProperty(PropertyName = "delay", NullValueHandling = NullValueHandling.Ignore)] - public int? Delay { get; set; } + /// + /// The number of seconds you want your broadcast buffered before streaming it live. The delay helps ensure fairness during competitive play. + /// The maximum delay is 900 seconds (15 minutes). + /// Only users with Partner status may set this field. + /// + [JsonProperty(PropertyName = "delay", NullValueHandling = NullValueHandling.Ignore)] + public int? Delay { get; set; } - /// - /// A list of channel-defined tags to apply to the channel. Tags help identify the content that the channel streams. - /// A channel may specify a maximum of 10 tags. Each tag is limited to a maximum of 25 characters and may not be an empty string or contain spaces or special characters. Tags are case insensitive. For readability, consider using camelCasing or PascalCasing. - /// To remove all tags from the channel, set tags to an empty array. - /// - [JsonProperty(PropertyName = "tags", NullValueHandling = NullValueHandling.Ignore)] - public string[] Tags { get; set; } + /// + /// A list of channel-defined tags to apply to the channel. Tags help identify the content that the channel streams. + /// A channel may specify a maximum of 10 tags. Each tag is limited to a maximum of 25 characters and may not be an empty string or contain spaces or special characters. Tags are case insensitive. For readability, consider using camelCasing or PascalCasing. + /// To remove all tags from the channel, set tags to an empty array. + /// + [JsonProperty(PropertyName = "tags", NullValueHandling = NullValueHandling.Ignore)] + public string[] Tags { get; set; } - /// - /// List of labels that should be set as the Channel’s Content Classificiation Labels (CCL). - /// - [JsonProperty(PropertyName = "content_classification_labels", NullValueHandling = NullValueHandling.Ignore)] - public ContentClassificationLabel[] ContentClassificationLabels { get; set; } + /// + /// List of labels that should be set as the Channel’s Content Classificiation Labels (CCL). + /// + [JsonProperty(PropertyName = "content_classification_labels", NullValueHandling = NullValueHandling.Ignore)] + public ContentClassificationLabel[] ContentClassificationLabels { get; set; } - /// - /// Boolean flag indicating if the channel has branded content. - /// - [JsonProperty(PropertyName = "is_branded_content", NullValueHandling = NullValueHandling.Ignore)] - public bool IsBrandedContent { get; set; } - } + /// + /// Boolean flag indicating if the channel has branded content. + /// + [JsonProperty(PropertyName = "is_branded_content", NullValueHandling = NullValueHandling.Ignore)] + public bool IsBrandedContent { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/SnoozeNextAd/SnoozeNextAd.cs b/TwitchLib.Api.Helix.Models/Channels/SnoozeNextAd/SnoozeNextAd.cs index 071c7592..818eceb6 100644 --- a/TwitchLib.Api.Helix.Models/Channels/SnoozeNextAd/SnoozeNextAd.cs +++ b/TwitchLib.Api.Helix.Models/Channels/SnoozeNextAd/SnoozeNextAd.cs @@ -1,29 +1,25 @@ using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Text; -namespace TwitchLib.Api.Helix.Models.Channels.SnoozeNextAd +namespace TwitchLib.Api.Helix.Models.Channels.SnoozeNextAd; + +/// +/// Contains information about the channel’s snoozes and next upcoming ad after successfully snoozing. +/// +public class SnoozeNextAd { /// - /// Contains information about the channel’s snoozes and next upcoming ad after successfully snoozing. + /// The number of snoozes available for the broadcaster. + /// + [JsonProperty(PropertyName = "snooze_count")] + public int SnoozeCount { get; protected set; } + /// + /// The UTC timestamp when the broadcaster will gain an additional snooze, in RFC3339 format. + /// + [JsonProperty(PropertyName = "snooze_refresh_at")] + public string SnoozeRefreshAt { get; protected set; } + /// + /// The UTC timestamp of the broadcaster’s next scheduled ad, in RFC3339 format. /// - public class SnoozeNextAd - { - /// - /// The number of snoozes available for the broadcaster. - /// - [JsonProperty(PropertyName = "snooze_count")] - public int SnoozeCount { get; protected set; } - /// - /// The UTC timestamp when the broadcaster will gain an additional snooze, in RFC3339 format. - /// - [JsonProperty(PropertyName = "snooze_refresh_at")] - public string SnoozeRefreshAt { get; protected set; } - /// - /// The UTC timestamp of the broadcaster’s next scheduled ad, in RFC3339 format. - /// - [JsonProperty(PropertyName = "next_ad_at")] - public string NextAdAt { get; protected set; } - } + [JsonProperty(PropertyName = "next_ad_at")] + public string NextAdAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/SnoozeNextAd/SnoozeNextAdResponse.cs b/TwitchLib.Api.Helix.Models/Channels/SnoozeNextAd/SnoozeNextAdResponse.cs index 401f673e..aaa5c943 100644 --- a/TwitchLib.Api.Helix.Models/Channels/SnoozeNextAd/SnoozeNextAdResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/SnoozeNextAd/SnoozeNextAdResponse.cs @@ -1,19 +1,15 @@ using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Text; -namespace TwitchLib.Api.Helix.Models.Channels.SnoozeNextAd +namespace TwitchLib.Api.Helix.Models.Channels.SnoozeNextAd; + +/// +/// Response to attempting to snooze an ad. +/// +public class SnoozeNextAdResponse { /// - /// Response to attempting to snooze an ad. + /// A list that contains information about the channel’s snoozes and next upcoming ad after successfully snoozing. /// - public class SnoozeNextAdResponse - { - /// - /// A list that contains information about the channel’s snoozes and next upcoming ad after successfully snoozing. - /// - [JsonProperty(PropertyName = "data")] - public SnoozeNextAd[] Data { get; protected set; } - } + [JsonProperty(PropertyName = "data")] + public SnoozeNextAd[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialRequest.cs b/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialRequest.cs index c3f8bcb7..1cce117d 100644 --- a/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialRequest.cs +++ b/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialRequest.cs @@ -1,25 +1,24 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.StartCommercial +namespace TwitchLib.Api.Helix.Models.Channels.StartCommercial; + +/// +/// Request Body for StartCommercial +/// +public class StartCommercialRequest { - /// - /// Request Body for StartCommercial - /// - public class StartCommercialRequest - { - /// - /// The ID of the partner or affiliate broadcaster that wants to run the commercial. - /// This ID must match the user ID found in the OAuth token. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; set; } + /// + /// The ID of the partner or affiliate broadcaster that wants to run the commercial. + /// This ID must match the user ID found in the OAuth token. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; set; } - /// - /// The length of the commercial to run, in seconds. - /// Twitch tries to serve a commercial that’s the requested length, but it may be shorter or longer. - /// The maximum length you should request is 180 seconds. - /// - [JsonProperty(PropertyName = "length")] - public int Length { get; set; } - } + /// + /// The length of the commercial to run, in seconds. + /// Twitch tries to serve a commercial that’s the requested length, but it may be shorter or longer. + /// The maximum length you should request is 180 seconds. + /// + [JsonProperty(PropertyName = "length")] + public int Length { get; set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialResponse.cs b/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialResponse.cs index 91e307d7..0e8871e6 100644 --- a/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialResponse.cs @@ -1,29 +1,28 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Channels.StartCommercial +namespace TwitchLib.Api.Helix.Models.Channels.StartCommercial; + +/// +/// The response for starting a commercial on a specified channel. +/// +public class StartCommercialResponse { - /// - /// The response for starting a commercial on a specified channel. - /// - public class StartCommercialResponse - { - /// - /// The length of the commercial you requested. - /// If you request a commercial that’s longer than 180 seconds, the API uses 180 seconds. - /// - [JsonProperty(PropertyName = "length")] - public int Length { get; protected set; } + /// + /// The length of the commercial you requested. + /// If you request a commercial that’s longer than 180 seconds, the API uses 180 seconds. + /// + [JsonProperty(PropertyName = "length")] + public int Length { get; protected set; } - /// - /// A message that indicates whether Twitch was able to serve an ad. - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; protected set; } + /// + /// A message that indicates whether Twitch was able to serve an ad. + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; protected set; } - /// - /// The number of seconds you must wait before running another commercial. - /// - [JsonProperty(PropertyName = "retry_after")] - public int RetryAfter { get; protected set; } - } + /// + /// The number of seconds you must wait before running another commercial. + /// + [JsonProperty(PropertyName = "retry_after")] + public int RetryAfter { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Charity/Amount.cs b/TwitchLib.Api.Helix.Models/Charity/Amount.cs index 3b0796f3..49aa5e0d 100644 --- a/TwitchLib.Api.Helix.Models/Charity/Amount.cs +++ b/TwitchLib.Api.Helix.Models/Charity/Amount.cs @@ -1,31 +1,30 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Charity +namespace TwitchLib.Api.Helix.Models.Charity; + +/// +/// An object that contains the amount of money that the user donated. +/// +public class Amount { - /// - /// - /// - public class Amount - { - /// - /// The monetary amount specified in the currency’s minor unit. - /// For example, the minor units for USD is cents, so if the amount is $5.50 USD, value is set to 550. - /// - [JsonProperty(PropertyName = "value")] - public int? Value { get; protected set; } + /// + /// The monetary amount specified in the currency’s minor unit. + /// For example, the minor units for USD is cents, so if the amount is $5.50 USD, value is set to 550. + /// + [JsonProperty(PropertyName = "value")] + public int? Value { get; protected set; } - /// - /// The number of decimal places used by the currency.
- /// For example, USD uses two decimal places.
- /// Use this number to translate value from minor units to major units by using the formula: value / 10^decimal_places - ///
- [JsonProperty(PropertyName = "decimal_places")] - public int? DecimalPlaces { get; protected set; } + /// + /// The number of decimal places used by the currency.
+ /// For example, USD uses two decimal places.
+ /// Use this number to translate value from minor units to major units by using the formula: value / 10^decimal_places + ///
+ [JsonProperty(PropertyName = "decimal_places")] + public int? DecimalPlaces { get; protected set; } - /// - /// The ISO-4217 three-letter currency code that identifies the type of currency in value. - /// - [JsonProperty(PropertyName = "currency")] - public string Currency { get; protected set; } - } + /// + /// The ISO-4217 three-letter currency code that identifies the type of currency in value. + /// + [JsonProperty(PropertyName = "currency")] + public string Currency { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaign/CharityCampaignResponseModel.cs b/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaign/CharityCampaignResponseModel.cs index 3da2f504..c3e4d21c 100644 --- a/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaign/CharityCampaignResponseModel.cs +++ b/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaign/CharityCampaignResponseModel.cs @@ -1,72 +1,71 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Charity.GetCharityCampaign +namespace TwitchLib.Api.Helix.Models.Charity.GetCharityCampaign; + +/// +/// The charity campaign a broadcaster is raising money for through their channel. +/// +public class CharityCampaignResponseModel { - /// - /// The charity campaign a broadcaster is raising money for through their channel. - /// - public class CharityCampaignResponseModel - { - /// - /// An ID that uniquely identifies the charity campaign. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } + /// + /// An ID that uniquely identifies the charity campaign. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } - /// - /// An ID that uniquely identifies the broadcaster that’s running the campaign. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } + /// + /// An ID that uniquely identifies the broadcaster that’s running the campaign. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } - /// - /// The broadcaster’s login name. (Name is lowercase) - /// - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } + /// + /// The broadcaster’s login name. (Name is lowercase) + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } - /// - /// The broadcaster’s display name. (Name has capitalization) - /// - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } + /// + /// The broadcaster’s display name. (Name has capitalization) + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } - /// - /// The charity’s name. - /// - [JsonProperty(PropertyName = "charity_name")] - public string CharityName { get; protected set; } + /// + /// The charity’s name. + /// + [JsonProperty(PropertyName = "charity_name")] + public string CharityName { get; protected set; } - /// - /// A description of the charity. - /// - [JsonProperty(PropertyName = "charity_description")] - public string CharityDescription { get; protected set; } + /// + /// A description of the charity. + /// + [JsonProperty(PropertyName = "charity_description")] + public string CharityDescription { get; protected set; } - /// - /// A URL to an image of the charity’s logo.
- /// The image’s type is PNG and its size is 100px X 100px.
- ///
- [JsonProperty(PropertyName = "charity_logo")] - public string CharityLogo { get; protected set; } + /// + /// A URL to an image of the charity’s logo.
+ /// The image’s type is PNG and its size is 100px X 100px.
+ ///
+ [JsonProperty(PropertyName = "charity_logo")] + public string CharityLogo { get; protected set; } - /// - /// A URL to the charity’s website. - /// - [JsonProperty(PropertyName = "charity_website")] - public string CharityWebsite { get; protected set; } + /// + /// A URL to the charity’s website. + /// + [JsonProperty(PropertyName = "charity_website")] + public string CharityWebsite { get; protected set; } - /// - /// An object that contains the current amount of donations that the campaign has received. - /// - [JsonProperty(PropertyName = "current_amount")] - public Amount CurrentAmount { get; protected set; } + /// + /// An object that contains the current amount of donations that the campaign has received. + /// + [JsonProperty(PropertyName = "current_amount")] + public Amount CurrentAmount { get; protected set; } - /// - /// An object that contains the amount of money that the campaign is trying to raise. - /// This field may be null if the broadcaster has not defined a target fundraising goal. - /// - [JsonProperty(PropertyName = "target_amount")] - public Amount TargetAmount { get; protected set; } - } + /// + /// An object that contains the amount of money that the campaign is trying to raise. + /// This field may be null if the broadcaster has not defined a target fundraising goal. + /// + [JsonProperty(PropertyName = "target_amount")] + public Amount TargetAmount { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaign/GetCharityCampaignResponse.cs b/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaign/GetCharityCampaignResponse.cs index ee5e1ba2..bc072546 100644 --- a/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaign/GetCharityCampaignResponse.cs +++ b/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaign/GetCharityCampaignResponse.cs @@ -1,18 +1,17 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Charity.GetCharityCampaign +namespace TwitchLib.Api.Helix.Models.Charity.GetCharityCampaign; + +/// +/// The response for the GetCharityCampaign that returns information about the charity campaign that a broadcaster is running. +/// +public class GetCharityCampaignResponse { - /// - /// The response for the GetCharityCampaign that returns information about the charity campaign that a broadcaster is running. - /// - public class GetCharityCampaignResponse - { - /// - /// A list that contains the charity campaign that the broadcaster is currently running. - /// The array is empty if the broadcaster is not running a charity campaign. - /// The campaign information is no longer available as soon as the campaign ends. - /// - [JsonProperty(PropertyName = "data")] - public CharityCampaignResponseModel[] Data { get; protected set; } - } + /// + /// A list that contains the charity campaign that the broadcaster is currently running. + /// The array is empty if the broadcaster is not running a charity campaign. + /// The campaign information is no longer available as soon as the campaign ends. + /// + [JsonProperty(PropertyName = "data")] + public CharityCampaignResponseModel[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaignDonations/CharityCampaignDonationsResponseModel.cs b/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaignDonations/CharityCampaignDonationsResponseModel.cs index 58619971..ff7f7ecd 100644 --- a/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaignDonations/CharityCampaignDonationsResponseModel.cs +++ b/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaignDonations/CharityCampaignDonationsResponseModel.cs @@ -1,46 +1,45 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Charity.GetCharityCampaignDonations +namespace TwitchLib.Api.Helix.Models.Charity.GetCharityCampaignDonations; + +/// +/// Donations that users have made to the broadcaster's active charity campaign. +/// +public class CharityCampaignDonationsResponseModel { - /// - /// Donations that users have made to the broadcaster's active charity campaign. - /// - public class CharityCampaignDonationsResponseModel - { - /// - /// An ID that identifies the donation. The ID is unique across campaigns. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } + /// + /// An ID that identifies the donation. The ID is unique across campaigns. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } - /// - /// An ID that identifies the charity campaign that the donation applies to. - /// - [JsonProperty(PropertyName = "campaign_id")] - public string CampaignId { get; protected set; } + /// + /// An ID that identifies the charity campaign that the donation applies to. + /// + [JsonProperty(PropertyName = "campaign_id")] + public string CampaignId { get; protected set; } - /// - /// An ID that identifies a user that donated money to the campaign. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } + /// + /// An ID that identifies a user that donated money to the campaign. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } - /// - /// The user’s login name. (Name is lowercase) - /// - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } + /// + /// The user’s login name. (Name is lowercase) + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } - /// - /// The user’s display name. (Name has capitalization) - /// - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } + /// + /// The user’s display name. (Name has capitalization) + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } - /// - /// An object that contains the amount of money that the user donated. - /// - [JsonProperty(PropertyName = "amount")] - public Amount Amount { get; protected set; } - } + /// + /// An object that contains the amount of money that the user donated. + /// + [JsonProperty(PropertyName = "amount")] + public Amount Amount { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaignDonations/GetCharityCampaignDonationsResponse.cs b/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaignDonations/GetCharityCampaignDonationsResponse.cs index bc7f30e8..8b8af80e 100644 --- a/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaignDonations/GetCharityCampaignDonationsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Charity/GetCharityCampaignDonations/GetCharityCampaignDonationsResponse.cs @@ -1,27 +1,26 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Charity.GetCharityCampaignDonations +namespace TwitchLib.Api.Helix.Models.Charity.GetCharityCampaignDonations; + +/// +/// The response for GetCharityCampaignDonations that returns a list of donations that +/// users have made to the broadcaster's active charity campaign. +/// +public class GetCharityCampaignDonationsResponse { - /// - /// The response for GetCharityCampaignDonations that returns a list of donations that - /// users have made to the broadcaster's active charity campaign. - /// - public class GetCharityCampaignDonationsResponse - { - /// - /// A list that contains the donations that users have made to the broadcaster’s charity campaign. - /// The list is empty if the broadcaster is not currently running a charity campaign. - /// The donation information is not available after the campaign ends. - /// - [JsonProperty(PropertyName = "data")] - public CharityCampaignDonationsResponseModel[] Data { get; protected set; } + /// + /// A list that contains the donations that users have made to the broadcaster’s charity campaign. + /// The list is empty if the broadcaster is not currently running a charity campaign. + /// The donation information is not available after the campaign ends. + /// + [JsonProperty(PropertyName = "data")] + public CharityCampaignDonationsResponseModel[] Data { get; protected set; } - /// - /// Contains the information used to page through the list of results. - /// The object is empty if there are no more pages left to page through. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// Contains the information used to page through the list of results. + /// The object is empty if there are no more pages left to page through. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/AnnouncementColors.cs b/TwitchLib.Api.Helix.Models/Chat/AnnouncementColors.cs index d661ae72..1393dec0 100644 --- a/TwitchLib.Api.Helix.Models/Chat/AnnouncementColors.cs +++ b/TwitchLib.Api.Helix.Models/Chat/AnnouncementColors.cs @@ -1,15 +1,39 @@ -namespace TwitchLib.Api.Helix.Models.Chat +namespace TwitchLib.Api.Helix.Models.Chat; + +/// +/// The colors used to highlight the announcement. +/// +public class AnnouncementColors { - public class AnnouncementColors - { - private AnnouncementColors(string value) { Value = value; } - - public string Value { get; private set; } - - public static AnnouncementColors Blue { get { return new AnnouncementColors("blue"); } } - public static AnnouncementColors Green { get { return new AnnouncementColors("green"); } } - public static AnnouncementColors Orange { get { return new AnnouncementColors("orange"); } } - public static AnnouncementColors Purple { get { return new AnnouncementColors("purple"); } } - public static AnnouncementColors Primary { get { return new AnnouncementColors("primary"); } } - } + private AnnouncementColors(string value) { Value = value; } + + /// + /// Value + /// + public string Value { get; private set; } + + /// + /// Blue + /// + public static AnnouncementColors Blue { get { return new AnnouncementColors("blue"); } } + + /// + /// Green + /// + public static AnnouncementColors Green { get { return new AnnouncementColors("green"); } } + + /// + /// Orange + /// + public static AnnouncementColors Orange { get { return new AnnouncementColors("orange"); } } + + /// + /// Purple + /// + public static AnnouncementColors Purple { get { return new AnnouncementColors("purple"); } } + + /// + /// Primary + /// + public static AnnouncementColors Primary { get { return new AnnouncementColors("primary"); } } } diff --git a/TwitchLib.Api.Helix.Models/Chat/Badges/BadgeEmoteSet.cs b/TwitchLib.Api.Helix.Models/Chat/Badges/BadgeEmoteSet.cs index ae260fc8..a43721c6 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Badges/BadgeEmoteSet.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Badges/BadgeEmoteSet.cs @@ -1,12 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Badges +namespace TwitchLib.Api.Helix.Models.Chat.Badges; + +/// +/// Badge set from teh list of chat badges. +/// +public class BadgeEmoteSet { - public class BadgeEmoteSet - { - [JsonProperty(PropertyName = "set_id")] - public string SetId { get; protected set; } - [JsonProperty(PropertyName = "versions")] - public BadgeVersion[] Versions { get; protected set; } - } + /// + /// An ID that identifies this set of chat badges. For example, Bits or Subscriber. + /// + [JsonProperty(PropertyName = "set_id")] + public string SetId { get; protected set; } + + /// + /// The list of chat badges in this set. + /// + [JsonProperty(PropertyName = "versions")] + public BadgeVersion[] Versions { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/Badges/BadgeVersion.cs b/TwitchLib.Api.Helix.Models/Chat/Badges/BadgeVersion.cs index 734aff6a..5ab80bcd 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Badges/BadgeVersion.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Badges/BadgeVersion.cs @@ -1,24 +1,57 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Badges +namespace TwitchLib.Api.Helix.Models.Chat.Badges; + +/// +/// Badge version of the badge set. +/// +public class BadgeVersion { - public class BadgeVersion - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "image_url_1x")] - public string ImageUrl1x { get; protected set; } - [JsonProperty(PropertyName = "image_url_2x")] - public string ImageUrl2x { get; protected set; } - [JsonProperty(PropertyName = "image_url_4x")] - public string ImageUrl4x { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - [JsonProperty(PropertyName = "description")] - public string Description { get; protected set; } - [JsonProperty(PropertyName = "click_action")] - public string ClickAction { get; protected set; } - [JsonProperty(PropertyName = "click_url")] - public string ClickUrl { get; protected set; } - } + /// + /// An ID that identifies this version of the badge. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// A URL to the small version (18px x 18px) of the badge. + /// + [JsonProperty(PropertyName = "image_url_1x")] + public string ImageUrl1x { get; protected set; } + + /// + /// A URL to the medium version (36px x 36px) of the badge. + /// + [JsonProperty(PropertyName = "image_url_2x")] + public string ImageUrl2x { get; protected set; } + + /// + /// A URL to the large version (72px x 72px) of the badge. + /// + [JsonProperty(PropertyName = "image_url_4x")] + public string ImageUrl4x { get; protected set; } + + /// + /// The title of the badge. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// The description of the badge. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; protected set; } + + /// + /// The action to take when clicking on the badge. Set to `null` if no action is specified. + /// + [JsonProperty(PropertyName = "click_action")] + public string ClickAction { get; protected set; } + + /// + /// The URL to navigate to when clicking on the badge. Set to `null` if no URL is specified. + /// + [JsonProperty(PropertyName = "click_url")] + public string ClickUrl { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/Badges/GetChannelChatBadges/GetChannelChatBadgesResponse.cs b/TwitchLib.Api.Helix.Models/Chat/Badges/GetChannelChatBadges/GetChannelChatBadgesResponse.cs index d67a7e00..8970cf04 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Badges/GetChannelChatBadges/GetChannelChatBadgesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Badges/GetChannelChatBadges/GetChannelChatBadgesResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Badges.GetChannelChatBadges +namespace TwitchLib.Api.Helix.Models.Chat.Badges.GetChannelChatBadges; + +/// +/// The broadcaster’s list of custom chat badges response object. +/// +public class GetChannelChatBadgesResponse { - public class GetChannelChatBadgesResponse - { - [JsonProperty(PropertyName = "data")] - public BadgeEmoteSet[] EmoteSet { get; protected set; } - } + /// + /// The list of chat badges. The list is sorted in ascending order by set_id, and within a set, the list is sorted in ascending order by id. + /// + [JsonProperty(PropertyName = "data")] + public BadgeEmoteSet[] EmoteSet { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/Badges/GetGlobalChatBadges/GetGlobalChatBadgesResponse.cs b/TwitchLib.Api.Helix.Models/Chat/Badges/GetGlobalChatBadges/GetGlobalChatBadgesResponse.cs index 2dfc7a98..74668087 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Badges/GetGlobalChatBadges/GetGlobalChatBadgesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Badges/GetGlobalChatBadges/GetGlobalChatBadgesResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Badges.GetGlobalChatBadges +namespace TwitchLib.Api.Helix.Models.Chat.Badges.GetGlobalChatBadges; + +/// +/// Twitch’s list of chat badges response object. +/// +public class GetGlobalChatBadgesResponse { - public class GetGlobalChatBadgesResponse - { - [JsonProperty(PropertyName = "data")] - public BadgeEmoteSet[] EmoteSet { get; protected set; } - } + /// + /// The list of chat badges. The list is sorted in ascending order by set_id, and within a set, the list is sorted in ascending order by id. + /// + [JsonProperty(PropertyName = "data")] + public BadgeEmoteSet[] EmoteSet { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs index a0540f47..89547ec4 100644 --- a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs +++ b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs @@ -1,26 +1,65 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings +namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings; + +/// +/// The Broadcaster's chat settings model +/// +public class ChatSettings { - public class ChatSettings - { - [JsonProperty(PropertyName = "slow_mode")] - public bool? SlowMode; - [JsonProperty(PropertyName = "slow_mode_wait_time")] - public int? SlowModeWaitTime; - [JsonProperty(PropertyName = "follower_mode")] - public bool? FollowerMode; - [JsonProperty(PropertyName = "follower_mode_duration")] - public int? FollowerModeDuration; - [JsonProperty(PropertyName = "subscriber_mode")] - public bool? SubscriberMode; - [JsonProperty(PropertyName = "emote_mode")] - public bool? EmoteMode; - [JsonProperty(PropertyName = "unique_chat_mode")] - public bool? UniqueChatMode; - [JsonProperty(PropertyName = "non_moderator_chat_delay")] - public bool? NonModeratorChatDelay; - [JsonProperty(PropertyName = "non_moderator_chat_delay_duration")] - public int? NonModeratorChatDelayDuration; - } + /// + /// A Boolean value that determines whether chat messages must contain only emotes. + /// + /// + [JsonProperty(PropertyName = "emote_mode")] + public bool? EmoteMode; + + /// + /// A Boolean value that determines whether the broadcaster restricts the chat room to followers only. + /// + [JsonProperty(PropertyName = "follower_mode")] + public bool? FollowerMode; + + /// + /// The length of time, in minutes, that users must follow the broadcaster before being able to participate in the chat room. + /// + [JsonProperty(PropertyName = "follower_mode_duration")] + public int? FollowerModeDuration; + + /// + /// A Boolean value that determines whether the broadcaster adds a short delay before chat messages appear in the chat room. + /// + [JsonProperty(PropertyName = "non_moderator_chat_delay")] + public bool? NonModeratorChatDelay; + + /// + /// The amount of time, in seconds, that messages are delayed before appearing in chat. + /// + [JsonProperty(PropertyName = "non_moderator_chat_delay_duration")] + public int? NonModeratorChatDelayDuration; + + /// + /// A Boolean value that determines whether the broadcaster limits how often users in the chat room are allowed to send messages. + /// + [JsonProperty(PropertyName = "slow_mode")] + public bool? SlowMode; + + /// + /// The amount of time, in seconds, that users must wait between sending messages. + /// + [JsonProperty(PropertyName = "slow_mode_wait_time")] + public int? SlowModeWaitTime; + + /// + /// A Boolean value that determines whether only users that subscribe to the broadcaster’s channel may talk in the chat room. + /// + [JsonProperty(PropertyName = "subscriber_mode")] + public bool? SubscriberMode; + + /// + /// A Boolean value that determines whether the broadcaster requires users to post only unique messages in the chat room. + /// + [JsonProperty(PropertyName = "unique_chat_mode")] + public bool? UniqueChatMode; + } diff --git a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettingsResponseModel.cs b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettingsResponseModel.cs index 7c49de46..826a4255 100644 --- a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettingsResponseModel.cs +++ b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettingsResponseModel.cs @@ -1,28 +1,80 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings +namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings; + +/// +/// Chat settings response model +/// +public class ChatSettingsResponseModel { - public class ChatSettingsResponseModel - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "slow_mode")] - public bool SlowMode { get; protected set; } - [JsonProperty(PropertyName = "slow_mode_wait_time")] - public int? SlowModeWaitDuration { get; protected set; } - [JsonProperty(PropertyName = "follower_mode")] - public bool FollowerMode { get; protected set; } - [JsonProperty(PropertyName = "follower_mode_duration")] - public int? FollowerModeDuration { get; protected set; } - [JsonProperty(PropertyName = "subscriber_mode")] - public bool SubscriberMode { get; protected set; } - [JsonProperty(PropertyName = "emote_mode")] - public bool EmoteMode { get; protected set; } - [JsonProperty(PropertyName = "unique_chat_mode")] - public bool UniqueChatMode { get; protected set; } - [JsonProperty(PropertyName = "non_moderator_chat_delay")] - public bool NonModeratorChatDelay { get; protected set; } - [JsonProperty(PropertyName = "non_moderator_chat_delay_duration")] - public int? NonModeratorChatDelayDuration { get; protected set; } - } + /// + /// The ID of the broadcaster specified in the request. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// A Boolean value that determines whether chat messages must contain only emotes. + /// + [JsonProperty(PropertyName = "emote_mode")] + public bool EmoteMode { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster restricts the chat room to followers only. + /// + [JsonProperty(PropertyName = "follower_mode")] + public bool FollowerMode { get; protected set; } + + /// + /// The length of time, in minutes, that users must follow the broadcaster before being able to participate in the chat room. Is null if follower_mode is false. + /// + [JsonProperty(PropertyName = "follower_mode_duration")] + public int? FollowerModeDuration { get; protected set; } + + /// + /// The moderator’s ID. + /// + [JsonProperty(PropertyName = "moderator_id")] + public bool ModeratorId { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster adds a short delay before chat messages appear in the chat room. + /// + [JsonProperty(PropertyName = "non_moderator_chat_delay")] + public bool NonModeratorChatDelay { get; protected set; } + + /// + /// The amount of time, in seconds, that messages are delayed before appearing in chat. + /// + [JsonProperty(PropertyName = "non_moderator_chat_delay_duration")] + public int? NonModeratorChatDelayDuration { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster limits how often users in the chat room are allowed to send messages. + /// + [JsonProperty(PropertyName = "slow_mode")] + public bool SlowMode { get; protected set; } + + /// + /// The amount of time, in seconds, that users must wait between sending messages. + /// + /// + [JsonProperty(PropertyName = "slow_mode_wait_time")] + public int? SlowModeWaitDuration { get; protected set; } + + /// + /// A Boolean value that determines whether only users that subscribe to the broadcaster’s channel may talk in the chat room. + /// + [JsonProperty(PropertyName = "subscriber_mode")] + public bool SubscriberMode { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster requires users to post only unique messages in the chat room. + /// + [JsonProperty(PropertyName = "unique_chat_mode")] + public bool UniqueChatMode { get; protected set; } + + + + } diff --git a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/GetChatSettingsResponse.cs b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/GetChatSettingsResponse.cs index 8eb46f38..3a905b26 100644 --- a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/GetChatSettingsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/GetChatSettingsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings +namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings; + +/// +/// The broadcaster’s chat settings response model +/// +public class GetChatSettingsResponse { - public class GetChatSettingsResponse - { - [JsonProperty(PropertyName = "data")] - public ChatSettingsResponseModel[] Data { get; protected set; } - } + /// + /// The list of chat settings. The list contains a single object with all the settings. + /// + [JsonProperty(PropertyName = "data")] + public ChatSettingsResponseModel[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/UpdateChatSettingsResponse.cs b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/UpdateChatSettingsResponse.cs index 79af6d20..0690079b 100644 --- a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/UpdateChatSettingsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/UpdateChatSettingsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings +namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings; + +/// +/// Update Broadcaster chat settings response model +/// +public class UpdateChatSettingsResponse { - public class UpdateChatSettingsResponse - { - [JsonProperty(PropertyName = "data")] - public UpdateChatSettingsResponseModel[] Data { get; protected set; } - } + /// + /// The list of chat settings. The list contains a single object with all the settings. + /// + [JsonProperty(PropertyName = "data")] + public UpdateChatSettingsResponseModel[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/UpdateChatSettingsResponseModel.cs b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/UpdateChatSettingsResponseModel.cs index 46d4a8e7..af2d7d47 100644 --- a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/UpdateChatSettingsResponseModel.cs +++ b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/UpdateChatSettingsResponseModel.cs @@ -1,30 +1,77 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings +namespace TwitchLib.Api.Helix.Models.Chat.ChatSettings; + +/// +/// A single object with all the chat settings. +/// +public class UpdateChatSettingsResponseModel { - public class UpdateChatSettingsResponseModel - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "moderator_id")] - public string ModeratorId { get; protected set; } - [JsonProperty(PropertyName = "slow_mode")] - public bool SlowMode { get; protected set; } - [JsonProperty(PropertyName = "slow_mode_wait_time")] - public int? SlowModeWaitDuration { get; protected set; } - [JsonProperty(PropertyName = "follower_mode")] - public bool FollowerMode { get; protected set; } - [JsonProperty(PropertyName = "follower_mode_duration")] - public int? FollowerModeDuration { get; protected set; } - [JsonProperty(PropertyName = "subscriber_mode")] - public bool SubscriberMode { get; protected set; } - [JsonProperty(PropertyName = "emote_mode")] - public bool EmoteMode { get; protected set; } - [JsonProperty(PropertyName = "unique_chat_mode")] - public bool UniqueChatMode { get; protected set; } - [JsonProperty(PropertyName = "non_moderator_chat_delay")] - public bool NonModeratorChatDelay { get; protected set; } - [JsonProperty(PropertyName = "non_moderator_chat_delay_duration")] - public int? NonModeratorChatDelayDuration { get; protected set; } - } + /// + /// The ID of the broadcaster specified in the request. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// A Boolean value that determines whether chat messages must contain only emotes. + /// + [JsonProperty(PropertyName = "emote_mode")] + public bool EmoteMode { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster restricts the chat room to followers only. + /// + [JsonProperty(PropertyName = "follower_mode")] + public bool FollowerMode { get; protected set; } + + /// + /// The length of time, in minutes, that users must follow the broadcaster before being able to participate in the chat room. + /// + [JsonProperty(PropertyName = "follower_mode_duration")] + public int? FollowerModeDuration { get; protected set; } + + /// + /// The moderator’s ID. + /// + [JsonProperty(PropertyName = "moderator_id")] + public string ModeratorId { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster adds a short delay before chat messages appear in the chat room. + /// + [JsonProperty(PropertyName = "non_moderator_chat_delay")] + public bool NonModeratorChatDelay { get; protected set; } + + /// + /// The amount of time, in seconds, that messages are delayed before appearing in chat. + /// + [JsonProperty(PropertyName = "non_moderator_chat_delay_duration")] + public int? NonModeratorChatDelayDuration { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster limits how often users in the chat room are allowed to send messages. + /// + [JsonProperty(PropertyName = "slow_mode")] + public bool SlowMode { get; protected set; } + + /// + /// The amount of time, in seconds, that users must wait between sending messages. + /// + [JsonProperty(PropertyName = "slow_mode_wait_time")] + public int? SlowModeWaitDuration { get; protected set; } + + /// + /// A Boolean value that determines whether only users that subscribe to the broadcaster’s channel may talk in the chat room. + /// + [JsonProperty(PropertyName = "subscriber_mode")] + public bool SubscriberMode { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster requires users to post only unique messages in the chat room. + /// + [JsonProperty(PropertyName = "unique_chat_mode")] + public bool UniqueChatMode { get; protected set; } + + } diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/ChannelEmote.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/ChannelEmote.cs index e51e49e3..9eb17652 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/ChannelEmote.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/ChannelEmote.cs @@ -1,28 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Emotes +namespace TwitchLib.Api.Helix.Models.Chat.Emotes; + +/// +/// Broadcaster created custom emote. +/// +public class ChannelEmote : Emote { - public class ChannelEmote : Emote - { - /// - /// Contains the image URLs for the emote. - /// - [JsonProperty("images")] - public EmoteImages Images { get; protected set; } - /// - /// The subscriber tier at which the emote is unlocked. - /// - [JsonProperty("tier")] - public string Tier { get; protected set; } - /// - /// The type of emote. - /// - [JsonProperty("emote_type")] - public string EmoteType { get; protected set; } - /// - /// An ID that identifies the emote set that the emote belongs to. - /// - [JsonProperty("emote_set_id")] - public string EmoteSetId { get; protected set; } - } + /// + /// Contains the image URLs for the emote. + /// + [JsonProperty("images")] + public EmoteImages Images { get; protected set; } + + /// + /// The subscriber tier at which the emote is unlocked. + /// + [JsonProperty("tier")] + public string Tier { get; protected set; } + + /// + /// The type of emote. + /// + [JsonProperty("emote_type")] + public string EmoteType { get; protected set; } + + /// + /// An ID that identifies the emote set that the emote belongs to. + /// + [JsonProperty("emote_set_id")] + public string EmoteSetId { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/Emote.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/Emote.cs index 2d23e7d4..cfeb92c5 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/Emote.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/Emote.cs @@ -1,33 +1,39 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Emotes +namespace TwitchLib.Api.Helix.Models.Chat.Emotes; + +/// +/// Emote +/// +public abstract class Emote { - public abstract class Emote - { - /// - /// An ID that identifies the emote. - /// - [JsonProperty("id")] - public string Id { get; protected set; } - /// - /// The name of the emote. This is the name that viewers type in the chat window to get the emote to appear. - /// - [JsonProperty("name")] - public string Name { get; protected set; } - /// - /// The formats that the emote is available in. - /// - [JsonProperty("format")] - public string[] Format { get; protected set; } - /// - /// The sizes that the emote is available in. - /// - [JsonProperty("scale")] - public string[] Scale { get; protected set; } - /// - /// The background themes that the emote is available in. - /// - [JsonProperty("theme_mode")] - public string[] ThemeMode { get; protected set; } - } + /// + /// An ID that identifies the emote. + /// + [JsonProperty("id")] + public string Id { get; protected set; } + + /// + /// The name of the emote. This is the name that viewers type in the chat window to get the emote to appear. + /// + [JsonProperty("name")] + public string Name { get; protected set; } + + /// + /// The formats that the emote is available in. + /// + [JsonProperty("format")] + public string[] Format { get; protected set; } + + /// + /// The sizes that the emote is available in. + /// + [JsonProperty("scale")] + public string[] Scale { get; protected set; } + + /// + /// The background themes that the emote is available in. + /// + [JsonProperty("theme_mode")] + public string[] ThemeMode { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/EmoteImages.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/EmoteImages.cs index 97d8c03a..f7ad61cc 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/EmoteImages.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/EmoteImages.cs @@ -1,23 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Emotes +namespace TwitchLib.Api.Helix.Models.Chat.Emotes; + +/// +/// The image URLs for the emote. +/// +public class EmoteImages { - public class EmoteImages - { - /// - /// A URL to the small version (28px x 28px) of the emote. - /// - [JsonProperty("url_1x")] - public string Url1X { get; protected set; } - /// - /// A URL to the medium version (56px x 56px) of the emote. - /// - [JsonProperty("url_2x")] - public string Url2X { get; protected set; } - /// - /// A URL to the large version (112px x 112px) of the emote. - /// - [JsonProperty("url_4x")] - public string Url4X { get; protected set; } - } + /// + /// A URL to the small version (28px x 28px) of the emote. + /// + [JsonProperty("url_1x")] + public string Url1X { get; protected set; } + + /// + /// A URL to the medium version (56px x 56px) of the emote. + /// + [JsonProperty("url_2x")] + public string Url2X { get; protected set; } + + /// + /// A URL to the large version (112px x 112px) of the emote. + /// + [JsonProperty("url_4x")] + public string Url4X { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/EmoteSet.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/EmoteSet.cs index 2b10ba14..5d97327a 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/EmoteSet.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/EmoteSet.cs @@ -1,28 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Emotes +namespace TwitchLib.Api.Helix.Models.Chat.Emotes; + +/// +/// A emote set. +/// +public class EmoteSet : Emote { - public class EmoteSet : Emote - { - /// - /// The type of emote. - /// - [JsonProperty("emote_type")] - public string EmoteType { get; protected set; } - /// - /// An ID that identifies the emote set that the emote belongs to. - /// - [JsonProperty("emote_set_id")] - public string EmoteSetId { get; protected set; } - /// - /// Contains the image URLs for the emote. - /// - [JsonProperty("images")] - public EmoteImages Images { get; protected set; } - /// - /// The ID of the broadcaster who owns the emote. - /// - [JsonProperty("owner_id")] - public string OwnerId { get; protected set; } - } + /// + /// The type of emote. + /// + [JsonProperty("emote_type")] + public string EmoteType { get; protected set; } + + /// + /// An ID that identifies the emote set that the emote belongs to. + /// + [JsonProperty("emote_set_id")] + public string EmoteSetId { get; protected set; } + + /// + /// Contains the image URLs for the emote. + /// + [JsonProperty("images")] + public EmoteImages Images { get; protected set; } + + /// + /// The ID of the broadcaster who owns the emote. + /// + [JsonProperty("owner_id")] + public string OwnerId { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/GetChannelEmotes/GetChannelEmotesResponse.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/GetChannelEmotes/GetChannelEmotesResponse.cs index 5cbf3d8d..889b5306 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/GetChannelEmotes/GetChannelEmotesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/GetChannelEmotes/GetChannelEmotesResponse.cs @@ -1,12 +1,22 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Emotes.GetChannelEmotes +namespace TwitchLib.Api.Helix.Models.Chat.Emotes.GetChannelEmotes; + +/// +/// Broadcaster’s list of custom emotes response object. +/// +public class GetChannelEmotesResponse { - public class GetChannelEmotesResponse - { - [JsonProperty("data")] - public ChannelEmote[] ChannelEmotes { get; protected set; } - [JsonProperty("template")] - public string Template { get; protected set; } - } + /// + /// The list of emotes that the specified broadcaster created. + /// + [JsonProperty("data")] + public ChannelEmote[] ChannelEmotes { get; protected set; } + + /// + /// A templated URL. Use the values from the id, format, scale, and theme_mode fields to replace the like-named + /// placeholder strings in the templated URL to create a CDN (content delivery network) URL that you use to fetch the emote. + /// + [JsonProperty("template")] + public string Template { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/GetEmoteSets/GetEmoteSetsResponse.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/GetEmoteSets/GetEmoteSetsResponse.cs index 9a6250e1..7a3a74de 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/GetEmoteSets/GetEmoteSetsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/GetEmoteSets/GetEmoteSetsResponse.cs @@ -1,12 +1,22 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Emotes.GetEmoteSets +namespace TwitchLib.Api.Helix.Models.Chat.Emotes.GetEmoteSets; + +/// +/// Emotes for one or more specified emote sets response object +/// +public class GetEmoteSetsResponse { - public class GetEmoteSetsResponse - { - [JsonProperty("data")] - public EmoteSet[] EmoteSets { get; protected set; } - [JsonProperty("template")] - public string Template { get; protected set; } - } + /// + /// The list of emotes found in the specified emote sets. + /// + [JsonProperty("data")] + public EmoteSet[] EmoteSets { get; protected set; } + + /// + /// A templated URL. Use the values from the id, format, scale, and theme_mode fields to replace the like-named + /// placeholder strings in the templated URL to create a CDN (content delivery network) URL that you use to fetch the emote. + /// + [JsonProperty("template")] + public string Template { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/GetGlobalEmotes/GetGlobalEmotesResponse.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/GetGlobalEmotes/GetGlobalEmotesResponse.cs index 761c7047..e44f39a6 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/GetGlobalEmotes/GetGlobalEmotesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/GetGlobalEmotes/GetGlobalEmotesResponse.cs @@ -1,12 +1,22 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Emotes.GetGlobalEmotes +namespace TwitchLib.Api.Helix.Models.Chat.Emotes.GetGlobalEmotes; + +/// +/// The list of global emotes response object. +/// +public class GetGlobalEmotesResponse { - public class GetGlobalEmotesResponse - { - [JsonProperty("data")] - public GlobalEmote[] GlobalEmotes { get; protected set; } - [JsonProperty("template")] - public string Template { get; protected set; } - } + /// + /// The list of global emotes. + /// + [JsonProperty("data")] + public GlobalEmote[] GlobalEmotes { get; protected set; } + + /// + /// A templated URL. Use the values from the id, format, scale, and theme_mode fields to replace the like-named + /// placeholder strings in the templated URL to create a CDN (content delivery network) URL that you use to fetch the emote. + /// + [JsonProperty("template")] + public string Template { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/GetUserEmotes/GetUserEmotesResponse.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/GetUserEmotes/GetUserEmotesResponse.cs index 6a3c7dd5..0fb4cd10 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/GetUserEmotes/GetUserEmotesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/GetUserEmotes/GetUserEmotesResponse.cs @@ -3,12 +3,27 @@ namespace TwitchLib.Api.Helix.Models.Chat.Emotes.GetUserEmotes; +/// +/// Emotes available to the user across all channels response object. +/// public class GetUserEmotesResponse { + /// + /// A list of emotes available to the user across all channels. + /// [JsonProperty("data")] public UserEmote[] Data { get; protected set; } + + /// + /// A templated URL. Uses the values from the id, format, scale, and theme_mode fields to replace the like-named + /// placeholder strings in the templated URL to create a CDN (content delivery network) URL that you use to fetch the emote. + /// [JsonProperty("template")] public string Template { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// [JsonProperty("pagination")] public Pagination Pagination { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/GlobalEmote.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/GlobalEmote.cs index 6bdc88d6..0cc18d59 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/GlobalEmote.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/GlobalEmote.cs @@ -1,13 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.Emotes +namespace TwitchLib.Api.Helix.Models.Chat.Emotes; + +/// +/// Global emote. +/// +public class GlobalEmote : Emote { - public class GlobalEmote : Emote - { - /// - /// Contains the image URLs for the emote. - /// - [JsonProperty("images")] - public EmoteImages Images { get; protected set; } - } + /// + /// Contains the image URLs for the emote. + /// + [JsonProperty("images")] + public EmoteImages Images { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/Emotes/UserEmote.cs b/TwitchLib.Api.Helix.Models/Chat/Emotes/UserEmote.cs index 820fa695..716e97a3 100644 --- a/TwitchLib.Api.Helix.Models/Chat/Emotes/UserEmote.cs +++ b/TwitchLib.Api.Helix.Models/Chat/Emotes/UserEmote.cs @@ -2,32 +2,23 @@ namespace TwitchLib.Api.Helix.Models.Chat.Emotes; +/// +/// A user emote +/// public class UserEmote : Emote { /// - /// The type of emote. The possible values are: - /// none — No emote type was assigned to this emote. - /// - bitstier — A Bits tier emote. - /// - follower — A follower emote. - /// - subscriptions — A subscriber emote. - /// - channelpoints — An emote granted by using channel points. - /// - rewards — An emote granted to the user through a special event. - /// - hypetrain — An emote granted for participation in a Hype Train. - /// - prime — An emote granted for linking an Amazon Prime account. - /// - turbo — An emote granted for having Twitch Turbo. - /// - smilies — Emoticons supported by Twitch. - /// - globals — An emote accessible by everyone. - /// - owl2019 — Emotes related to Overwatch League 2019. - /// - twofactor — Emotes granted by enabling two-factor authentication on an account. - /// - limitedtime — Emotes that were granted for only a limited time. + /// The type of emote. /// [JsonProperty("emote_type")] public string EmoteType { get; protected set; } + /// /// An ID that identifies the emote set that the emote belongs to. /// [JsonProperty("emote_set_id")] public string EmoteSetId { get; protected set; } + /// /// The ID of the broadcaster who owns the emote. /// diff --git a/TwitchLib.Api.Helix.Models/Chat/GetChatters/Chatter.cs b/TwitchLib.Api.Helix.Models/Chat/GetChatters/Chatter.cs index 66e27446..bffcc5e1 100644 --- a/TwitchLib.Api.Helix.Models/Chat/GetChatters/Chatter.cs +++ b/TwitchLib.Api.Helix.Models/Chat/GetChatters/Chatter.cs @@ -1,23 +1,25 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.GetChatters +namespace TwitchLib.Api.Helix.Models.Chat.GetChatters; + +/// +/// A user that is connected to the broadcaster’s chat session. +/// +public class Chatter { - public class Chatter - { - /// - /// The ID of a user that’s connected to the broadcaster’s chat room. - /// - [JsonProperty("user_id")] - public string UserId { get; protected set; } - /// - /// The login name of a user that’s connected to the broadcaster’s chat room. - /// - [JsonProperty("user_login")] - public string UserLogin { get; protected set; } - /// - /// The display name of a user that’s connected to the broadcaster’s chat room. - /// - [JsonProperty("user_name")] - public string UserName { get; protected set; } - } + /// + /// The ID of a user that’s connected to the broadcaster’s chat room. + /// + [JsonProperty("user_id")] + public string UserId { get; protected set; } + /// + /// The login name of a user that’s connected to the broadcaster’s chat room. + /// + [JsonProperty("user_login")] + public string UserLogin { get; protected set; } + /// + /// The display name of a user that’s connected to the broadcaster’s chat room. + /// + [JsonProperty("user_name")] + public string UserName { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/GetChatters/GetChattersResponse.cs b/TwitchLib.Api.Helix.Models/Chat/GetChatters/GetChattersResponse.cs index 0f1589da..0bb400c7 100644 --- a/TwitchLib.Api.Helix.Models/Chat/GetChatters/GetChattersResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/GetChatters/GetChattersResponse.cs @@ -1,27 +1,29 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Chat.GetChatters +namespace TwitchLib.Api.Helix.Models.Chat.GetChatters; + +/// +/// The list of users that are connected to the broadcaster’s chat session response item. +/// +public class GetChattersResponse { - public class GetChattersResponse - { - /// - /// List of login names that are connected to the broadcaster’s chat room. - /// - [JsonProperty("data")] - public Chatter[] Data { get; protected set; } + /// + /// List of login names that are connected to the broadcaster’s chat room. + /// + [JsonProperty("data")] + public Chatter[] Data { get; protected set; } - /// - /// Contains the information used to page through the list of results. The object is empty if there are no more pages left to page through. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } + /// + /// Contains the information used to page through the list of results. The object is empty if there are no more pages left to page through. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } - /// - /// The total number of users that are connected to the broadcaster’s chat room. - /// As you page through the list, the number of users may change as users join and leave the chat room. - /// - [JsonProperty("total")] - public int Total { get; protected set; } - } + /// + /// The total number of users that are connected to the broadcaster’s chat room. + /// As you page through the list, the number of users may change as users join and leave the chat room. + /// + [JsonProperty("total")] + public int Total { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Chat/GetUserChatColor/GetUserChatColorResponse.cs b/TwitchLib.Api.Helix.Models/Chat/GetUserChatColor/GetUserChatColorResponse.cs index 384971ee..bee562a9 100644 --- a/TwitchLib.Api.Helix.Models/Chat/GetUserChatColor/GetUserChatColorResponse.cs +++ b/TwitchLib.Api.Helix.Models/Chat/GetUserChatColor/GetUserChatColorResponse.cs @@ -1,13 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.GetUserChatColor +namespace TwitchLib.Api.Helix.Models.Chat.GetUserChatColor; + +/// +/// The colors used for the user(s)’s name in chat, response object. +/// +public class GetUserChatColorResponse { - public class GetUserChatColorResponse - { - /// - /// The list of users and the color code that’s used for their name. - /// - [JsonProperty(PropertyName = "data")] - public UserChatColorResponseModel[] Data { get; protected set; } - } + /// + /// The list of users and the color code that’s used for their name. + /// + [JsonProperty(PropertyName = "data")] + public UserChatColorResponseModel[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/GetUserChatColor/UserChatColorResponseModel.cs b/TwitchLib.Api.Helix.Models/Chat/GetUserChatColor/UserChatColorResponseModel.cs index 08a88a85..d1d80f07 100644 --- a/TwitchLib.Api.Helix.Models/Chat/GetUserChatColor/UserChatColorResponseModel.cs +++ b/TwitchLib.Api.Helix.Models/Chat/GetUserChatColor/UserChatColorResponseModel.cs @@ -1,28 +1,30 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Chat.GetUserChatColor +namespace TwitchLib.Api.Helix.Models.Chat.GetUserChatColor; + +/// +/// The color used for the user’s name in chat. +/// +public class UserChatColorResponseModel { - public class UserChatColorResponseModel - { - /// - /// The ID of the user. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - /// - /// The user’s login name. - /// - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - /// - /// The user’s display name. - /// - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - /// - /// The Hex color code that the user uses in chat for their name. If the user hasn’t specified a color in their settings, the string is empty. - /// - [JsonProperty(PropertyName = "color")] - public string Color { get; protected set; } - } + /// + /// The ID of the user. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + /// + /// The Hex color code that the user uses in chat for their name. If the user hasn’t specified a color in their settings, the string is empty. + /// + [JsonProperty(PropertyName = "color")] + public string Color { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Chat/UserColors.cs b/TwitchLib.Api.Helix.Models/Chat/UserColors.cs index 9e12819d..a1f55035 100644 --- a/TwitchLib.Api.Helix.Models/Chat/UserColors.cs +++ b/TwitchLib.Api.Helix.Models/Chat/UserColors.cs @@ -1,24 +1,84 @@ -namespace TwitchLib.Api.Helix.Models.Chat +namespace TwitchLib.Api.Helix.Models.Chat; + +/// +/// The list of color codes a user can use for their name. +/// +public class UserColors { - public class UserColors - { - private UserColors(string value) { Value = value; } - - public string Value { get; private set; } - - public static UserColors Blue { get { return new UserColors("blue"); } } - public static UserColors BlueVoilet { get { return new UserColors("blue_violet"); } } - public static UserColors CadetBlue { get { return new UserColors("cadet_blue"); } } - public static UserColors Chocolate { get { return new UserColors("chocolate"); } } - public static UserColors Coral { get { return new UserColors("coral"); } } - public static UserColors DodgerBlue { get { return new UserColors("dodger_blue"); } } - public static UserColors Firebrick { get { return new UserColors("firebrick"); } } - public static UserColors GoldenRod { get { return new UserColors("golden_rod"); } } - public static UserColors HotPink { get { return new UserColors("hot_pink"); } } - public static UserColors OrangeRed { get { return new UserColors("orange_red"); } } - public static UserColors Red { get { return new UserColors("red"); } } - public static UserColors SeaGreen { get { return new UserColors("sea_green"); } } - public static UserColors SpringGreen { get { return new UserColors("spring_green"); } } - public static UserColors YellowGreen { get { return new UserColors("yellow_green"); } } - } + private UserColors(string value) { Value = value; } + + /// + /// Value + /// + public string Value { get; private set; } + + /// + /// Blue + /// + public static UserColors Blue { get { return new UserColors("blue"); } } + + /// + /// Blue-Voilet + /// + public static UserColors BlueVoilet { get { return new UserColors("blue_violet"); } } + + /// + /// Cadet Blue + /// + public static UserColors CadetBlue { get { return new UserColors("cadet_blue"); } } + + /// + /// Chocolate + /// + public static UserColors Chocolate { get { return new UserColors("chocolate"); } } + + /// + /// Coral + /// + public static UserColors Coral { get { return new UserColors("coral"); } } + + /// + /// Dodger Blue + /// + public static UserColors DodgerBlue { get { return new UserColors("dodger_blue"); } } + + /// + /// Firebrick + /// + public static UserColors Firebrick { get { return new UserColors("firebrick"); } } + + /// + /// Golden Rod + /// + public static UserColors GoldenRod { get { return new UserColors("golden_rod"); } } + + /// + /// Hot Pink + /// + public static UserColors HotPink { get { return new UserColors("hot_pink"); } } + + /// + /// Orange-Red + /// + public static UserColors OrangeRed { get { return new UserColors("orange_red"); } } + + /// + /// Red + /// + public static UserColors Red { get { return new UserColors("red"); } } + + /// + /// Sea Green + /// + public static UserColors SeaGreen { get { return new UserColors("sea_green"); } } + + /// + /// Spring Green + /// + public static UserColors SpringGreen { get { return new UserColors("spring_green"); } } + + /// + /// Yellow-Green + /// + public static UserColors YellowGreen { get { return new UserColors("yellow_green"); } } } diff --git a/TwitchLib.Api.Helix.Models/Clips/CreateClip/CreatedClip.cs b/TwitchLib.Api.Helix.Models/Clips/CreateClip/CreatedClip.cs index 46edc37c..843be58c 100644 --- a/TwitchLib.Api.Helix.Models/Clips/CreateClip/CreatedClip.cs +++ b/TwitchLib.Api.Helix.Models/Clips/CreateClip/CreatedClip.cs @@ -1,23 +1,22 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Clips.CreateClip +namespace TwitchLib.Api.Helix.Models.Clips.CreateClip; + +/// +/// A Twitch clip created from CreateClip +/// +public class CreatedClip { - /// - /// A Twitch clip created from CreateClip - /// - public class CreatedClip - { - /// - /// A URL that you can use to edit the clip’s title, identify the part of the clip to publish, and publish the clip. - /// The URL is valid for up to 24 hours or until the clip is published, whichever comes first. - /// - [JsonProperty(PropertyName = "edit_url")] - public string EditUrl { get; protected set; } + /// + /// A URL that you can use to edit the clip’s title, identify the part of the clip to publish, and publish the clip. + /// The URL is valid for up to 24 hours or until the clip is published, whichever comes first. + /// + [JsonProperty(PropertyName = "edit_url")] + public string EditUrl { get; protected set; } - /// - /// An ID that uniquely identifies the clip. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - } + /// + /// An ID that uniquely identifies the clip. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Clips/CreateClip/CreatedClipResponse.cs b/TwitchLib.Api.Helix.Models/Clips/CreateClip/CreatedClipResponse.cs index 8dd540e1..fdd01ecf 100644 --- a/TwitchLib.Api.Helix.Models/Clips/CreateClip/CreatedClipResponse.cs +++ b/TwitchLib.Api.Helix.Models/Clips/CreateClip/CreatedClipResponse.cs @@ -1,16 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Clips.CreateClip +namespace TwitchLib.Api.Helix.Models.Clips.CreateClip; + +/// +/// Response for CreateClip which creates a clip from the broadcaster's stream. +/// +public class CreatedClipResponse { - /// - /// Response for CreateClip which creates a clip from the broadcaster's stream. - /// - public class CreatedClipResponse - { - /// - /// Contains clip's ID and edit_URL that can be used to edit the clip's title, identify the part of the clip to publish, and publish the clip. - /// - [JsonProperty(PropertyName = "data")] - public CreatedClip[] CreatedClips { get; protected set; } - } + /// + /// Contains clip's ID and edit_URL that can be used to edit the clip's title, identify the part of the clip to publish, and publish the clip. + /// + [JsonProperty(PropertyName = "data")] + public CreatedClip[] CreatedClips { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Clips/GetClips/Clip.cs b/TwitchLib.Api.Helix.Models/Clips/GetClips/Clip.cs index c793f412..f35378ad 100644 --- a/TwitchLib.Api.Helix.Models/Clips/GetClips/Clip.cs +++ b/TwitchLib.Api.Helix.Models/Clips/GetClips/Clip.cs @@ -1,116 +1,115 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Clips.GetClips +namespace TwitchLib.Api.Helix.Models.Clips.GetClips; + +/// +/// A clip that was created from a broadcaster's stream. +/// +public class Clip { - /// - /// A clip that was created from a broadcaster's stream. - /// - public class Clip - { - /// - /// An ID that uniquely identifies the clip. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - - /// - /// A URL to the clip. - /// - [JsonProperty(PropertyName = "url")] - public string Url { get; protected set; } - - /// - /// A URL that you can use in an iframe to embed the clip. - /// - [JsonProperty(PropertyName = "embed_url")] - public string EmbedUrl { get; protected set; } - - /// - /// An ID that identifies the broadcaster that the video was clipped from. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - - /// - /// The broadcaster’s display name. - /// - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - - /// - /// An ID that identifies the user that created the clip. - /// - [JsonProperty(PropertyName = "creator_id")] - public string CreatorId { get; protected set; } - - /// - /// The display name of the user that created the clip. - /// - [JsonProperty(PropertyName = "creator_name")] - public string CreatorName { get; protected set; } - - /// - /// An ID that identifies the video that the clip came from. - /// This field contains an empty string if the video is not available. - /// - [JsonProperty(PropertyName = "video_id")] - public string VideoId { get; protected set; } - - /// - /// The ID of the game that was being played when the clip was created. - /// - [JsonProperty(PropertyName = "game_id")] - public string GameId { get; protected set; } - - /// - /// The ISO 639-1 two-letter language code that the broadcaster broadcasts in. For example, en for English. - /// The value is other if the broadcaster uses a language that Twitch doesn’t support. - /// - [JsonProperty(PropertyName = "language")] - public string Language { get; protected set; } - - /// - /// The title of the clip. - /// - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - - /// - /// The number of times the clip has been viewed. - /// - [JsonProperty(PropertyName = "view_count")] - public int ViewCount { get; protected set; } - - /// - /// The date and time of when the clip was created. The date and time is in RFC3339 format. - /// - [JsonProperty(PropertyName = "created_at")] - public string CreatedAt { get; protected set; } - - /// - /// A URL to a thumbnail image of the clip. - /// - [JsonProperty(PropertyName = "thumbnail_url")] - public string ThumbnailUrl { get; protected set; } - - /// - /// The length of the clip, in seconds. Precision is 0.1. - /// - [JsonProperty(PropertyName = "duration")] - public float Duration { get; protected set; } - - /// - /// The zero-based offset, in seconds, to where the clip starts in the video (VOD). - /// Is null if the video is not available or hasn’t been created yet from the live stream (see video_id). - /// Note that there’s a delay between when a clip is created during a broadcast and when the offset is set. During the delay period, vod_offset is null. The delay is indeterminant but is typically minutes long. - /// - [JsonProperty(PropertyName = "vod_offset")] - public int VodOffset { get; protected set; } - - /// - /// A Boolean value that indicates if the clip is featured or not. - /// - [JsonProperty(PropertyName = "is_featured")] - public bool IsFeatured { get; protected set; } - } + /// + /// An ID that uniquely identifies the clip. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// A URL to the clip. + /// + [JsonProperty(PropertyName = "url")] + public string Url { get; protected set; } + + /// + /// A URL that you can use in an iframe to embed the clip. + /// + [JsonProperty(PropertyName = "embed_url")] + public string EmbedUrl { get; protected set; } + + /// + /// An ID that identifies the broadcaster that the video was clipped from. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// An ID that identifies the user that created the clip. + /// + [JsonProperty(PropertyName = "creator_id")] + public string CreatorId { get; protected set; } + + /// + /// The display name of the user that created the clip. + /// + [JsonProperty(PropertyName = "creator_name")] + public string CreatorName { get; protected set; } + + /// + /// An ID that identifies the video that the clip came from. + /// This field contains an empty string if the video is not available. + /// + [JsonProperty(PropertyName = "video_id")] + public string VideoId { get; protected set; } + + /// + /// The ID of the game that was being played when the clip was created. + /// + [JsonProperty(PropertyName = "game_id")] + public string GameId { get; protected set; } + + /// + /// The ISO 639-1 two-letter language code that the broadcaster broadcasts in. For example, en for English. + /// The value is other if the broadcaster uses a language that Twitch doesn’t support. + /// + [JsonProperty(PropertyName = "language")] + public string Language { get; protected set; } + + /// + /// The title of the clip. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// The number of times the clip has been viewed. + /// + [JsonProperty(PropertyName = "view_count")] + public int ViewCount { get; protected set; } + + /// + /// The date and time of when the clip was created. The date and time is in RFC3339 format. + /// + [JsonProperty(PropertyName = "created_at")] + public string CreatedAt { get; protected set; } + + /// + /// A URL to a thumbnail image of the clip. + /// + [JsonProperty(PropertyName = "thumbnail_url")] + public string ThumbnailUrl { get; protected set; } + + /// + /// The length of the clip, in seconds. Precision is 0.1. + /// + [JsonProperty(PropertyName = "duration")] + public float Duration { get; protected set; } + + /// + /// The zero-based offset, in seconds, to where the clip starts in the video (VOD). + /// Is null if the video is not available or hasn’t been created yet from the live stream (see video_id). + /// Note that there’s a delay between when a clip is created during a broadcast and when the offset is set. During the delay period, vod_offset is null. The delay is indeterminant but is typically minutes long. + /// + [JsonProperty(PropertyName = "vod_offset")] + public int VodOffset { get; protected set; } + + /// + /// A Boolean value that indicates if the clip is featured or not. + /// + [JsonProperty(PropertyName = "is_featured")] + public bool IsFeatured { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Clips/GetClips/GetClipsResponse.cs b/TwitchLib.Api.Helix.Models/Clips/GetClips/GetClipsResponse.cs index 0d0c9983..89a71193 100644 --- a/TwitchLib.Api.Helix.Models/Clips/GetClips/GetClipsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Clips/GetClips/GetClipsResponse.cs @@ -1,26 +1,25 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Clips.GetClips +namespace TwitchLib.Api.Helix.Models.Clips.GetClips; + +/// +/// Response for GetClips which returns one or more video clips that were captured from streams. +/// +public class GetClipsResponse { - /// - /// Response for GetClips which returns one or more video clips that were captured from streams. - /// - public class GetClipsResponse - { - /// - /// The list of video clips. - /// For clips returned by game_id or broadcaster_id, the list is in descending order by view count. - /// For lists returned by id, the list is in the same order as the input IDs. - /// - [JsonProperty(PropertyName = "data")] - public Clip[] Clips { get; protected set; } + /// + /// The list of video clips. + /// For clips returned by game_id or broadcaster_id, the list is in descending order by view count. + /// For lists returned by id, the list is in the same order as the input IDs. + /// + [JsonProperty(PropertyName = "data")] + public Clip[] Clips { get; protected set; } - /// - /// The information used to page through the list of results.
- /// The object is empty if there are no more pages left to page through.
- ///
- [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The information used to page through the list of results.
+ /// The object is empty if there are no more pages left to page through.
+ ///
+ [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Common/DateRange.cs b/TwitchLib.Api.Helix.Models/Common/DateRange.cs index a278bd9f..9d2c21c5 100644 --- a/TwitchLib.Api.Helix.Models/Common/DateRange.cs +++ b/TwitchLib.Api.Helix.Models/Common/DateRange.cs @@ -1,23 +1,22 @@ using Newtonsoft.Json; using System; -namespace TwitchLib.Api.Helix.Models.Common +namespace TwitchLib.Api.Helix.Models.Common; + +/// +/// The reporting period's start and end dates +/// +public class DateRange { - /// - /// The reporting period's start and end dates - /// - public class DateRange - { - /// - /// The reporting period's start date. - /// - [JsonProperty(PropertyName = "started_at")] - public DateTime StartedAt { get; protected set; } + /// + /// The reporting period's start date. + /// + [JsonProperty(PropertyName = "started_at")] + public DateTime StartedAt { get; protected set; } - /// - /// The reporting period's end date. - /// - [JsonProperty(PropertyName = "ended_at")] - public DateTime EndedAt { get; protected set; } - } + /// + /// The reporting period's end date. + /// + [JsonProperty(PropertyName = "ended_at")] + public DateTime EndedAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Common/Pagination.cs b/TwitchLib.Api.Helix.Models/Common/Pagination.cs index 40f00698..9b96581c 100644 --- a/TwitchLib.Api.Helix.Models/Common/Pagination.cs +++ b/TwitchLib.Api.Helix.Models/Common/Pagination.cs @@ -1,20 +1,19 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Common +namespace TwitchLib.Api.Helix.Models.Common; + +/// +/// +/// Twitch Docs: Pagination +/// Contains the cusor for the page. +/// The object is empty if there are no more pages left to page through. +/// +public class Pagination { - /// - /// - /// Twitch Docs: Pagination - /// Contains the cusor for the page. - /// The object is empty if there are no more pages left to page through. - /// - public class Pagination - { - /// - /// The cursor used to get the next page of results. - /// Use the cursor’s value to set the after or before query parameter depending on the direction you want to page. - /// - [JsonProperty(PropertyName = "cursor")] - public string Cursor { get; protected set; } - } + /// + /// The cursor used to get the next page of results. + /// Use the cursor’s value to set the after or before query parameter depending on the direction you want to page. + /// + [JsonProperty(PropertyName = "cursor")] + public string Cursor { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Common/Tag.cs b/TwitchLib.Api.Helix.Models/Common/Tag.cs index cb48bdc1..9ba7a586 100644 --- a/TwitchLib.Api.Helix.Models/Common/Tag.cs +++ b/TwitchLib.Api.Helix.Models/Common/Tag.cs @@ -1,17 +1,34 @@ using System.Collections.Generic; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Common +namespace TwitchLib.Api.Helix.Models.Common; + +/// +/// Stream tag that the broadcaster or Twitch added to their channel. +/// +public class Tag { - public class Tag - { - [JsonProperty(PropertyName = "tag_id")] - public string TagId { get; protected set; } - [JsonProperty(PropertyName = "is_auto")] - public bool IsAuto { get; protected set; } - [JsonProperty(PropertyName = "localization_names")] - public Dictionary LocalizationNames { get; protected set; } - [JsonProperty(PropertyName = "localization_descriptions")] - public Dictionary LocalizationDescriptions { get; protected set; } - } + /// + /// An ID that identifies this tag. + /// + [JsonProperty(PropertyName = "tag_id")] + public string TagId { get; protected set; } + + /// + /// A Boolean value that determines whether the tag is an automatic tag. + /// + [JsonProperty(PropertyName = "is_auto")] + public bool IsAuto { get; protected set; } + + /// + /// A dictionary that contains the localized names of the tag. + /// + [JsonProperty(PropertyName = "localization_names")] + public Dictionary LocalizationNames { get; protected set; } + + /// + /// A dictionary that contains the localized descriptions of the tag. + /// + [JsonProperty(PropertyName = "localization_descriptions")] + public Dictionary LocalizationDescriptions { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/ContentClassificationLabels/ContentClassificationLabel.cs b/TwitchLib.Api.Helix.Models/ContentClassificationLabels/ContentClassificationLabel.cs index 1a35973a..1704a33b 100644 --- a/TwitchLib.Api.Helix.Models/ContentClassificationLabels/ContentClassificationLabel.cs +++ b/TwitchLib.Api.Helix.Models/ContentClassificationLabels/ContentClassificationLabel.cs @@ -1,28 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ContentClassificationLabels +namespace TwitchLib.Api.Helix.Models.ContentClassificationLabels; + +/// +/// The list of Content Classification Labels available. +/// +public class ContentClassificationLabel { - /// - /// The list of Content Classification Labels available. - /// - public class ContentClassificationLabel - { - /// - /// Unique identifier for the Content Classification Labels. - /// - [JsonProperty(PropertyName = "id")] - public string ID { get; set; } + /// + /// Unique identifier for the Content Classification Labels. + /// + [JsonProperty(PropertyName = "id")] + public string ID { get; set; } - /// - /// Localized description of the Content Classification Labels. - /// - [JsonProperty(PropertyName = "description")] - public string Description { get; set; } + /// + /// Localized description of the Content Classification Labels. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; set; } - /// - /// Localized name of the Content Classification Labels. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - } + /// + /// Localized name of the Content Classification Labels. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/ContentClassificationLabels/GetContentClassificationLabelsResponse.cs b/TwitchLib.Api.Helix.Models/ContentClassificationLabels/GetContentClassificationLabelsResponse.cs index 8aecdd7f..6427742a 100644 --- a/TwitchLib.Api.Helix.Models/ContentClassificationLabels/GetContentClassificationLabelsResponse.cs +++ b/TwitchLib.Api.Helix.Models/ContentClassificationLabels/GetContentClassificationLabelsResponse.cs @@ -1,16 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.ContentClassificationLabels +namespace TwitchLib.Api.Helix.Models.ContentClassificationLabels; + +/// +/// Response from GetContentClassificationLabels which gets information about Twitch content classification labels. +/// +public class GetContentClassificationLabelsResponse { - /// - /// Response from GetContentClassificationLabels which gets information about Twitch content classification labels. - /// - public class GetContentClassificationLabelsResponse - { - /// - /// A list that contains information about the available content classification labels. - /// - [JsonProperty(PropertyName = "data")] - public ContentClassificationLabel[] Data { get; protected set; } - } + /// + /// A list that contains information about the available content classification labels. + /// + [JsonProperty(PropertyName = "data")] + public ContentClassificationLabel[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/DropsEntitlement.cs b/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/DropsEntitlement.cs index 952df62a..12d03b38 100644 --- a/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/DropsEntitlement.cs +++ b/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/DropsEntitlement.cs @@ -2,23 +2,54 @@ using Newtonsoft.Json; using TwitchLib.Api.Core.Enums; -namespace TwitchLib.Api.Helix.Models.Entitlements.GetDropsEntitlements +namespace TwitchLib.Api.Helix.Models.Entitlements.GetDropsEntitlements; + +/// +/// /// +/// An organization’s entitlement that has been granted to a game, a user, or both. +/// +/// +public class DropsEntitlement { - public class DropsEntitlement - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "benefit_id")] - public string BenefitId { get; protected set; } - [JsonProperty(PropertyName = "timestamp")] - public DateTime Timestamp { get; protected set; } - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "game_id")] - public string GameId { get; protected set; } - [JsonProperty(PropertyName = "fulfillment_status")] - public FulfillmentStatus FulfillmentStatus { get; protected set; } - [JsonProperty(PropertyName = "updated_at")] - public DateTime UpdatedAt { get; protected set; } - } + /// + /// An ID that identifies the entitlement. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// An ID that identifies the benefit (reward). + /// + [JsonProperty(PropertyName = "benefit_id")] + public string BenefitId { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the entitlement was granted. + /// + [JsonProperty(PropertyName = "timestamp")] + public DateTime Timestamp { get; protected set; } + + /// + /// An ID that identifies the user who was granted the entitlement. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// An ID that identifies the game the user was playing when the reward was entitled. + /// + [JsonProperty(PropertyName = "game_id")] + public string GameId { get; protected set; } + + /// + /// The entitlement’s fulfillment status. + /// + [JsonProperty(PropertyName = "fulfillment_status")] + public FulfillmentStatus FulfillmentStatus { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the entitlement was last updated. + /// + [JsonProperty(PropertyName = "last_updated")] + public DateTime LastUpdated { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/GetDropsEntitlementsResponse.cs b/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/GetDropsEntitlementsResponse.cs index 22ea5dbe..7e5f2631 100644 --- a/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/GetDropsEntitlementsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/GetDropsEntitlementsResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Entitlements.GetDropsEntitlements +namespace TwitchLib.Api.Helix.Models.Entitlements.GetDropsEntitlements; + +/// +/// An organization’s list of entitlements that have been granted to a game, a user, or both response object. +/// +public class GetDropsEntitlementsResponse { - public class GetDropsEntitlementsResponse - { - [JsonProperty(PropertyName = "data")] - public DropsEntitlement[] DropEntitlements { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of entitlements. + /// + [JsonProperty(PropertyName = "data")] + public DropsEntitlement[] DropEntitlements { get; protected set; } + + /// + /// The information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Entitlements/UpdateDropsEntitlements/DropEntitlementUpdate.cs b/TwitchLib.Api.Helix.Models/Entitlements/UpdateDropsEntitlements/DropEntitlementUpdate.cs index dc90581f..d4514102 100644 --- a/TwitchLib.Api.Helix.Models/Entitlements/UpdateDropsEntitlements/DropEntitlementUpdate.cs +++ b/TwitchLib.Api.Helix.Models/Entitlements/UpdateDropsEntitlements/DropEntitlementUpdate.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Core.Enums; -namespace TwitchLib.Api.Helix.Models.Entitlements.UpdateDropsEntitlements +namespace TwitchLib.Api.Helix.Models.Entitlements.UpdateDropsEntitlements; + +/// +/// The Drop entitlement’s fulfillment update status. +/// +public class DropEntitlementUpdate { - public class DropEntitlementUpdate - { - [JsonProperty(PropertyName = "status")] - public DropEntitlementUpdateStatus Status { get; protected set; } - [JsonProperty(PropertyName = "ids")] - public string[] Ids { get; protected set; } - } + /// + /// A string that indicates whether the status of the entitlements in the ids field were successfully updated. + /// + [JsonProperty(PropertyName = "status")] + public DropEntitlementUpdateStatus Status { get; protected set; } + + /// + /// The list of entitlements that the status in the status field applies to. + /// + [JsonProperty(PropertyName = "ids")] + public string[] Ids { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Entitlements/UpdateDropsEntitlements/UpdateDropsEntitlementsResponse.cs b/TwitchLib.Api.Helix.Models/Entitlements/UpdateDropsEntitlements/UpdateDropsEntitlementsResponse.cs index ce25734b..69190774 100644 --- a/TwitchLib.Api.Helix.Models/Entitlements/UpdateDropsEntitlements/UpdateDropsEntitlementsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Entitlements/UpdateDropsEntitlements/UpdateDropsEntitlementsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Entitlements.UpdateDropsEntitlements +namespace TwitchLib.Api.Helix.Models.Entitlements.UpdateDropsEntitlements; + +/// +/// The Drop entitlement’s fulfillment update status response object. +/// +public class UpdateDropsEntitlementsResponse { - public class UpdateDropsEntitlementsResponse - { - [JsonProperty(PropertyName = "data")] - public DropEntitlementUpdate[] DropEntitlementUpdates { get; protected set; } - } + /// + /// A list that indicates which entitlements were successfully updated and those that weren’t. + /// + [JsonProperty(PropertyName = "data")] + public DropEntitlementUpdate[] DropEntitlementUpdates { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Conduit.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Conduit.cs index 502403c4..41f0e60f 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Conduit.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Conduit.cs @@ -2,16 +2,21 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits; + +/// +/// Information about the client�s conduit. +/// public class Conduit -{ - /// - /// Conduit ID. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - /// - /// Number of shards associated with this conduit. - /// - [JsonProperty(PropertyName = "shard_count")] - public int ShardCount { get; protected set; } +{ + /// + /// Conduit ID. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// Number of shards associated with this conduit. + /// + [JsonProperty(PropertyName = "shard_count")] + public int ShardCount { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/CreateConduits/CreateConduitsRequest.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/CreateConduits/CreateConduitsRequest.cs index c3d7d5f6..5ebf16f0 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/CreateConduits/CreateConduitsRequest.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/CreateConduits/CreateConduitsRequest.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.CreateConduits; +/// +/// Request object for Create Conduits. +/// public class CreateConduitsRequest { /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/CreateConduits/CreateConduitsResponse.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/CreateConduits/CreateConduitsResponse.cs index 02ff366b..68fc2b59 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/CreateConduits/CreateConduitsResponse.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/CreateConduits/CreateConduitsResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.CreateConduits; +/// +/// Create a new conduit response object. +/// public class CreateConduitsResponse { /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/GetConduits/GetConduitsResponse.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/GetConduits/GetConduitsResponse.cs index 27a2b1bb..c262334f 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/GetConduits/GetConduitsResponse.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/GetConduits/GetConduitsResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.GetConduits; +/// +/// Gets the conduits for a client ID response object. +/// public class GetConduitsResponse { /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/GetConduitShards/GetConduitShardsResponse.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/GetConduitShards/GetConduitShardsResponse.cs index efb9af77..13601dbc 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/GetConduitShards/GetConduitShardsResponse.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/GetConduitShards/GetConduitShardsResponse.cs @@ -3,6 +3,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards.GetConduitShards; +/// +/// Get Conduit Shards Response object. +/// public class GetConduitShardsResponse { /// @@ -10,6 +13,7 @@ public class GetConduitShardsResponse /// [JsonProperty(PropertyName = "data")] public Shard[] Shards { get; protected set; } + /// /// Contains information used to page through a list of results. The object is empty if there are no more pages left to page through. /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs index a44a27fe..66d57861 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards; +/// +/// +/// public class Shard { /// @@ -9,10 +12,17 @@ public class Shard /// [JsonProperty(PropertyName = "id")] public string Id { get; protected set; } + /// /// The shard status. The subscriber receives events only for enabled shards. Possible values are: /// enabled, webhook_callback_verification_pending, webhook_callback_verification_failed, notification_failures_exceeded, websocket_disconnected, websocket_failed_ping_pong, websocket_received_inbound_traffic, websocket_internal_error, websocket_network_timeout, websocket_network_error /// [JsonProperty(PropertyName = "status")] public string Status { get; protected set; } + + /// + /// The transport details used to send the notifications. + /// + [JsonProperty(PropertyName = "transport")] + public Transport Transport { get; set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Transport.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Transport.cs index e9603b65..9f9d6612 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Transport.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Transport.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards; +/// +/// The transport details used to send the notifications. +/// public class Transport { /// @@ -10,21 +13,25 @@ public class Transport /// [JsonProperty(PropertyName = "method")] public string Method { get; protected set; } + /// /// The callback URL where the notifications are sent. Included only if method is set to webhook. /// [JsonProperty(PropertyName = "callback")] public string Callback { get; protected set; } + /// /// An ID that identifies the WebSocket that notifications are sent to. Included only if method is set to websocket. /// [JsonProperty(PropertyName = "session_id")] public string SessionId { get; protected set; } + /// /// The UTC date and time that the WebSocket connection was established. Included only if method is set to websocket. /// [JsonProperty(PropertyName = "connected_at")] public string ConnectedAt { get; protected set; } + /// /// The UTC date and time that the WebSocket connection was lost. Included only if method is set to websocket. /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/Error.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/Error.cs index a925d5cd..8d25a309 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/Error.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/Error.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards.UpdateConduitShards; +/// +/// Unsuccessful update conduit shard errors. +/// public class Error { /// @@ -9,11 +12,13 @@ public class Error /// [JsonProperty(PropertyName = "id")] public string Id { get; protected set; } + /// /// The error that occurred while updating the shard. /// [JsonProperty(PropertyName = "message")] public string Message { get; protected set; } + /// /// Error codes used to represent a specific error condition while attempting to update shards. /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/ShardUpdate.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/ShardUpdate.cs index 00f5d890..51e2553f 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/ShardUpdate.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/ShardUpdate.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards.UpdateConduitShards; +/// +/// Shard to update. +/// public class ShardUpdate { /// @@ -9,6 +12,7 @@ public class ShardUpdate /// [JsonProperty(PropertyName = "id")] public string Id { get; set; } + /// /// The transport details that you want Twitch to use when sending you notifications. /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/TransportUpdate.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/TransportUpdate.cs index dc1ece70..10901dd2 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/TransportUpdate.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/TransportUpdate.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards.UpdateConduitShards; +/// +/// The transport details used to send the notifications. +/// public class TransportUpdate { /// @@ -10,16 +13,19 @@ public class TransportUpdate /// [JsonProperty(PropertyName = "method")] public string Method { get; set; } + /// /// The callback URL where the notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an event.Specify this field only if method is set to webhook.NOTE: Redirects are not followed. /// [JsonProperty(PropertyName = "callback", NullValueHandling = NullValueHandling.Ignore)] public string Callback { get; set; } + /// /// The secret used to verify the signature. The secret must be an ASCII string that’s a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.Specify this field only if method is set to webhook. /// [JsonProperty(PropertyName = "secret", NullValueHandling = NullValueHandling.Ignore)] public string Secret { get; set; } + /// /// An ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.Specify this field only if method is set to websocket. /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/UpdateConduitShardsRequest.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/UpdateConduitShardsRequest.cs index ac026881..1b04cee8 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/UpdateConduitShardsRequest.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/UpdateConduitShardsRequest.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards.UpdateConduitShards; +/// +/// Request object for update conduit shards. +/// public class UpdateConduitShardsRequest { /// @@ -9,6 +12,7 @@ public class UpdateConduitShardsRequest /// [JsonProperty(PropertyName = "conduit_id")] public string ConduitId { get; set; } + /// /// List of shards to update. /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/UpdateConduitShardsResponse.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/UpdateConduitShardsResponse.cs index cad07e25..f1bfebea 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/UpdateConduitShardsResponse.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/UpdateConduitShards/UpdateConduitShardsResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards.UpdateConduitShards; +/// +/// Update conduit shards Response object. +/// public class UpdateConduitShardsResponse { /// @@ -9,6 +12,7 @@ public class UpdateConduitShardsResponse /// [JsonProperty(PropertyName = "data")] public Shard[] Shards { get; protected set; } + /// /// List of unsuccessful updates. /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/UpdateConduits/UpdateConduitsRequest.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/UpdateConduits/UpdateConduitsRequest.cs index b61f6e9f..4bf72ce6 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/UpdateConduits/UpdateConduitsRequest.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/UpdateConduits/UpdateConduitsRequest.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.UpdateConduits; +/// +/// Request object for Update Conduits. +/// public class UpdateConduitsRequest { /// @@ -9,6 +12,7 @@ public class UpdateConduitsRequest /// [JsonProperty(PropertyName = "id")] public string Id { get; set; } + /// /// The new number of shards for this conduit. /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/UpdateConduits/UpdateConduitsResponse.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/UpdateConduits/UpdateConduitsResponse.cs index 75e47bda..9b4d90c9 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/UpdateConduits/UpdateConduitsResponse.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/UpdateConduits/UpdateConduitsResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.UpdateConduits; +/// +/// Update conduits response object. +/// public class UpdateConduitsResponse { /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/CreateEventSubSubscriptionResponse.cs b/TwitchLib.Api.Helix.Models/EventSub/CreateEventSubSubscriptionResponse.cs index 0776f056..7b508786 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/CreateEventSubSubscriptionResponse.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/CreateEventSubSubscriptionResponse.cs @@ -1,16 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.EventSub +namespace TwitchLib.Api.Helix.Models.EventSub; + +/// +/// Create an EventSub subscription resposne object. +/// +public class CreateEventSubSubscriptionResponse { - public class CreateEventSubSubscriptionResponse - { - [JsonProperty(PropertyName = "data")] - public EventSubSubscription[] Subscriptions { get; protected set; } - [JsonProperty(PropertyName = "total")] - public int Total { get; protected set; } - [JsonProperty(PropertyName = "total_cost")] - public int TotalCost { get; protected set; } - [JsonProperty(PropertyName = "max_total_cost")] - public int MaxTotalCost { get; protected set; } - } + /// + /// A list that contains the single subscription that you created. + /// + [JsonProperty(PropertyName = "data")] + public EventSubSubscription[] Subscriptions { get; protected set; } + + /// + /// The total number of subscriptions you’ve created. + /// + [JsonProperty(PropertyName = "total")] + public int Total { get; protected set; } + + /// + /// The sum of all of your subscription costs. + /// + [JsonProperty(PropertyName = "total_cost")] + public int TotalCost { get; protected set; } + + /// + /// The maximum total cost that you’re allowed to incur for all subscriptions you create. + /// + [JsonProperty(PropertyName = "max_total_cost")] + public int MaxTotalCost { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/EventSub/EventSubSubscription.cs b/TwitchLib.Api.Helix.Models/EventSub/EventSubSubscription.cs index c56efa31..b2c3f84d 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/EventSubSubscription.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/EventSubSubscription.cs @@ -1,56 +1,58 @@ using System.Collections.Generic; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.EventSub +namespace TwitchLib.Api.Helix.Models.EventSub; + +/// +/// A single subscription. +/// +public class EventSubSubscription { - public class EventSubSubscription - { - /// - /// An ID that identifies the subscription. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - - /// - /// The subscription’s status. Possible values: enable, webhook_callback_verification_pending, webhook_callback_verification_failed, notification_failures_exceeded, authorization_revoked, user_removed - /// - [JsonProperty(PropertyName = "status")] - public string Status { get; protected set; } - - /// - /// The subscription’s type. - /// - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - - /// - /// The version of the subscription type. - /// - [JsonProperty(PropertyName = "version")] - public string Version { get; protected set; } - - /// - /// The subscription’s parameter values. - /// - [JsonProperty(PropertyName = "condition")] - public Dictionary Condition { get; protected set; } - - /// - /// The RFC 3339 timestamp indicating when the subscription was created. - /// - [JsonProperty(PropertyName = "created_at")] - public string CreatedAt { get; protected set; } - - /// - /// The transport details used to send you notifications. - /// - [JsonProperty(PropertyName = "transport")] - public EventSubTransport Transport { get; protected set; } - - /// - /// The amount that the subscription counts against your limit. - /// - [JsonProperty(PropertyName = "cost")] - public int Cost { get; protected set; } - } + /// + /// An ID that identifies the subscription. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The subscription’s status. Possible values: enable, webhook_callback_verification_pending, webhook_callback_verification_failed, notification_failures_exceeded, authorization_revoked, user_removed + /// + [JsonProperty(PropertyName = "status")] + public string Status { get; protected set; } + + /// + /// The subscription’s type. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } + + /// + /// The version of the subscription type. + /// + [JsonProperty(PropertyName = "version")] + public string Version { get; protected set; } + + /// + /// The subscription’s parameter values. + /// + [JsonProperty(PropertyName = "condition")] + public Dictionary Condition { get; protected set; } + + /// + /// The RFC 3339 timestamp indicating when the subscription was created. + /// + [JsonProperty(PropertyName = "created_at")] + public string CreatedAt { get; protected set; } + + /// + /// The transport details used to send you notifications. + /// + [JsonProperty(PropertyName = "transport")] + public EventSubTransport Transport { get; protected set; } + + /// + /// The amount that the subscription counts against your limit. + /// + [JsonProperty(PropertyName = "cost")] + public int Cost { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/EventSub/EventSubTransport.cs b/TwitchLib.Api.Helix.Models/EventSub/EventSubTransport.cs index 75cd2b58..9becb1ff 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/EventSubTransport.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/EventSubTransport.cs @@ -1,17 +1,34 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.EventSub +namespace TwitchLib.Api.Helix.Models.EventSub; + +/// +/// The transport details used to send the notifications. +/// +public class EventSubTransport { - public class EventSubTransport - { - [JsonProperty(PropertyName = "method")] - public string Method { get; protected set; } - [JsonProperty(PropertyName = "callback")] - public string Callback { get; protected set; } - [JsonProperty(PropertyName = "created_at")] - public DateTime? CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "disconnected_at")] - public DateTime? DisconnectedAt { get; protected set; } - } + /// + /// The transport method. Possible values are: + /// + [JsonProperty(PropertyName = "method")] + public string Method { get; protected set; } + + /// + /// The callback URL where the notifications are sent. Included only if method is set to webhook. + /// + [JsonProperty(PropertyName = "callback")] + public string Callback { get; protected set; } + + /// + /// An ID that identifies the WebSocket that notifications are sent to. Included only if method is set to websocket. + /// + [JsonProperty(PropertyName = "session_id")] + public string SessionId { get; protected set; } + + /// + /// The UTC date and time that the WebSocket connection was established. Included only if method is set to websocket. + /// + [JsonProperty(PropertyName = "connected_at")] + public string DisconnectedAt { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/EventSub/GetEventSubSubscriptionsResponse.cs b/TwitchLib.Api.Helix.Models/EventSub/GetEventSubSubscriptionsResponse.cs index aebe6110..1102d4f0 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/GetEventSubSubscriptionsResponse.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/GetEventSubSubscriptionsResponse.cs @@ -1,38 +1,40 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.EventSub +namespace TwitchLib.Api.Helix.Models.EventSub; + +/// +/// Get eventsub subscriptions response object. +/// +public class GetEventSubSubscriptionsResponse { - public class GetEventSubSubscriptionsResponse - { - /// - /// The total number of subscriptions you’ve created. - /// - [JsonProperty(PropertyName = "total")] - public int Total { get; protected set; } + /// + /// The total number of subscriptions you’ve created. + /// + [JsonProperty(PropertyName = "total")] + public int Total { get; protected set; } - /// - /// An array of subscription objects. The list is empty if you don’t have any subscriptions. - /// - [JsonProperty(PropertyName = "data")] - public EventSubSubscription[] Subscriptions { get; protected set; } + /// + /// An array of subscription objects. The list is empty if you don’t have any subscriptions. + /// + [JsonProperty(PropertyName = "data")] + public EventSubSubscription[] Subscriptions { get; protected set; } - /// - /// The sum of all of your subscription costs. - /// - [JsonProperty(PropertyName = "total_cost")] - public int TotalCost { get; protected set; } + /// + /// The sum of all of your subscription costs. + /// + [JsonProperty(PropertyName = "total_cost")] + public int TotalCost { get; protected set; } - /// - /// The maximum total cost that you’re allowed to incur for all subscriptions you create. - /// - [JsonProperty(PropertyName = "max_total_cost")] - public int MaxTotalCost { get; protected set; } + /// + /// The maximum total cost that you’re allowed to incur for all subscriptions you create. + /// + [JsonProperty(PropertyName = "max_total_cost")] + public int MaxTotalCost { get; protected set; } - /// - /// An object that contains the cursor used to get the next page of subscriptions. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// An object that contains the cursor used to get the next page of subscriptions. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Extensions/LiveChannels/GetExtensionLiveChannelsResponse.cs b/TwitchLib.Api.Helix.Models/Extensions/LiveChannels/GetExtensionLiveChannelsResponse.cs index 8f503140..5c712fde 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/LiveChannels/GetExtensionLiveChannelsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/LiveChannels/GetExtensionLiveChannelsResponse.cs @@ -1,10 +1,22 @@ using Newtonsoft.Json; +using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Extensions.LiveChannels +namespace TwitchLib.Api.Helix.Models.Extensions.LiveChannels; + +/// +/// Get extension live channels repsonse object. +/// +public class GetExtensionLiveChannelsResponse { - public class GetExtensionLiveChannelsResponse - { - [JsonProperty(PropertyName = "data")] - public LiveChannel[] Data { get; protected set; } - } + /// + /// The list of broadcasters that are streaming live and that have installed or activated the extension. + /// + [JsonProperty(PropertyName = "data")] + public LiveChannel[] Data { get; protected set; } + + /// + /// This field contains the cursor used to page through the results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/LiveChannels/LiveChannel.cs b/TwitchLib.Api.Helix.Models/Extensions/LiveChannels/LiveChannel.cs index 718c9d82..a538cd7a 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/LiveChannels/LiveChannel.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/LiveChannels/LiveChannel.cs @@ -1,18 +1,39 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.LiveChannels +namespace TwitchLib.Api.Helix.Models.Extensions.LiveChannels; + +/// +/// A broadcaster that is streaming live and that have installed or activated the extension. +/// +public class LiveChannel { - public class LiveChannel - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - [JsonProperty(PropertyName = "game_name")] - public string GameName { get; protected set; } - [JsonProperty(PropertyName = "game_id")] - public string GameId { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - } + /// + /// The ID of the broadcaster that is streaming live and has installed or activated the extension. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The name of the category or game being streamed. + /// + [JsonProperty(PropertyName = "game_name")] + public string GameName { get; protected set; } + + /// + /// The ID of the category or game being streamed. + /// + [JsonProperty(PropertyName = "game_id")] + public string GameId { get; protected set; } + + /// + /// The title of the broadcaster’s stream. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Component.cs b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Component.cs index 129d6234..750d9d24 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Component.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Component.cs @@ -1,32 +1,81 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions +namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions; + +/// +/// Describes how the extension is rendered if the extension may be activated as a video-component extension. +/// +public class Component { - public class Component - { - [JsonProperty(PropertyName = "viewer_url")] - public string ViewerUrl { get; protected set; } - [JsonProperty(PropertyName = "aspect_width")] - public int AspectWidth { get; protected set; } - [JsonProperty(PropertyName = "aspect_height")] - public int AspectHeight { get; protected set; } - [JsonProperty(PropertyName = "aspect_ratio_x")] - public int AspectRatioX { get; protected set; } - [JsonProperty(PropertyName = "aspect_ratio_y")] - public int AspectRatioY { get; protected set; } - [JsonProperty(PropertyName = "autoscale")] - public bool Autoscale { get; protected set; } - [JsonProperty(PropertyName = "scale_pixels")] - public int ScalePixels { get; protected set; } - [JsonProperty(PropertyName = "target_height")] - public int TargetHeight { get; protected set; } - [JsonProperty(PropertyName = "size")] - public int Size { get; protected set; } - [JsonProperty(PropertyName = "zoom")] - public bool Zoom { get; protected set; } - [JsonProperty(PropertyName = "zoom_pixels")] - public int ZoomPixels { get; protected set; } - [JsonProperty(PropertyName = "can_link_external_content")] - public string CanLinkExternalContent { get; protected set; } - } + /// + /// The HTML file that is shown to viewers on the channel page when the extension is activated in a Video - Component slot. + /// + [JsonProperty(PropertyName = "viewer_url")] + public string ViewerUrl { get; protected set; } + + /// + /// The width + /// + [JsonProperty(PropertyName = "aspect_width")] + public int AspectWidth { get; protected set; } + + /// + /// The height + /// + [JsonProperty(PropertyName = "aspect_height")] + public int AspectHeight { get; protected set; } + + /// + /// The width value of the ratio (width : height) which determines the extension’s width, and how the extension’s iframe will resize in different video player environments. + /// + [JsonProperty(PropertyName = "aspect_ratio_x")] + public int AspectRatioX { get; protected set; } + + /// + /// The height value of the ratio (width : height) which determines the extension’s height, and how the extension’s iframe will resize in different video player environments. + /// + [JsonProperty(PropertyName = "aspect_ratio_y")] + public int AspectRatioY { get; protected set; } + + /// + /// A Boolean value that determines whether to apply CSS zoom. + /// + [JsonProperty(PropertyName = "autoscale")] + public bool Autoscale { get; protected set; } + + /// + /// The base width, in pixels, of the extension to use when scaling. + /// + [JsonProperty(PropertyName = "scale_pixels")] + public int ScalePixels { get; protected set; } + + /// + /// The height as a percent of the maximum height of a video component extension. Values are between 1% - 100%. + /// + [JsonProperty(PropertyName = "target_height")] + public int TargetHeight { get; protected set; } + + /// + /// Size + /// + [JsonProperty(PropertyName = "size")] + public int Size { get; protected set; } + + /// + /// Zoom + /// + [JsonProperty(PropertyName = "zoom")] + public bool Zoom { get; protected set; } + + /// + /// Zoom Pixels + /// + [JsonProperty(PropertyName = "zoom_pixels")] + public int ZoomPixels { get; protected set; } + + /// + /// A Boolean value that determines whether the extension can link to non-Twitch domains. + /// + [JsonProperty(PropertyName = "can_link_external_content")] + public string CanLinkExternalContent { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/GetReleasedExtensionsResponse.cs b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/GetReleasedExtensionsResponse.cs index 45c991c7..34ec58e1 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/GetReleasedExtensionsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/GetReleasedExtensionsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions +namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions; + +/// +/// Get released extensions response object. +/// +public class GetReleasedExtensionsResponse { - public class GetReleasedExtensionsResponse - { - [JsonProperty(PropertyName = "data")] - public ReleasedExtension[] Data { get; protected set; } - } + /// + /// A list that contains the specified extension. + /// + [JsonProperty(PropertyName = "data")] + public ReleasedExtension[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/IconUrls.cs b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/IconUrls.cs index 04bddeee..5e05ac75 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/IconUrls.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/IconUrls.cs @@ -1,14 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions +namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions; + +/// +/// A list that contains URLs to different sizes of the default icon. +/// +public class IconUrls { - public class IconUrls - { - [JsonProperty(PropertyName = "100x100")] - public string Size100x100 { get; protected set; } - [JsonProperty(PropertyName = "24x24")] - public string Size24x24 { get; protected set; } - [JsonProperty(PropertyName = "300x200")] - public string Size300x200 { get; protected set; } - } + /// + /// Size100x100 + /// + [JsonProperty(PropertyName = "100x100")] + public string Size100x100 { get; protected set; } + + /// + /// Size24x24 + /// + [JsonProperty(PropertyName = "24x24")] + public string Size24x24 { get; protected set; } + + /// + /// Size300x200 + /// + [JsonProperty(PropertyName = "300x200")] + public string Size300x200 { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Mobile.cs b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Mobile.cs index 1d242137..e1a30945 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Mobile.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Mobile.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions +namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions; + +/// +/// Describes how the extension is displayed on mobile devices. +/// +public class Mobile { - public class Mobile - { - [JsonProperty(PropertyName = "viewer_url")] - public string ViewerUrl { get; protected set; } - } + /// + /// The HTML file that is shown to viewers on mobile devices. This page is presented to viewers as a panel behind the chat area of the mobile app. + /// + [JsonProperty(PropertyName = "viewer_url")] + public string ViewerUrl { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Panel.cs b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Panel.cs index 79654cb8..a592c1f2 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Panel.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Panel.cs @@ -1,14 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions +namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions; + +/// +/// Describes how the extension is rendered if the extension may be activated as a panel extension. +/// +public class Panel { - public class Panel - { - [JsonProperty(PropertyName = "viewer_url")] - public string ViewerUrl { get; protected set; } - [JsonProperty(PropertyName = "height")] - public int Height { get; protected set; } - [JsonProperty(PropertyName = "can_link_external_content")] - public bool CanLinkExternalContent { get; protected set; } - } + /// + /// The HTML file that is shown to viewers on the channel page when the extension is activated in a Panel slot. + /// + [JsonProperty(PropertyName = "viewer_url")] + public string ViewerUrl { get; protected set; } + + /// + /// The height, in pixels, of the panel component that the extension is rendered in. + /// + [JsonProperty(PropertyName = "height")] + public int Height { get; protected set; } + + /// + /// A Boolean value that determines whether the extension can link to non-Twitch domains. + /// + [JsonProperty(PropertyName = "can_link_external_content")] + public bool CanLinkExternalContent { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/ReleasedExtension.cs b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/ReleasedExtension.cs index 852bd5f2..6e4932ef 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/ReleasedExtension.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/ReleasedExtension.cs @@ -1,55 +1,148 @@ using Newtonsoft.Json; using TwitchLib.Api.Core.Enums; -namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions +namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions; + +/// +/// A specified extension. +/// +public class ReleasedExtension { - public class ReleasedExtension - { - [JsonProperty(PropertyName = "author_name")] - public string AuthorName { get; protected set; } - [JsonProperty(PropertyName = "bits_enabled")] - public bool BitsEnabled { get; protected set; } - [JsonProperty(PropertyName = "can_install")] - public bool CanInstall { get; protected set; } - [JsonProperty(PropertyName = "configuration_location")] - public string ConfigurationLocation { get; protected set; } - [JsonProperty(PropertyName = "description")] - public string Description { get; protected set; } - [JsonProperty(PropertyName = "eula_tos_url")] - public string EulaTosUrl { get; protected set; } - [JsonProperty(PropertyName = "has_chat_support")] - public bool HasChatSupport { get; protected set; } - [JsonProperty(PropertyName = "icon_url")] - public string IconUrl { get; protected set; } - [JsonProperty(PropertyName = "icon_urls")] - public IconUrls IconUrls { get; protected set; } - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "name")] - public string Name { get; protected set; } - [JsonProperty(PropertyName = "privacy_policy_url")] - public string PrivacyPolicyUrl { get; protected set; } - [JsonProperty(PropertyName = "request_identity_link")] - public bool RequestIdentityLink { get; protected set; } - [JsonProperty(PropertyName = "screenshot_urls")] - public string[] ScreenshotUrls { get; protected set; } - [JsonProperty(PropertyName = "state")] - public ExtensionState State { get; protected set; } - [JsonProperty(PropertyName = "subscriptions_support_level")] - public string SubscriptionsSupportLevel { get; protected set; } - [JsonProperty(PropertyName = "summary")] - public string Summary { get; protected set; } - [JsonProperty(PropertyName = "support_email")] - public string SupportEmail { get; protected set; } - [JsonProperty(PropertyName = "version")] - public string Version { get; protected set; } - [JsonProperty(PropertyName = "viewer_summary")] - public string ViewerSummary { get; protected set; } - [JsonProperty(PropertyName = "views")] - public Views Views { get; protected set; } - [JsonProperty(PropertyName = "allowlisted_config_urls")] - public string[] AllowlistedConfigUrls { get; protected set; } - [JsonProperty(PropertyName = "allowlisted_panel_urls")] - public string[] AllowlistedPanelUrls { get; protected set; } - } + /// + /// The name of the user or organization that owns the extension. + /// + [JsonProperty(PropertyName = "author_name")] + public string AuthorName { get; protected set; } + + /// + /// A Boolean value that determines whether the extension has features that use Bits. + /// + [JsonProperty(PropertyName = "bits_enabled")] + public bool BitsEnabled { get; protected set; } + + /// + /// A Boolean value that determines whether a user can install the extension on their channel. + /// + [JsonProperty(PropertyName = "can_install")] + public bool CanInstall { get; protected set; } + + /// + /// The location of where the extension’s configuration is stored. + /// + [JsonProperty(PropertyName = "configuration_location")] + public string ConfigurationLocation { get; protected set; } + + /// + /// A longer description of the extension. It appears on the details page. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; protected set; } + + /// + /// A URL to the extension’s Terms of Service. + /// + [JsonProperty(PropertyName = "eula_tos_url")] + public string EulaTosUrl { get; protected set; } + + /// + /// A Boolean value that determines whether the extension can communicate with the installed channel’s chat. + /// + [JsonProperty(PropertyName = "has_chat_support")] + public bool HasChatSupport { get; protected set; } + + /// + /// A URL to the default icon that’s displayed in the Extensions directory. + /// + [JsonProperty(PropertyName = "icon_url")] + public string IconUrl { get; protected set; } + + /// + /// A list that contains URLs to different sizes of the default icon. + /// + [JsonProperty(PropertyName = "icon_urls")] + public IconUrls IconUrls { get; protected set; } + + /// + /// The extension’s ID. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The extension’s name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; protected set; } + + /// + /// A URL to the extension’s privacy policy. + /// + [JsonProperty(PropertyName = "privacy_policy_url")] + public string PrivacyPolicyUrl { get; protected set; } + + /// + /// A Boolean value that determines whether the extension wants to explicitly ask viewers to link their Twitch identity. + /// + [JsonProperty(PropertyName = "request_identity_link")] + public bool RequestIdentityLink { get; protected set; } + + /// + /// A list of URLs to screenshots that are shown in the Extensions marketplace. + /// + [JsonProperty(PropertyName = "screenshot_urls")] + public string[] ScreenshotUrls { get; protected set; } + + /// + /// The extension’s state. + /// + [JsonProperty(PropertyName = "state")] + public ExtensionState State { get; protected set; } + + /// + /// Indicates whether the extension can view the user’s subscription level on the channel that the extension is installed on. + /// + [JsonProperty(PropertyName = "subscriptions_support_level")] + public string SubscriptionsSupportLevel { get; protected set; } + + /// + /// A short description of the extension that streamers see when hovering over the discovery splash screen in the Extensions manager. + /// + [JsonProperty(PropertyName = "summary")] + public string Summary { get; protected set; } + + /// + /// The email address that users use to get support for the extension. + /// + [JsonProperty(PropertyName = "support_email")] + public string SupportEmail { get; protected set; } + + /// + /// The extension’s version number. + /// + [JsonProperty(PropertyName = "version")] + public string Version { get; protected set; } + + /// + /// A brief description displayed on the channel to explain how the extension works. + /// + [JsonProperty(PropertyName = "viewer_summary")] + public string ViewerSummary { get; protected set; } + + /// + /// Describes all views-related information such as how the extension is displayed on mobile devices. + /// + [JsonProperty(PropertyName = "views")] + public Views Views { get; protected set; } + + /// + /// Allowlisted configuration URLs for displaying the extension. + /// + [JsonProperty(PropertyName = "allowlisted_config_urls")] + public string[] AllowlistedConfigUrls { get; protected set; } + + /// + /// Allowlisted panel URLs for displaying the extension. + /// + [JsonProperty(PropertyName = "allowlisted_panel_urls")] + public string[] AllowlistedPanelUrls { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/VideoOverlay.cs b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/VideoOverlay.cs index 4e8b9278..d8764ea6 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/VideoOverlay.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/VideoOverlay.cs @@ -1,12 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions +namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions; + +/// +/// Describes how the extension is rendered if the extension may be activated as a video-overlay extension. +/// +public class VideoOverlay { - public class VideoOverlay - { - [JsonProperty(PropertyName = "viewer_url")] - public string ViewerUrl { get; protected set; } - [JsonProperty(PropertyName = "can_link_external_content")] - public bool CanLinkExternalContent { get; protected set; } - } + /// + /// The HTML file that is shown to viewers on the channel page when the extension is activated on the Video - Overlay slot. + /// + [JsonProperty(PropertyName = "viewer_url")] + public string ViewerUrl { get; protected set; } + + /// + /// A Boolean value that determines whether the extension can link to non-Twitch domains. + /// + [JsonProperty(PropertyName = "can_link_external_content")] + public bool CanLinkExternalContent { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Views.cs b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Views.cs index b5743974..cd96e536 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Views.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/ReleasedExtensions/Views.cs @@ -1,16 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions +namespace TwitchLib.Api.Helix.Models.Extensions.ReleasedExtensions; + +/// +/// Describes view-related information such as how the extension is displayed on mobile devices. +/// +public class Views { - public class Views - { - [JsonProperty(PropertyName = "mobile")] - public Mobile Mobile { get; protected set; } - [JsonProperty(PropertyName = "panel")] - public Panel Panel { get; protected set; } - [JsonProperty(PropertyName = "video_overlay")] - public VideoOverlay VideoOverlay { get; protected set; } - [JsonProperty(PropertyName = "component")] - public Component Component { get; protected set; } - } + /// + /// Describes how the extension is displayed on mobile devices. + /// + [JsonProperty(PropertyName = "mobile")] + public Mobile Mobile { get; protected set; } + + /// + /// Describes how the extension is rendered if the extension may be activated as a panel extension. + /// + [JsonProperty(PropertyName = "panel")] + public Panel Panel { get; protected set; } + + /// + /// Describes how the extension is rendered if the extension may be activated as a video-overlay extension. + /// + [JsonProperty(PropertyName = "video_overlay")] + public VideoOverlay VideoOverlay { get; protected set; } + + /// + /// Describes how the extension is rendered if the extension may be activated as a video-component extension. + /// + [JsonProperty(PropertyName = "component")] + public Component Component { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/Transactions/GetExtensionTransactionsResponse.cs b/TwitchLib.Api.Helix.Models/Extensions/Transactions/GetExtensionTransactionsResponse.cs index dc0eb5d7..13f96636 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/Transactions/GetExtensionTransactionsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/Transactions/GetExtensionTransactionsResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Extensions.Transactions +namespace TwitchLib.Api.Helix.Models.Extensions.Transactions; + +/// +/// Get extension transactions response object. +/// +public class GetExtensionTransactionsResponse { - public class GetExtensionTransactionsResponse - { - [JsonProperty(PropertyName = "data")] - public Transaction[] Data { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of transactions. + /// + [JsonProperty(PropertyName = "data")] + public Transaction[] Data { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/Transactions/ProductData.cs b/TwitchLib.Api.Helix.Models/Extensions/Transactions/ProductData.cs index a186ca3c..cfece09e 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/Transactions/ProductData.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/Transactions/ProductData.cs @@ -1,30 +1,51 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.Transactions +namespace TwitchLib.Api.Helix.Models.Extensions.Transactions; + +/// +/// Contains details about the digital product. +/// +public class ProductData { - public class ProductData - { - [JsonProperty(PropertyName = "domain")] - public string Domain { get; protected set; } - [JsonProperty(PropertyName = "sku")] - public string SKU { get; protected set; } - [JsonProperty(PropertyName = "cost")] - public Cost Cost { get; protected set; } - [JsonProperty(PropertyName = "inDevelopment")] - public bool InDevelopment { get; protected set; } - [JsonProperty(PropertyName = "displayName")] - public string DisplayName { get; protected set; } - [JsonProperty(PropertyName = "expiration")] - public string Expiration { get; protected set; } - [JsonProperty(PropertyName = "broadcast")] - public bool Broadcast { get; protected set; } - } - - public class Cost - { - [JsonProperty(PropertyName = "amount")] - public int Amount { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - } + /// + /// Set to twitch.ext. + the extension's ID. + /// + [JsonProperty(PropertyName = "domain")] + public string Domain { get; protected set; } + + /// + /// An ID that identifies the digital product. + /// + [JsonProperty(PropertyName = "sku")] + public string SKU { get; protected set; } + + /// + /// Contains details about the digital product’s cost. + /// + [JsonProperty(PropertyName = "cost")] + public Cost Cost { get; protected set; } + + /// + /// A Boolean value that determines whether the product is in development. + /// + [JsonProperty(PropertyName = "inDevelopment")] + public bool InDevelopment { get; protected set; } + + /// + /// The name of the digital product. + /// + [JsonProperty(PropertyName = "displayName")] + public string DisplayName { get; protected set; } + + /// + /// This field is always empty since you may purchase only unexpired products. + /// + [JsonProperty(PropertyName = "expiration")] + public string Expiration { get; protected set; } + + /// + /// A Boolean value that determines whether the data was broadcast to all instances of the extension. + /// + [JsonProperty(PropertyName = "broadcast")] + public bool Broadcast { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Extensions/Transactions/Transaction.cs b/TwitchLib.Api.Helix.Models/Extensions/Transactions/Transaction.cs index fbdfda65..99cb8cb1 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/Transactions/Transaction.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/Transactions/Transaction.cs @@ -1,29 +1,70 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Extensions.Transactions +namespace TwitchLib.Api.Helix.Models.Extensions.Transactions; + +/// +/// The transactions. +/// +public class Transaction { - public class Transaction - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "timestamp")] - public DateTime Timestamp { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "product_type")] - public string ProductType { get; protected set; } - [JsonProperty(PropertyName = "product_data")] - public ProductData ProductData { get; protected set; } - } + /// + /// An ID that identifies the transaction. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of the transaction. + /// + [JsonProperty(PropertyName = "timestamp")] + public DateTime Timestamp { get; protected set; } + + /// + /// The ID of the broadcaster that owns the channel where the transaction occurred. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The ID of the user that purchased the digital product. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The type of transaction. + /// + [JsonProperty(PropertyName = "product_type")] + public string ProductType { get; protected set; } + + /// + /// Contains details about the digital product. + /// + [JsonProperty(PropertyName = "product_data")] + public ProductData ProductData { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Games/Game.cs b/TwitchLib.Api.Helix.Models/Games/Game.cs index f5ba94ed..ae0b7d64 100644 --- a/TwitchLib.Api.Helix.Models/Games/Game.cs +++ b/TwitchLib.Api.Helix.Models/Games/Game.cs @@ -1,16 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Games +namespace TwitchLib.Api.Helix.Models.Games; + +/// +/// The category or game. +/// +public class Game { - public class Game - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "name")] - public string Name { get; protected set; } - [JsonProperty(PropertyName = "box_art_url")] - public string BoxArtUrl { get; protected set; } - [JsonProperty(PropertyName = "igdb_id")] - public string IgdbId { get; protected set; } - } + /// + /// An ID that identifies the category or game. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The category’s or game’s name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; protected set; } + + /// + /// A URL to the category’s or game’s box art. You must replace the {width}x{height} placeholder with the size of image you want. + /// + [JsonProperty(PropertyName = "box_art_url")] + public string BoxArtUrl { get; protected set; } + + /// + /// The ID that IGDB uses to identify this game. + /// + [JsonProperty(PropertyName = "igdb_id")] + public string IgdbId { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Games/GetGamesResponse.cs b/TwitchLib.Api.Helix.Models/Games/GetGamesResponse.cs index 9cb90a71..b8550746 100644 --- a/TwitchLib.Api.Helix.Models/Games/GetGamesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Games/GetGamesResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Games +namespace TwitchLib.Api.Helix.Models.Games; + +/// +/// Get games response object. +/// +public class GetGamesResponse { - public class GetGamesResponse - { - [JsonProperty(PropertyName = "data")] - public Game[] Games { get; protected set; } - } + /// + /// The list of categories and games. The list is empty if the specified categories and games weren’t found. + /// + [JsonProperty(PropertyName = "data")] + public Game[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Games/GetTopGamesResponse.cs b/TwitchLib.Api.Helix.Models/Games/GetTopGamesResponse.cs index 5473b7a8..709b7870 100644 --- a/TwitchLib.Api.Helix.Models/Games/GetTopGamesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Games/GetTopGamesResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Games +namespace TwitchLib.Api.Helix.Models.Games; + +/// +/// Get top games response object. +/// +public class GetTopGamesResponse { - public class GetTopGamesResponse - { - [JsonProperty(PropertyName = "data")] - public Game[] Data { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of broadcasts. The broadcasts are sorted by the number of viewers, with the most popular first. + /// + [JsonProperty(PropertyName = "data")] + public Game[] Data { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Goals/CreatorGoal.cs b/TwitchLib.Api.Helix.Models/Goals/CreatorGoal.cs index bb5b132f..664705a4 100644 --- a/TwitchLib.Api.Helix.Models/Goals/CreatorGoal.cs +++ b/TwitchLib.Api.Helix.Models/Goals/CreatorGoal.cs @@ -1,27 +1,64 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Goals +namespace TwitchLib.Api.Helix.Models.Goals; + +/// +/// A goal. +/// +public class CreatorGoal { - public class CreatorGoal - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - [JsonProperty(PropertyName = "description")] - public string Description { get; protected set; } - [JsonProperty(PropertyName = "current_amount")] - public int CurrentAmount { get; protected set; } - [JsonProperty(PropertyName = "target_amount")] - public int TargetAmount { get; protected set; } - [JsonProperty(PropertyName = "created_at")] - public DateTime CreatedAt { get; protected set; } - } + /// + /// An ID that identifies this goal. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// An ID that identifies the broadcaster that created the goal. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The broadcaster’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + + /// + /// The type of goal. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } + + /// + /// A description of the goal. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; protected set; } + + /// + /// The goal’s current value. + /// + [JsonProperty(PropertyName = "current_amount")] + public int CurrentAmount { get; protected set; } + + /// + /// The goal’s target value. + /// + [JsonProperty(PropertyName = "target_amount")] + public int TargetAmount { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) that the broadcaster created the goal. + /// + [JsonProperty(PropertyName = "created_at")] + public DateTime CreatedAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Goals/GetCreatorGoalsResponse.cs b/TwitchLib.Api.Helix.Models/Goals/GetCreatorGoalsResponse.cs index 6273a9f2..7c2c6357 100644 --- a/TwitchLib.Api.Helix.Models/Goals/GetCreatorGoalsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Goals/GetCreatorGoalsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Goals +namespace TwitchLib.Api.Helix.Models.Goals; + +/// +/// Get creator goals response object. +/// +public class GetCreatorGoalsResponse { - public class GetCreatorGoalsResponse - { - [JsonProperty(PropertyName = "data")] - public CreatorGoal[] Data { get; protected set; } - } + /// + /// The list of goals. + /// + [JsonProperty(PropertyName = "data")] + public CreatorGoal[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/GuestStar/CreateGuestStarSession/CreateGuestStarSessionResponse.cs b/TwitchLib.Api.Helix.Models/GuestStar/CreateGuestStarSession/CreateGuestStarSessionResponse.cs index fe47d9c4..79d9cd5e 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/CreateGuestStarSession/CreateGuestStarSessionResponse.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/CreateGuestStarSession/CreateGuestStarSessionResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar.CreateGuestStarSession; +/// +/// Create guest star session repsonse object. +/// public class CreateGuestStarSessionResponse { /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/EndGuestStarSession/EndGuestStarSessionResponse.cs b/TwitchLib.Api.Helix.Models/GuestStar/EndGuestStarSession/EndGuestStarSessionResponse.cs index 735d5e17..f0e3f73b 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/EndGuestStarSession/EndGuestStarSessionResponse.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/EndGuestStarSession/EndGuestStarSessionResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar.CreateGuestStarSession; +/// +/// End guest start session response object +/// public class EndGuestStarSessionResponse { /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GetChannelGuestStarSettings/GetChannelGuestStarSettingsResponse.cs b/TwitchLib.Api.Helix.Models/GuestStar/GetChannelGuestStarSettings/GetChannelGuestStarSettingsResponse.cs index 4a189d35..f70fd4e9 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GetChannelGuestStarSettings/GetChannelGuestStarSettingsResponse.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GetChannelGuestStarSettings/GetChannelGuestStarSettingsResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar.GetChannelGuestStarSettings; +/// +/// Get channe geust star settings response object. +/// public class GetChannelGuestStarSettingsResponse { /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GetChannelGuestStarSettings/GuestStarSettings.cs b/TwitchLib.Api.Helix.Models/GuestStar/GetChannelGuestStarSettings/GuestStarSettings.cs index e9e76b6e..e6c881e6 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GetChannelGuestStarSettings/GuestStarSettings.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GetChannelGuestStarSettings/GuestStarSettings.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar.GetChannelGuestStarSettings; +/// +/// Guest Star Settings inheriting Guest Star Settings Base +/// public class GuestStarSettings : GuestStarSettingsBase { /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarInvites/GetGuestStarInvitesResponse.cs b/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarInvites/GetGuestStarInvitesResponse.cs index f608d088..096a921f 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarInvites/GetGuestStarInvitesResponse.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarInvites/GetGuestStarInvitesResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar.GetGuestStarInvites; +/// +/// Get guest star invites response object. +/// public class GetGuestStarInvitesResponse { /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarInvites/GuestStarInvite.cs b/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarInvites/GuestStarInvite.cs index ced7aa91..b1c8a32b 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarInvites/GuestStarInvite.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarInvites/GuestStarInvite.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar.GetGuestStarInvites; +/// +/// An invite object describing the invited user as well as their ready status. +/// public class GuestStarInvite { /// @@ -9,13 +12,13 @@ public class GuestStarInvite /// [JsonProperty(PropertyName = "user_id")] public string UserId { get; protected set; } - + /// /// Timestamp when this user was invited to the session. /// [JsonProperty(PropertyName = "invited_at")] public string InvitedAt { get; protected set; } - + /// /// Status representing the invited user’s join state. Can be one of the following: /// INVITED: The user has been invited to the session but has not acknowledged it. @@ -24,25 +27,25 @@ public class GuestStarInvite /// [JsonProperty(PropertyName = "status")] public string Status { get; protected set; } - + /// /// Flag signaling that the invited user has chosen to disable their local video device. The user has hidden themselves, but they may choose to reveal their video feed upon joining the session. /// [JsonProperty(PropertyName = "is_video_enabled")] public bool IsVideoEnabled { get; protected set; } - + /// /// Flag signaling that the invited user has chosen to disable their local audio device. The user has muted themselves, but they may choose to unmute their audio feed upon joining the session. /// [JsonProperty(PropertyName = "is_audio_enabled")] public bool IsAudioEnabled { get; protected set; } - + /// /// Flag signaling that the invited user has chosen to disable their local video device. The user has hidden themselves, but they may choose to reveal their video feed upon joining the session. /// [JsonProperty(PropertyName = "is_video_available")] public bool IsVideoAvailable { get; protected set; } - + /// /// Flag signaling that the invited user has chosen to disable their local audio device. The user has muted themselves, but they may choose to unmute their audio feed upon joining the session. /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarSession/GetGuestStarSessionResponse.cs b/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarSession/GetGuestStarSessionResponse.cs index 4cfb067b..6a82c430 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarSession/GetGuestStarSessionResponse.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GetGuestStarSession/GetGuestStarSessionResponse.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar.GetGuestStarSession; +/// +/// Get guest star session response object. +/// public class GetGuestStarSessionResponse { /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GuestStarGuest.cs b/TwitchLib.Api.Helix.Models/GuestStar/GuestStarGuest.cs index f6dfded0..2372f85c 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GuestStarGuest.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GuestStarGuest.cs @@ -3,6 +3,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar; +/// +/// Guest currently interacting with the Guest Star session. +/// public class GuestStarGuest { /// @@ -14,49 +17,49 @@ public class GuestStarGuest /// [JsonProperty(PropertyName = "slot_id")] public string SlotId { get; protected set; } - + /// /// Flag determining whether or not the guest is visible in the browser source in the host’s streaming software. /// [JsonProperty(PropertyName = "is_live")] public bool IsLive { get; protected set; } - + /// /// User ID of the guest assigned to this slot. /// [JsonProperty(PropertyName = "user_id")] public string UserId { get; protected set; } - + /// /// Display name of the guest assigned to this slot. /// [JsonProperty(PropertyName = "user_display_name")] public string UserDisplayName { get; protected set; } - + /// /// Login of the guest assigned to this slot. /// [JsonProperty(PropertyName = "user_login")] public string UserLogin { get; protected set; } - + /// /// Value from 0 to 100 representing the host’s volume setting for this guest. /// [JsonProperty(PropertyName = "volume")] public int Volume { get; protected set; } - + /// /// Timestamp when this guest was assigned a slot in the session. /// [JsonProperty(PropertyName = "assigned_at")] public string AssignedAt { get; protected set; } - + /// /// Information about the guest’s audio settings /// [JsonProperty(PropertyName = "audio_settings")] public GuestStarMediaSettings AudioSettings { get; protected set; } - + /// /// Information about the guest’s video settings /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GuestStarMediaSettings.cs b/TwitchLib.Api.Helix.Models/GuestStar/GuestStarMediaSettings.cs index 47a60615..f3710f09 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GuestStarMediaSettings.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GuestStarMediaSettings.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar; +/// +/// Information about the guest’s audio settings +/// public class GuestStarMediaSettings { /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GuestStarSession.cs b/TwitchLib.Api.Helix.Models/GuestStar/GuestStarSession.cs index c0d42090..c904f768 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GuestStarSession.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GuestStarSession.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar; +/// +/// The session details +/// public class GuestStarSession { /// @@ -9,7 +12,7 @@ public class GuestStarSession /// [JsonProperty(PropertyName = "id")] public string Id { get; protected set; } - + /// /// List of guests currently interacting with the Guest Star session. /// diff --git a/TwitchLib.Api.Helix.Models/GuestStar/GuestStarSettingsBase.cs b/TwitchLib.Api.Helix.Models/GuestStar/GuestStarSettingsBase.cs index 8fc8a897..4599b28c 100644 --- a/TwitchLib.Api.Helix.Models/GuestStar/GuestStarSettingsBase.cs +++ b/TwitchLib.Api.Helix.Models/GuestStar/GuestStarSettingsBase.cs @@ -2,6 +2,9 @@ namespace TwitchLib.Api.Helix.Models.GuestStar; +/// +/// Guest Star Settings Base +/// public abstract class GuestStarSettingsBase { /// diff --git a/TwitchLib.Api.Helix.Models/Helpers/ExtensionAnalytics.cs b/TwitchLib.Api.Helix.Models/Helpers/ExtensionAnalytics.cs index 5cc19484..c4d34c6b 100644 --- a/TwitchLib.Api.Helix.Models/Helpers/ExtensionAnalytics.cs +++ b/TwitchLib.Api.Helix.Models/Helpers/ExtensionAnalytics.cs @@ -1,41 +1,106 @@ -namespace TwitchLib.Api.Helix.Models.Helpers +namespace TwitchLib.Api.Helix.Models.Helpers; + +/// +/// Extension Analytics Helper object. +/// +public class ExtensionAnalytics { - public class ExtensionAnalytics + /// + /// Date. + /// + public string Date { get; protected set; } + + /// + /// Extension Name. + /// + public string ExtensionName { get; protected set; } + + /// + /// Extension Client Id. + /// + public string ExtensionClientId { get; protected set; } + + /// + /// Installs count. + /// + public int Installs { get; protected set; } + + /// + /// Uninstalls count. + /// + public int Uninstalls { get; protected set; } + + /// + /// Activations count. + /// + public int Activations { get; protected set; } + + /// + /// Unique Active Channels count. + /// + public int UniqueActiveChannels { get; protected set; } + + /// + /// Renders count. + /// + public int Renders { get; protected set; } + + /// + /// Unique Renders count. + /// + public int UniqueRenders { get; protected set; } + + /// + /// Views count. + /// + public int Views { get; protected set; } + + /// + /// Unique Viewers count. + /// + public int UniqueViewers { get; protected set; } + + /// + /// Unique Interactors count. + /// + public int UniqueInteractors { get; protected set; } + + /// + /// Clicks count. + /// + public int Clicks { get; protected set; } + + /// + /// Clicks per interactor count. + /// + public double ClicksPerInteractor { get; protected set; } + + /// + /// Interaction rate count. + /// + public double InteractionRate { get; protected set; } + + /// + /// Extension Analytics processing helper + /// + /// + public ExtensionAnalytics(string row) { - public string Date { get; protected set; } - public string ExtensionName { get; protected set; } - public string ExtensionClientId { get; protected set; } - public int Installs { get; protected set; } - public int Uninstalls { get; protected set; } - public int Activations { get; protected set; } - public int UniqueActiveChannels { get; protected set; } - public int Renders { get; protected set; } - public int UniqueRenders { get; protected set; } - public int Views { get; protected set; } - public int UniqueViewers { get; protected set; } - public int UniqueInteractors { get; protected set; } - public int Clicks { get; protected set; } - public double ClicksPerInteractor { get; protected set; } - public double InteractionRate { get; protected set; } - - public ExtensionAnalytics(string row) - { - var p = row.Split(','); - Date = p[0]; - ExtensionName = p[1]; - ExtensionClientId = p[2]; - Installs = int.Parse(p[3]); - Uninstalls = int.Parse(p[4]); - Activations = int.Parse(p[5]); - UniqueActiveChannels = int.Parse(p[6]); - Renders = int.Parse(p[7]); - UniqueRenders = int.Parse(p[8]); - Views = int.Parse(p[9]); - UniqueViewers = int.Parse(p[10]); - UniqueInteractors = int.Parse(p[11]); - Clicks = int.Parse(p[12]); - ClicksPerInteractor = double.Parse(p[13]); - InteractionRate = double.Parse(p[14]); - } + var p = row.Split(','); + Date = p[0]; + ExtensionName = p[1]; + ExtensionClientId = p[2]; + Installs = int.Parse(p[3]); + Uninstalls = int.Parse(p[4]); + Activations = int.Parse(p[5]); + UniqueActiveChannels = int.Parse(p[6]); + Renders = int.Parse(p[7]); + UniqueRenders = int.Parse(p[8]); + Views = int.Parse(p[9]); + UniqueViewers = int.Parse(p[10]); + UniqueInteractors = int.Parse(p[11]); + Clicks = int.Parse(p[12]); + ClicksPerInteractor = double.Parse(p[13]); + InteractionRate = double.Parse(p[14]); } } diff --git a/TwitchLib.Api.Helix.Models/HypeTrain/GetHypeTrainResponse.cs b/TwitchLib.Api.Helix.Models/HypeTrain/GetHypeTrainResponse.cs index 48fe7504..49956b57 100644 --- a/TwitchLib.Api.Helix.Models/HypeTrain/GetHypeTrainResponse.cs +++ b/TwitchLib.Api.Helix.Models/HypeTrain/GetHypeTrainResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.HypeTrain +namespace TwitchLib.Api.Helix.Models.HypeTrain; + +/// +/// Get hype train response object. +/// +public class GetHypeTrainResponse { - public class GetHypeTrainResponse - { - [JsonProperty(PropertyName = "data")] - public HypeTrain[] HypeTrain { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of Hype Train events. The list is empty if the broadcaster hasn’t run a Hype Train within the last 5 days. + /// + [JsonProperty(PropertyName = "data")] + public HypeTrain[] HypeTrain { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrain.cs b/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrain.cs index 5627f54a..51399422 100644 --- a/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrain.cs +++ b/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrain.cs @@ -1,18 +1,39 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.HypeTrain +namespace TwitchLib.Api.Helix.Models.HypeTrain; + +/// +/// A hype train object. +/// +public class HypeTrain { - public class HypeTrain - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "event_type")] - public string EventType { get; protected set; } - [JsonProperty(PropertyName = "event_timestamp")] - public string EventTimeStamp { get; protected set; } - [JsonProperty(PropertyName = "version")] - public string Version { get; protected set; } - [JsonProperty(PropertyName = "event_data")] - public HypeTrainEventData EventData { get; protected set; } - } + /// + /// An ID that identifies this event. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The type of event. The string is in the form, hypetrain.{event_name}. + /// + [JsonProperty(PropertyName = "event_type")] + public string EventType { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) that the event occurred. + /// + [JsonProperty(PropertyName = "event_timestamp")] + public string EventTimeStamp { get; protected set; } + + /// + /// The version number of the definition of the event’s data. + /// + [JsonProperty(PropertyName = "version")] + public string Version { get; protected set; } + + /// + /// The event’s data. + /// + [JsonProperty(PropertyName = "event_data")] + public HypeTrainEventData EventData { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrainContribution.cs b/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrainContribution.cs index 0afd4446..16dd7abd 100644 --- a/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrainContribution.cs +++ b/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrainContribution.cs @@ -1,14 +1,28 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.HypeTrain +namespace TwitchLib.Api.Helix.Models.HypeTrain; + +/// +/// The contribution towards the Hype Train’s goal. +/// +public class HypeTrainContribution { - public class HypeTrainContribution - { - [JsonProperty(PropertyName = "total")] - public int Total { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - [JsonProperty(PropertyName = "user")] - public string UserId { get; protected set; } - } + /// + /// The total amount contributed. If type is BITS, total represents the amount of Bits used. + /// If type is SUBS, total is 500, 1000, or 2500 to represent tier 1, 2, or 3 subscriptions, respectively. + /// + [JsonProperty(PropertyName = "total")] + public int Total { get; protected set; } + + /// + /// The contribution method used. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } + + /// + /// The ID of the user that made the contribution. + /// + [JsonProperty(PropertyName = "user")] + public string UserId { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrainEventData.cs b/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrainEventData.cs index 38de3987..04cdaf49 100644 --- a/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrainEventData.cs +++ b/TwitchLib.Api.Helix.Models/HypeTrain/HypeTrainEventData.cs @@ -1,28 +1,70 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.HypeTrain +namespace TwitchLib.Api.Helix.Models.HypeTrain; + +/// +/// The event’s data. +/// +public class HypeTrainEventData { - public class HypeTrainEventData - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "started_at")] - public string StartedAt { get; protected set; } - [JsonProperty(PropertyName = "expires_at")] - public string ExpiresAt { get; protected set; } - [JsonProperty(PropertyName = "cooldown_end_time")] - public string CooldownEndTime { get; protected set; } - [JsonProperty(PropertyName = "level")] - public int Level { get; protected set; } - [JsonProperty(PropertyName = "goal")] - public int Goal { get; protected set; } - [JsonProperty(PropertyName = "total")] - public int Total { get; protected set; } - [JsonProperty(PropertyName = "top_contribution")] - public HypeTrainContribution TopContribution { get; protected set; } - [JsonProperty(PropertyName = "last_contribution")] - public HypeTrainContribution LastContribution { get; protected set; } - } + /// + /// An ID that identifies this Hype Train. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The ID of the broadcaster that’s running the Hype Train. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) that this Hype Train started. + /// + [JsonProperty(PropertyName = "started_at")] + public string StartedAt { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) that the Hype Train ends. + /// + [JsonProperty(PropertyName = "expires_at")] + public string ExpiresAt { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) that another Hype Train can start. + /// + [JsonProperty(PropertyName = "cooldown_end_time")] + public string CooldownEndTime { get; protected set; } + + /// + /// The highest level that the Hype Train reached. + /// + [JsonProperty(PropertyName = "level")] + public int Level { get; protected set; } + + /// + /// The value needed to reach the next level. + /// + [JsonProperty(PropertyName = "goal")] + public int Goal { get; protected set; } + + /// + /// The current total amount raised. + /// + [JsonProperty(PropertyName = "total")] + public int Total { get; protected set; } + + /// + /// The top contributors for each contribution type. + /// For example, the top contributor using BITS (by aggregate) and the top contributor using SUBS (by count). + /// + [JsonProperty(PropertyName = "top_contribution")] + public HypeTrainContribution[] TopContribution { get; protected set; } + + /// + /// The most recent contribution towards the Hype Train’s goal. + /// + [JsonProperty(PropertyName = "last_contribution")] + public HypeTrainContribution LastContribution { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/AutomodSettings.cs b/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/AutomodSettings.cs index 9b434cb8..2cb2aa10 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/AutomodSettings.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/AutomodSettings.cs @@ -1,26 +1,63 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.AutomodSettings +namespace TwitchLib.Api.Helix.Models.Moderation.AutomodSettings; + +/// +/// Automod Settings Request object. +/// +public class AutomodSettings { - public class AutomodSettings - { - [JsonProperty(PropertyName = "overall_level")] - public int? OverallLevel; - [JsonProperty(PropertyName = "disability")] - public int? Disability; - [JsonProperty(PropertyName = "aggression")] - public int? Aggression; - [JsonProperty(PropertyName = "sexuality_sex_or_gender")] - public int? SexualitySexOrGender; - [JsonProperty(PropertyName = "misogyny")] - public int? Misogyny; - [JsonProperty(PropertyName = "bullying")] - public int? Bullying; - [JsonProperty(PropertyName = "swearing")] - public int? Swearing; - [JsonProperty(PropertyName = "race_ethnicity_or_religion")] - public int? RaceEthnicityOrReligion; - [JsonProperty(PropertyName = "sex_based_terms")] - public int? SexBasedTerms; - } + /// + /// The default AutoMod level for the broadcaster. + /// + [JsonProperty(PropertyName = "overall_level")] + public int? OverallLevel; + + /// + /// The Automod level for discrimination against disability. + /// + [JsonProperty(PropertyName = "disability")] + public int? Disability; + + /// + /// The Automod level for hostility involving aggression. + /// + [JsonProperty(PropertyName = "aggression")] + public int? Aggression; + + /// + /// The AutoMod level for discrimination based on sexuality, sex, or gender. + /// + [JsonProperty(PropertyName = "sexuality_sex_or_gender")] + public int? SexualitySexOrGender; + + /// + /// The Automod level for discrimination against women. + /// + [JsonProperty(PropertyName = "misogyny")] + public int? Misogyny; + + /// + /// The Automod level for hostility involving name calling or insults. + /// + [JsonProperty(PropertyName = "bullying")] + public int? Bullying; + + /// + /// The Automod level for profanity. + /// + [JsonProperty(PropertyName = "swearing")] + public int? Swearing; + + /// + /// The Automod level for racial discrimination. + /// + [JsonProperty(PropertyName = "race_ethnicity_or_religion")] + public int? RaceEthnicityOrReligion; + + /// + /// The Automod level for sexual content. + /// + [JsonProperty(PropertyName = "sex_based_terms")] + public int? SexBasedTerms; } diff --git a/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/AutomodSettingsResponseModel.cs b/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/AutomodSettingsResponseModel.cs index 5abdbbb6..aaed0d54 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/AutomodSettingsResponseModel.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/AutomodSettingsResponseModel.cs @@ -1,30 +1,76 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.AutomodSettings +namespace TwitchLib.Api.Helix.Models.Moderation.AutomodSettings; + +/// +/// The list of AutoMod settings. +/// +public class AutomodSettingsResponseModel { - public class AutomodSettingsResponseModel - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId; - [JsonProperty(PropertyName = "moderator_id")] - public string ModeratorId; - [JsonProperty(PropertyName = "overall_level")] - public int? OverallLevel; - [JsonProperty(PropertyName = "disability")] - public int? Disability; - [JsonProperty(PropertyName = "aggression")] - public int? Aggression; - [JsonProperty(PropertyName = "sexuality_sex_or_gender")] - public int? SexualitySexOrGender; - [JsonProperty(PropertyName = "misogyny")] - public int? Misogyny; - [JsonProperty(PropertyName = "bullying")] - public int? Bullying; - [JsonProperty(PropertyName = "swearing")] - public int? Swearing; - [JsonProperty(PropertyName = "race_ethnicity_or_religion")] - public int? RaceEthnicityOrReligion; - [JsonProperty(PropertyName = "sex_based_terms")] - public int? SexBasedTerms; - } + /// + /// The broadcaster’s ID. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId; + + /// + /// The moderator’s ID. + /// + [JsonProperty(PropertyName = "moderator_id")] + public string ModeratorId; + + /// + /// The default AutoMod level for the broadcaster. + /// This field is null if the broadcaster has set one or more of the individual settings. + /// + [JsonProperty(PropertyName = "overall_level")] + public int? OverallLevel; + + /// + /// The Automod level for discrimination against disability. + /// + [JsonProperty(PropertyName = "disability")] + public int? Disability; + + /// + /// The Automod level for hostility involving aggression. + /// + [JsonProperty(PropertyName = "aggression")] + public int? Aggression; + + /// + /// The AutoMod level for discrimination based on sexuality, sex, or gender. + /// + [JsonProperty(PropertyName = "sexuality_sex_or_gender")] + public int? SexualitySexOrGender; + + /// + /// The Automod level for discrimination against women. + /// + [JsonProperty(PropertyName = "misogyny")] + public int? Misogyny; + + /// + /// The Automod level for hostility involving name calling or insults. + /// + [JsonProperty(PropertyName = "bullying")] + public int? Bullying; + + /// + /// The Automod level for profanity. + /// + [JsonProperty(PropertyName = "swearing")] + public int? Swearing; + + /// + /// The Automod level for racial discrimination. + /// + [JsonProperty(PropertyName = "race_ethnicity_or_religion")] + public int? RaceEthnicityOrReligion; + + /// + /// The Automod level for sexual content. + /// + [JsonProperty(PropertyName = "sex_based_terms")] + public int? SexBasedTerms; } diff --git a/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/GetAutomodSettingsResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/GetAutomodSettingsResponse.cs index b57550ba..25481e36 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/GetAutomodSettingsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/GetAutomodSettingsResponse.cs @@ -1,10 +1,16 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.AutomodSettings +namespace TwitchLib.Api.Helix.Models.Moderation.AutomodSettings; + +/// +/// Get automod settings response object. +/// +public class GetAutomodSettingsResponse { - public class GetAutomodSettingsResponse - { - [JsonProperty(PropertyName = "data")] - public AutomodSettingsResponseModel[] Data { get; protected set; } - } + /// + /// The list of AutoMod settings. + /// The list contains a single object that contains all the AutoMod settings. + /// + [JsonProperty(PropertyName = "data")] + public AutomodSettingsResponseModel[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/UpdateAutomodSettingsResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/UpdateAutomodSettingsResponse.cs index f5c00a53..c8dbee04 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/UpdateAutomodSettingsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/AutomodSettings/UpdateAutomodSettingsResponse.cs @@ -1,10 +1,16 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.AutomodSettings +namespace TwitchLib.Api.Helix.Models.Moderation.AutomodSettings; + +/// +/// Update automod settings reponse object. +/// +public class UpdateAutomodSettingsResponse { - public class UpdateAutomodSettingsResponse - { - [JsonProperty(PropertyName = "data")] - public AutomodSettings[] Data { get; protected set; } - } + /// + /// The list of AutoMod settings. + /// The list contains a single object that contains all the AutoMod settings. + /// + [JsonProperty(PropertyName = "data")] + public AutomodSettings[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/BanUser/BanUserRequest.cs b/TwitchLib.Api.Helix.Models/Moderation/BanUser/BanUserRequest.cs index cf8b858d..acf09978 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/BanUser/BanUserRequest.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/BanUser/BanUserRequest.cs @@ -1,14 +1,30 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.BanUser +namespace TwitchLib.Api.Helix.Models.Moderation.BanUser; + +/// +/// Ban user request object. +/// +public class BanUserRequest { - public class BanUserRequest - { - [JsonProperty("user_id")] - public string UserId { get; set; } - [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] - public string Reason { get; set; } = string.Empty; - [JsonProperty("duration", NullValueHandling = NullValueHandling.Ignore)] - public int? Duration { get; set; } - } + /// + /// The ID of the user to ban or put in a timeout. + /// + [JsonProperty("user_id")] + public string UserId { get; set; } + + /// + /// The reason the you’re banning the user or putting them in a timeout. + /// The text is user defined and is limited to a maximum of 500 characters. + /// + [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] + public string Reason { get; set; } = string.Empty; + + /// + /// To ban a user indefinitely, don’t include this field. + /// To put a user in a timeout, include this field and specify the timeout period, in seconds. + /// The minimum timeout is 1 second and the maximum is 1,209,600 seconds (2 weeks). + /// + [JsonProperty("duration", NullValueHandling = NullValueHandling.Ignore)] + public int? Duration { get; set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Moderation/BanUser/BanUserResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/BanUser/BanUserResponse.cs index f319c077..0a9376da 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/BanUser/BanUserResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/BanUser/BanUserResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.BanUser +namespace TwitchLib.Api.Helix.Models.Moderation.BanUser; + +/// +/// Ban user response object. +/// +public class BanUserResponse { - public class BanUserResponse - { - [JsonProperty(PropertyName = "data")] - public BannedUser[] Data { get; protected set; } - } + /// + /// Identifies the user and type of ban. + /// + [JsonProperty(PropertyName = "data")] + public BannedUser Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/BanUser/BannedUser.cs b/TwitchLib.Api.Helix.Models/Moderation/BanUser/BannedUser.cs index dfa130fb..2ba765c9 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/BanUser/BannedUser.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/BanUser/BannedUser.cs @@ -1,38 +1,40 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.BanUser +namespace TwitchLib.Api.Helix.Models.Moderation.BanUser; + +/// +/// Identifies the user and type of ban. +/// +public class BannedUser { - public class BannedUser - { - /// - /// The broadcaster whose chat room the user was banned from chatting in. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } + /// + /// The broadcaster whose chat room the user was banned from chatting in. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } - /// - /// The UTC date and time (in RFC3999 format) when the ban was created. - /// - [JsonProperty(PropertyName = "created_at")] - public string CreatedAt { get; protected set; } + /// + /// The UTC date and time (in RFC3999 format) when the ban was created. + /// + [JsonProperty(PropertyName = "created_at")] + public string CreatedAt { get; protected set; } - /// - /// The moderator that banned or put the user in the timeout. - /// - [JsonProperty(PropertyName = "moderator_id")] - public string ModeratorId { get; protected set; } + /// + /// The moderator that banned or put the user in the timeout. + /// + [JsonProperty(PropertyName = "moderator_id")] + public string ModeratorId { get; protected set; } - /// - /// The user that was banned or was put in a timeout. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } + /// + /// The user that was banned or was put in a timeout. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } - /// - /// The UTC date and time (in RFC3339 format) that the timeout will end. Is null if the user was banned instead of put in a timeout. - /// - [JsonProperty(PropertyName = "end_time")] - public DateTime? EndTime { get; protected set; } - } + /// + /// The UTC date and time (in RFC3339 format) that the timeout will end. Is null if the user was banned instead of put in a timeout. + /// + [JsonProperty(PropertyName = "end_time")] + public DateTime? EndTime { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/AddBlockedTermResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/AddBlockedTermResponse.cs index b6fc8710..ecfeb455 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/AddBlockedTermResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/AddBlockedTermResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.BlockedTerms +namespace TwitchLib.Api.Helix.Models.Moderation.BlockedTerms; + +/// +/// Add blocked term response object. +/// +public class AddBlockedTermResponse { - public class AddBlockedTermResponse - { - [JsonProperty(PropertyName = "data")] - public BlockedTerm[] Data { get; protected set; } - } + /// + /// A list that contains the single blocked term that the broadcaster added. + /// + [JsonProperty(PropertyName = "data")] + public BlockedTerm[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/BlockedTerm.cs b/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/BlockedTerm.cs index 548186eb..53f7df0b 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/BlockedTerm.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/BlockedTerm.cs @@ -1,23 +1,52 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.BlockedTerms +namespace TwitchLib.Api.Helix.Models.Moderation.BlockedTerms; + +/// +/// A single blocked term that the broadcaster added. +/// +public class BlockedTerm { - public class BlockedTerm - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "moderator_id")] - public string ModeratorId { get; protected set; } - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "text")] - public string Text { get; protected set; } - [JsonProperty(PropertyName = "created_at")] - public DateTime CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "updated_at")] - public DateTime UpdatedAt { get; protected set; } - [JsonProperty(PropertyName = "expires_at")] - public DateTime? ExpiresAt { get; protected set; } - } + /// + /// The broadcaster that owns the list of blocked terms. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The moderator that blocked the word or phrase from being used in the broadcaster’s chat room. + /// + [JsonProperty(PropertyName = "moderator_id")] + public string ModeratorId { get; protected set; } + + /// + /// An ID that identifies this blocked term. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The blocked word or phrase. + /// + [JsonProperty(PropertyName = "text")] + public string Text { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) that the term was blocked. + /// + [JsonProperty(PropertyName = "created_at")] + public DateTime CreatedAt { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) that the term was updated. + /// + [JsonProperty(PropertyName = "updated_at")] + public DateTime UpdatedAt { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) that the blocked term is set to expire. + /// + [JsonProperty(PropertyName = "expires_at")] + public DateTime? ExpiresAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/GetBlockedTermsResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/GetBlockedTermsResponse.cs index 8231b827..fa481370 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/GetBlockedTermsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/BlockedTerms/GetBlockedTermsResponse.cs @@ -1,13 +1,23 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Moderation.BlockedTerms +namespace TwitchLib.Api.Helix.Models.Moderation.BlockedTerms; + +/// +/// Get blocked terms response object. +/// +public class GetBlockedTermsResponse { - public class GetBlockedTermsResponse - { - [JsonProperty(PropertyName = "data")] - public BlockedTerm[] Data { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of blocked terms. + /// The list is in descending order of when they were created. + /// + [JsonProperty(PropertyName = "data")] + public BlockedTerm[] Data { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/AutoModResult.cs b/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/AutoModResult.cs index c0da57a6..b31a7d0e 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/AutoModResult.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/AutoModResult.cs @@ -1,19 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.CheckAutoModStatus +namespace TwitchLib.Api.Helix.Models.Moderation.CheckAutoModStatus; + +/// +/// The message and whether Twitch would approve it for chat. +/// +public class AutoModResult { - public class AutoModResult - { - /// - /// The msg_id passed in the body of the POST message. Maps each message to its status. - /// - [JsonProperty(PropertyName = "msg_id")] - public string MsgId { get; protected set; } + /// + /// The msg_id passed in the body of the POST message. Maps each message to its status. + /// + [JsonProperty(PropertyName = "msg_id")] + public string MsgId { get; protected set; } - /// - /// Indicates if this message meets AutoMod requirements. - /// - [JsonProperty(PropertyName = "is_permitted")] - public bool IsPermitted { get; protected set; } - } + /// + /// Indicates if this message meets AutoMod requirements. + /// + [JsonProperty(PropertyName = "is_permitted")] + public bool IsPermitted { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/CheckAutoModStatusResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/CheckAutoModStatusResponse.cs index 5baecbfb..4312db27 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/CheckAutoModStatusResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/CheckAutoModStatusResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.CheckAutoModStatus +namespace TwitchLib.Api.Helix.Models.Moderation.CheckAutoModStatus; + +/// +/// Check automod status response object. +/// +public class CheckAutoModStatusResponse { - public class CheckAutoModStatusResponse - { - [JsonProperty(PropertyName = "data")] - public AutoModResult[] Data { get; protected set; } - } + /// + /// The list of messages and whether Twitch would approve them for chat. + /// + [JsonProperty(PropertyName = "data")] + public AutoModResult[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/Request/Message.cs b/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/Request/Message.cs index d93a9be8..00f65dd7 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/Request/Message.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/Request/Message.cs @@ -1,19 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.CheckAutoModStatus +namespace TwitchLib.Api.Helix.Models.Moderation.CheckAutoModStatus; + +/// +/// The message to check. +/// +public class Message { - public class Message - { - /// - /// Developer-generated identifier for mapping messages to results. - /// - [JsonProperty(PropertyName = "msg_id")] - public string MsgId { get; set; } + /// + /// Developer-generated identifier for mapping messages to results. + /// + [JsonProperty(PropertyName = "msg_id")] + public string MsgId { get; set; } - /// - /// Message text. - /// - [JsonProperty(PropertyName = "msg_text")] - public string MsgText { get; set; } - } + /// + /// Message text. + /// + [JsonProperty(PropertyName = "msg_text")] + public string MsgText { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/Request/MessageRequest.cs b/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/Request/MessageRequest.cs index 116981f1..ba6ee726 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/Request/MessageRequest.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/CheckAutoModStatus/Request/MessageRequest.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.CheckAutoModStatus.Request +namespace TwitchLib.Api.Helix.Models.Moderation.CheckAutoModStatus.Request; + +/// +/// Message request object. +/// +public class MessageRequest { - public class MessageRequest - { - [JsonProperty(PropertyName = "data")] - public Message[] Messages { get; set; } - } + /// + /// The list of messages to check. + /// + [JsonProperty(PropertyName = "data")] + public Message[] Messages { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/BannedUserEvent.cs b/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/BannedUserEvent.cs index 64c82505..76fc5076 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/BannedUserEvent.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/BannedUserEvent.cs @@ -1,62 +1,64 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.GetBannedUsers +namespace TwitchLib.Api.Helix.Models.Moderation.GetBannedUsers; + +/// +/// A user that was banned or put in a timeout. +/// +public class BannedUserEvent { - public class BannedUserEvent - { - /// - /// User ID of the banned user. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - - /// - /// Login of the banned user. - /// - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - - /// - /// Display name of the banned user. - /// - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - - /// - /// The UTC date and time (in RFC3999 format) when the timeout expires, or an empty string if the user is permanently banned. - /// - [JsonProperty(PropertyName = "expires_at")] - public DateTime? ExpiresAt { get; protected set; } - - /// - /// The UTC date and time (in RFC3999 format) when the ban was created. - /// - [JsonProperty(PropertyName = "created_at")] - public string CreatedAt { get; protected set; } - - /// - /// The reason for the ban if provided by the moderator. - /// - [JsonProperty(PropertyName = "reason")] - public string Reason { get; protected set; } - - /// - /// User ID of the moderator who initiated the ban. - /// - [JsonProperty(PropertyName = "moderator_id")] - public string ModeratorId { get; protected set; } - - /// - /// Login of the moderator who initiated the ban. - /// - [JsonProperty(PropertyName = "moderator_login")] - public string ModeratorLogin { get; protected set; } - - /// - /// Display name of the moderator who initiated the ban. - /// - [JsonProperty(PropertyName = "moderator_name")] - public string ModeratorName { get; protected set; } - } + /// + /// User ID of the banned user. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// Login of the banned user. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// Display name of the banned user. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The UTC date and time (in RFC3999 format) when the timeout expires, or an empty string if the user is permanently banned. + /// + [JsonProperty(PropertyName = "expires_at")] + public DateTime? ExpiresAt { get; protected set; } + + /// + /// The UTC date and time (in RFC3999 format) when the ban was created. + /// + [JsonProperty(PropertyName = "created_at")] + public string CreatedAt { get; protected set; } + + /// + /// The reason for the ban if provided by the moderator. + /// + [JsonProperty(PropertyName = "reason")] + public string Reason { get; protected set; } + + /// + /// User ID of the moderator who initiated the ban. + /// + [JsonProperty(PropertyName = "moderator_id")] + public string ModeratorId { get; protected set; } + + /// + /// Login of the moderator who initiated the ban. + /// + [JsonProperty(PropertyName = "moderator_login")] + public string ModeratorLogin { get; protected set; } + + /// + /// Display name of the moderator who initiated the ban. + /// + [JsonProperty(PropertyName = "moderator_name")] + public string ModeratorName { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/GetBannedUsersResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/GetBannedUsersResponse.cs index f823ad78..c73b289f 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/GetBannedUsersResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/GetBannedUsersResponse.cs @@ -1,20 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Moderation.GetBannedUsers +namespace TwitchLib.Api.Helix.Models.Moderation.GetBannedUsers; + +/// +/// Get banned users response object. +/// +public class GetBannedUsersResponse { - public class GetBannedUsersResponse - { - /// - /// Banned and timed-out users for a channel. - /// - [JsonProperty(PropertyName = "data")] - public BannedUserEvent[] Data { get; protected set; } + /// + /// Banned and timed-out users for a channel. + /// + [JsonProperty(PropertyName = "data")] + public BannedUserEvent[] Data { get; protected set; } - /// - /// A cursor value, to be used in a subsequent request to specify the starting point of the next set of results. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// A cursor value, to be used in a subsequent request to specify the starting point of the next set of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/GetModeratedChannels/GetModeratedChannelsResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/GetModeratedChannels/GetModeratedChannelsResponse.cs index c258e8fa..f6e95856 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/GetModeratedChannels/GetModeratedChannelsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/GetModeratedChannels/GetModeratedChannelsResponse.cs @@ -5,22 +5,21 @@ using TwitchLib.Api.Helix.Models.Common; using TwitchLib.Api.Helix.Models.Moderation.GetModerators; -namespace TwitchLib.Api.Helix.Models.Moderation.GetModeratedChannels +namespace TwitchLib.Api.Helix.Models.Moderation.GetModeratedChannels; + +/// +/// List of channels that the specified user has moderator privileges in. +/// +public class GetModeratedChannelsResponse { /// - /// List of channels that the specified user has moderator privileges in. + /// The list of channels that the user has moderator privileges in. + /// + [JsonProperty(PropertyName = "data")] + public ModeratedChannel[] Data { get; protected set; } + /// + /// Contains the information used to page through the list of results. The object is empty if there are no more pages left to page through. /// - public class GetModeratedChannelsResponse - { - /// - /// The list of channels that the user has moderator privileges in. - /// - [JsonProperty(PropertyName = "data")] - public ModeratedChannel[] Data { get; protected set; } - /// - /// Contains the information used to page through the list of results. The object is empty if there are no more pages left to page through. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/GetModeratedChannels/ModeratedChannel.cs b/TwitchLib.Api.Helix.Models/Moderation/GetModeratedChannels/ModeratedChannel.cs index af09ef62..4b09f86e 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/GetModeratedChannels/ModeratedChannel.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/GetModeratedChannels/ModeratedChannel.cs @@ -3,27 +3,26 @@ using System.Collections.Generic; using System.Text; -namespace TwitchLib.Api.Helix.Models.Moderation.GetModeratedChannels +namespace TwitchLib.Api.Helix.Models.Moderation.GetModeratedChannels; + +/// +/// Channel that the user has moderator privileges in. +/// +public class ModeratedChannel { /// - /// Channel that the user has moderator privileges in. + /// An ID that uniquely identifies the channel this user can moderate. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + /// + /// The channel’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + /// + /// The channels’ display name. /// - public class ModeratedChannel - { - /// - /// An ID that uniquely identifies the channel this user can moderate. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - /// - /// The channel’s login name. - /// - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - /// - /// The channels’ display name. - /// - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - } + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/GetModerators/GetModeratorsResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/GetModerators/GetModeratorsResponse.cs index 08b1885e..5da19e86 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/GetModerators/GetModeratorsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/GetModerators/GetModeratorsResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Moderation.GetModerators +namespace TwitchLib.Api.Helix.Models.Moderation.GetModerators; + +/// +/// Get moderators response object. +/// +public class GetModeratorsResponse { - public class GetModeratorsResponse - { - [JsonProperty(PropertyName = "data")] - public Moderator[] Data { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of moderators. + /// + [JsonProperty(PropertyName = "data")] + public Moderator[] Data { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/GetModerators/Moderator.cs b/TwitchLib.Api.Helix.Models/Moderation/GetModerators/Moderator.cs index b570d77e..8ebc5461 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/GetModerators/Moderator.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/GetModerators/Moderator.cs @@ -1,14 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.GetModerators +namespace TwitchLib.Api.Helix.Models.Moderation.GetModerators; + +/// +/// A moderator. +/// +public class Moderator { - public class Moderator - { - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - } + /// + /// The ID of the user that has permission to moderate the broadcaster’s channel. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/GetShieldModeStatus/GetShieldModeStatusResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/GetShieldModeStatus/GetShieldModeStatusResponse.cs index d49965df..554e1871 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/GetShieldModeStatus/GetShieldModeStatusResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/GetShieldModeStatus/GetShieldModeStatusResponse.cs @@ -1,13 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.ShieldModeStatus.GetShieldModeStatus +namespace TwitchLib.Api.Helix.Models.Moderation.ShieldModeStatus.GetShieldModeStatus; + +/// +/// Get shield mode status response object. +/// +public class GetShieldModeStatusResponse { - public class GetShieldModeStatusResponse - { - /// - /// A list that contains a single object with the broadcaster’s Shield Mode status. - /// - [JsonProperty(PropertyName = "data")] - public ShieldModeStatus[] Data { get; protected set; } - } + /// + /// A list that contains a single object with the broadcaster’s Shield Mode status. + /// + [JsonProperty(PropertyName = "data")] + public ShieldModeStatus[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/ShieldModeStatus.cs b/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/ShieldModeStatus.cs index c559614c..6464d664 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/ShieldModeStatus.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/ShieldModeStatus.cs @@ -1,37 +1,39 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.ShieldModeStatus +namespace TwitchLib.Api.Helix.Models.Moderation.ShieldModeStatus; + +/// +/// Object with the broadcaster’s Shield Mode status. +/// +public class ShieldModeStatus { - public class ShieldModeStatus - { - /// - /// A Boolean value that determines whether Shield Mode is active. - /// Is true if the broadcaster activated Shield Mode; otherwise, false. - /// - [JsonProperty(PropertyName = "is_active")] - public bool IsActive { get; protected set; } - /// - /// An ID that identifies the moderator that last activated Shield Mode. - /// Is an empty string if Shield Mode hasn’t been previously activated. - /// - [JsonProperty(PropertyName = "moderator_id")] - public string ModeratorId { get; protected set; } - /// - /// The moderator’s login name. Is an empty string if Shield Mode hasn’t been previously activated. - /// - [JsonProperty(PropertyName = "moderator_login")] - public string ModeratorLogin { get; protected set; } - /// - /// The moderator’s display name. Is an empty string if Shield Mode hasn’t been previously activated. - /// - [JsonProperty(PropertyName = "moderator_name")] - public string ModeratorName { get; protected set; } - /// - /// The UTC timestamp (in RFC3339 format) of when Shield Mode was last activated. - /// Is an empty string if Shield Mode hasn’t been previously activated. - /// - [JsonProperty(PropertyName = "last_activated_at")] - public string LastActivatedAt { get; protected set; } - } + /// + /// A Boolean value that determines whether Shield Mode is active. + /// Is true if the broadcaster activated Shield Mode; otherwise, false. + /// + [JsonProperty(PropertyName = "is_active")] + public bool IsActive { get; protected set; } + /// + /// An ID that identifies the moderator that last activated Shield Mode. + /// Is an empty string if Shield Mode hasn’t been previously activated. + /// + [JsonProperty(PropertyName = "moderator_id")] + public string ModeratorId { get; protected set; } + /// + /// The moderator’s login name. Is an empty string if Shield Mode hasn’t been previously activated. + /// + [JsonProperty(PropertyName = "moderator_login")] + public string ModeratorLogin { get; protected set; } + /// + /// The moderator’s display name. Is an empty string if Shield Mode hasn’t been previously activated. + /// + [JsonProperty(PropertyName = "moderator_name")] + public string ModeratorName { get; protected set; } + /// + /// The UTC timestamp (in RFC3339 format) of when Shield Mode was last activated. + /// Is an empty string if Shield Mode hasn’t been previously activated. + /// + [JsonProperty(PropertyName = "last_activated_at")] + public string LastActivatedAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/UpdateShieldModeStatus/ShieldModeStatusRequest.cs b/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/UpdateShieldModeStatus/ShieldModeStatusRequest.cs index 82b07207..5b8117ba 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/UpdateShieldModeStatus/ShieldModeStatusRequest.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/UpdateShieldModeStatus/ShieldModeStatusRequest.cs @@ -1,16 +1,17 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.ShieldModeStatus.UpdateShieldModeStatus +namespace TwitchLib.Api.Helix.Models.Moderation.ShieldModeStatus.UpdateShieldModeStatus; +/// +/// Shield mode status request object. +/// +public class ShieldModeStatusRequest { - public class ShieldModeStatusRequest - { - /// - /// A Boolean value that determines whether to activate Shield Mode. - /// Set to true to activate Shield Mode; otherwise, false to deactivate Shield Mode. - /// - [JsonProperty("is_active")] - public bool IsActive { get; set; } - } + /// + /// A Boolean value that determines whether to activate Shield Mode. + /// Set to true to activate Shield Mode; otherwise, false to deactivate Shield Mode. + /// + [JsonProperty("is_active")] + public bool IsActive { get; set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/UpdateShieldModeStatus/UpdateShieldModeStatusResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/UpdateShieldModeStatus/UpdateShieldModeStatusResponse.cs index 79c972d6..12985c1f 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/UpdateShieldModeStatus/UpdateShieldModeStatusResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/ShieldModeStatus/UpdateShieldModeStatus/UpdateShieldModeStatusResponse.cs @@ -1,13 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Moderation.ShieldModeStatus.UpdateShieldModeStatus +namespace TwitchLib.Api.Helix.Models.Moderation.ShieldModeStatus.UpdateShieldModeStatus; + +/// +/// Update shield mode status response object. +/// +public class UpdateShieldModeStatusResponse { - public class UpdateShieldModeStatusResponse - { - /// - /// A list that contains a single object with the broadcaster’s updated Shield Mode status. - /// - [JsonProperty(PropertyName = "data")] - public ShieldModeStatus[] Data { get; protected set; } - } + /// + /// A list that contains a single object with the broadcaster’s updated Shield Mode status. + /// + [JsonProperty(PropertyName = "data")] + public ShieldModeStatus[] Data { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/GetUnbanRequests/GetUnbanRequestsResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/GetUnbanRequests/GetUnbanRequestsResponse.cs index cee6bf73..3cd4d496 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/GetUnbanRequests/GetUnbanRequestsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/GetUnbanRequests/GetUnbanRequestsResponse.cs @@ -4,19 +4,21 @@ using System.Text; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Moderation.UnbanRequests.GetUnbanRequests +namespace TwitchLib.Api.Helix.Models.Moderation.UnbanRequests.GetUnbanRequests; + +/// +/// Get banned requests response object. +/// +public class GetUnbanRequestsResponse { - public class GetUnbanRequestsResponse - { - /// - /// A list that contains information about the channel's unban requests. - /// - [JsonProperty(PropertyName = "data")] - public UnbanRequest[] Data { get; protected set; } - /// - /// Contains information used to page through a list of results. The object is empty if there are no more pages left to page through. - /// - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// A list that contains information about the channel's unban requests. + /// + [JsonProperty(PropertyName = "data")] + public UnbanRequest[] Data { get; protected set; } + /// + /// Contains information used to page through a list of results. The object is empty if there are no more pages left to page through. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/ResolveUnbanRequests/ResolveUnbanRequestsResponse.cs b/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/ResolveUnbanRequests/ResolveUnbanRequestsResponse.cs index fe9be745..50d2fe85 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/ResolveUnbanRequests/ResolveUnbanRequestsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/ResolveUnbanRequests/ResolveUnbanRequestsResponse.cs @@ -3,14 +3,16 @@ using System.Collections.Generic; using System.Text; -namespace TwitchLib.Api.Helix.Models.Moderation.UnbanRequests.ResolveUnbanRequests +namespace TwitchLib.Api.Helix.Models.Moderation.UnbanRequests.ResolveUnbanRequests; + +/// +/// Resolve unban requests response object. +/// +public class ResolveUnbanRequestsResponse { - public class ResolveUnbanRequestsResponse - { - /// - /// Contains information about the channel's unban request. - /// - [JsonProperty(PropertyName = "data")] - public UnbanRequest[] Data { get; protected set; } - } + /// + /// Contains information about the channel's unban request. + /// + [JsonProperty(PropertyName = "data")] + public UnbanRequest[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/UnbanRequest.cs b/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/UnbanRequest.cs index ea7ca1af..8c62bf85 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/UnbanRequest.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/UnbanRequests/UnbanRequest.cs @@ -3,87 +3,86 @@ using System.Collections.Generic; using System.Text; -namespace TwitchLib.Api.Helix.Models.Moderation.UnbanRequests +namespace TwitchLib.Api.Helix.Models.Moderation.UnbanRequests; + +/// +/// Contains information about the channel's unban request +/// +public class UnbanRequest { /// - /// Contains information about the channel's unban request + /// Unban request ID. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + /// + /// The broadcaster's display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + /// + /// The broadcaster's login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + /// + /// User ID of broadcaster whose channel is receiving the unban request. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + /// + /// User ID of moderator who approved/denied the request. + /// + [JsonProperty(PropertyName = "moderator_id")] + public string ModeratorId { get; protected set; } + /// + /// The moderator's login name. + /// + [JsonProperty(PropertyName = "moderator_login")] + public string ModeratorLogin { get; protected set; } + /// + /// The moderator's display name. + /// + [JsonProperty(PropertyName = "moderator_name")] + public string ModeratorName { get; protected set; } + /// + /// User ID of the requestor who is asking for an unban. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + /// + /// The user's login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + /// + /// The user's display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + /// + /// Text of the request from the requesting user. + /// + [JsonProperty(PropertyName = "text")] + public string Text { get; protected set; } + /// + /// Status of the request. One of: pending, approved, denied, acknowledged, canceled + /// + [JsonProperty(PropertyName = "status")] + public string Status { get; protected set; } + /// + /// Timestamp of when the unban request was created. + /// + [JsonProperty(PropertyName = "created_at")] + public DateTime CreatedAt { get; protected set; } + /// + /// Timestamp of when moderator/broadcaster approved or denied the request. + /// + [JsonProperty(PropertyName = "resolved_at")] + public DateTime? ResolvedAt { get; protected set; } + /// + /// Text input by the resolver (moderator) of the unban. request /// - public class UnbanRequest - { - /// - /// Unban request ID. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - /// - /// The broadcaster's display name. - /// - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - /// - /// The broadcaster's login name. - /// - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - /// - /// User ID of broadcaster whose channel is receiving the unban request. - /// - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - /// - /// User ID of moderator who approved/denied the request. - /// - [JsonProperty(PropertyName = "moderator_id")] - public string ModeratorId { get; protected set; } - /// - /// The moderator's login name. - /// - [JsonProperty(PropertyName = "moderator_login")] - public string ModeratorLogin { get; protected set; } - /// - /// The moderator's display name. - /// - [JsonProperty(PropertyName = "moderator_name")] - public string ModeratorName { get; protected set; } - /// - /// User ID of the requestor who is asking for an unban. - /// - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - /// - /// The user's login name. - /// - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - /// - /// The user's display name. - /// - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - /// - /// Text of the request from the requesting user. - /// - [JsonProperty(PropertyName = "text")] - public string Text { get; protected set; } - /// - /// Status of the request. One of: pending, approved, denied, acknowledged, canceled - /// - [JsonProperty(PropertyName = "status")] - public string Status { get; protected set; } - /// - /// Timestamp of when the unban request was created. - /// - [JsonProperty(PropertyName = "created_at")] - public DateTime CreatedAt { get; protected set; } - /// - /// Timestamp of when moderator/broadcaster approved or denied the request. - /// - [JsonProperty(PropertyName = "resolved_at")] - public DateTime? ResolvedAt { get; protected set; } - /// - /// Text input by the resolver (moderator) of the unban. request - /// - [JsonProperty(PropertyName = "resolution_text")] - public string ResolutionText { get; protected set; } - } + [JsonProperty(PropertyName = "resolution_text")] + public string ResolutionText { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Polls/Choice.cs b/TwitchLib.Api.Helix.Models/Polls/Choice.cs index c66b09f7..c572e672 100644 --- a/TwitchLib.Api.Helix.Models/Polls/Choice.cs +++ b/TwitchLib.Api.Helix.Models/Polls/Choice.cs @@ -2,16 +2,38 @@ namespace TwitchLib.Api.Helix.Models.Polls { + /// + /// A choice that viewers can choose from. + /// public class Choice { + /// + /// An ID that identifies this choice. + /// [JsonProperty(PropertyName = "id")] public string Id { get; protected set; } + + /// + /// The choice's title. The title may contain a maximum of 25 characters. + /// [JsonProperty(PropertyName = "title")] public string Title { get; protected set; } + + /// + /// The total number of votes cast for this choice. + /// [JsonProperty(PropertyName = "votes")] public int Votes { get; protected set; } + + /// + /// The number of votes cast using Channel Points. + /// [JsonProperty(PropertyName = "channel_points_votes")] public int ChannelPointsVotes { get; protected set; } + + /// + /// Not used; will be set to 0. + /// [JsonProperty(PropertyName = "bits_votes")] public int BitsVotes { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Polls/CreatePoll/Choice.cs b/TwitchLib.Api.Helix.Models/Polls/CreatePoll/Choice.cs index 567e0a0a..28c5e915 100644 --- a/TwitchLib.Api.Helix.Models/Polls/CreatePoll/Choice.cs +++ b/TwitchLib.Api.Helix.Models/Polls/CreatePoll/Choice.cs @@ -1,10 +1,16 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Polls.CreatePoll +namespace TwitchLib.Api.Helix.Models.Polls.CreatePoll; + +/// +/// A choice that viewers may choose from. +/// +public class Choice { - public class Choice - { - [JsonProperty(PropertyName = "title")] - public string Title { get; set; } - } + /// + /// One of the choices the viewer may select. + /// The choice may contain a maximum of 25 characters. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Polls/CreatePoll/CreatePollRequest.cs b/TwitchLib.Api.Helix.Models/Polls/CreatePoll/CreatePollRequest.cs index 55dbd2bf..ebc7ce14 100644 --- a/TwitchLib.Api.Helix.Models/Polls/CreatePoll/CreatePollRequest.cs +++ b/TwitchLib.Api.Helix.Models/Polls/CreatePoll/CreatePollRequest.cs @@ -1,26 +1,49 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Polls.CreatePoll +namespace TwitchLib.Api.Helix.Models.Polls.CreatePoll; + +/// +/// Create poll request object. +/// +public class CreatePollRequest { - public class CreatePollRequest - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; set; } - [JsonProperty(PropertyName = "choices")] - public Choice[] Choices { get; set; } - /// Removed - Ignored if included with call. Defaults to false - [JsonProperty(PropertyName = "bits_voting_enabled")] - public bool BitsVotingEnabled { get; set; } - /// Removed - Ignored if included with call. Defaults to 0 - [JsonProperty(PropertyName = "bits_per_vote")] - public int BitsPerVote { get; set; } - [JsonProperty(PropertyName = "channel_points_voting_enabled")] - public bool ChannelPointsVotingEnabled { get; set; } - [JsonProperty(PropertyName = "channel_points_per_vote")] - public int ChannelPointsPerVote { get; set; } - [JsonProperty(PropertyName = "duration")] - public int DurationSeconds { get; set; } - } + /// + /// The ID of the broadcaster that’s running the poll. + /// This ID must match the user ID in the user access token. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; set; } + + /// + /// The question that viewers will vote on. + /// The question may contain a maximum of 60 characters. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; set; } + + /// + /// A list of choices that viewers may choose from. + /// The list must contain a minimum of 2 choices and up to a maximum of 5 choices. + /// + [JsonProperty(PropertyName = "choices")] + public Choice[] Choices { get; set; } + + /// + /// A Boolean value that indicates whether viewers may cast additional votes using Channel Points. + /// + [JsonProperty(PropertyName = "channel_points_voting_enabled")] + public bool ChannelPointsVotingEnabled { get; set; } + + /// + /// The number of points that the viewer must spend to cast one additional vote. + /// + [JsonProperty(PropertyName = "channel_points_per_vote")] + public int ChannelPointsPerVote { get; set; } + + /// + /// The length of time (in seconds) that the poll will run for. + /// The minimum is 15 seconds and the maximum is 1800 seconds (30 minutes). + /// + [JsonProperty(PropertyName = "duration")] + public int DurationSeconds { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Polls/CreatePoll/CreatePollResponse.cs b/TwitchLib.Api.Helix.Models/Polls/CreatePoll/CreatePollResponse.cs index a0f854c5..d3b549b8 100644 --- a/TwitchLib.Api.Helix.Models/Polls/CreatePoll/CreatePollResponse.cs +++ b/TwitchLib.Api.Helix.Models/Polls/CreatePoll/CreatePollResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Polls.CreatePoll +namespace TwitchLib.Api.Helix.Models.Polls.CreatePoll; + +/// +/// Create poll response object. +/// +public class CreatePollResponse { - public class CreatePollResponse - { - [JsonProperty(PropertyName = "data")] - public Poll[] Data { get; protected set; } - } + /// + /// A list that contains the single poll that you created. + /// + [JsonProperty(PropertyName = "data")] + public Poll[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Polls/EndPoll/EndPollResponse.cs b/TwitchLib.Api.Helix.Models/Polls/EndPoll/EndPollResponse.cs index 4d7f984d..87d8c12f 100644 --- a/TwitchLib.Api.Helix.Models/Polls/EndPoll/EndPollResponse.cs +++ b/TwitchLib.Api.Helix.Models/Polls/EndPoll/EndPollResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Polls.EndPoll +namespace TwitchLib.Api.Helix.Models.Polls.EndPoll; + +/// +/// End poll response object. +/// +public class EndPollResponse { - public class EndPollResponse - { - [JsonProperty(PropertyName = "data")] - public Poll[] Data { get; protected set; } - } + /// + /// A list that contains the poll that you ended. + /// + [JsonProperty(PropertyName = "data")] + public Poll[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Polls/GetPolls/GetPollsResponse.cs b/TwitchLib.Api.Helix.Models/Polls/GetPolls/GetPollsResponse.cs index 8bd90825..3613a58c 100644 --- a/TwitchLib.Api.Helix.Models/Polls/GetPolls/GetPollsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Polls/GetPolls/GetPollsResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Polls.GetPolls +namespace TwitchLib.Api.Helix.Models.Polls.GetPolls; + +/// +/// Get polls response object. +/// +public class GetPollsResponse { - public class GetPollsResponse - { - [JsonProperty(PropertyName = "data")] - public Poll[] Data { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// A list of polls. + /// + [JsonProperty(PropertyName = "data")] + public Poll[] Data { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Polls/Poll.cs b/TwitchLib.Api.Helix.Models/Polls/Poll.cs index 0bef0ac8..e623c1c9 100644 --- a/TwitchLib.Api.Helix.Models/Polls/Poll.cs +++ b/TwitchLib.Api.Helix.Models/Polls/Poll.cs @@ -1,35 +1,95 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Polls +namespace TwitchLib.Api.Helix.Models.Polls; + +/// +/// Contains a single poll. +/// +public class Poll { - public class Poll - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - [JsonProperty(PropertyName = "choices")] - public Choice[] Choices { get; protected set; } - [JsonProperty(PropertyName = "bits_voting_enabled")] - public bool BitsVotingEnabled { get; protected set; } - [JsonProperty(PropertyName = "bits_per_vote")] - public int BitsPerVote { get; protected set; } - [JsonProperty(PropertyName = "channel_points_voting_enabled")] - public bool ChannelPointsVotingEnabled { get; protected set; } - [JsonProperty(PropertyName = "channel_points_per_vote")] - public int ChannelPointsPerVote { get; protected set; } - [JsonProperty(PropertyName = "status")] - public string Status { get; protected set; } - [JsonProperty(PropertyName = "duration")] - public int DurationSeconds { get; protected set; } - [JsonProperty(PropertyName = "started_at")] - public DateTime StartedAt { get; protected set; } - } + /// + /// An ID that identifies the poll. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// An ID that identifies the broadcaster that created the poll. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The broadcaster’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + + /// + /// The question that viewers are voting on. Maximum of 60 characters. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// A list of choices that viewers can choose from. + /// The list will contain a minimum of two choices and up to a maximum of five choices. + /// + [JsonProperty(PropertyName = "choices")] + public Choice[] Choices { get; protected set; } + + /// + /// Not used; will be set to false. + /// + [JsonProperty(PropertyName = "bits_voting_enabled")] + public bool BitsVotingEnabled { get; protected set; } + + /// + /// Not used; will be set to 0. + /// + [JsonProperty(PropertyName = "bits_per_vote")] + public int BitsPerVote { get; protected set; } + + /// + /// A Boolean value that indicates whether viewers may cast additional votes using Channel Points. + /// + [JsonProperty(PropertyName = "channel_points_voting_enabled")] + public bool ChannelPointsVotingEnabled { get; protected set; } + + /// + /// The number of points the viewer must spend to cast one additional vote. + /// + [JsonProperty(PropertyName = "channel_points_per_vote")] + public int ChannelPointsPerVote { get; protected set; } + + /// + /// The poll’s status. + /// + [JsonProperty(PropertyName = "status")] + public string Status { get; protected set; } + + /// + /// The length of time (in seconds) that the poll will run for. + /// + [JsonProperty(PropertyName = "duration")] + public int DurationSeconds { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the poll began. + /// + [JsonProperty(PropertyName = "started_at")] + public DateTime StartedAt { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the poll ended. If status is ACTIVE, this field is set to null. + /// + [JsonProperty(PropertyName = "ended_at")] + public DateTime EndedAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/CreatePredictionRequest.cs b/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/CreatePredictionRequest.cs index a23e81cf..d731f807 100644 --- a/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/CreatePredictionRequest.cs +++ b/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/CreatePredictionRequest.cs @@ -1,16 +1,37 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Predictions.CreatePrediction +namespace TwitchLib.Api.Helix.Models.Predictions.CreatePrediction; + +/// +/// Create prediction request object. +/// +public class CreatePredictionRequest { - public class CreatePredictionRequest - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; set; } - [JsonProperty(PropertyName = "outcomes")] - public Outcome[] Outcomes { get; set; } - [JsonProperty(PropertyName = "prediction_window")] - public int PredictionWindowSeconds { get; set; } - } + /// + /// The ID of the broadcaster that’s running the prediction. + /// This ID must match the user ID in the user access token. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; set; } + + /// + /// The question that the broadcaster is asking. + /// The title is limited to a maximum of 45 characters. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; set; } + + /// + /// The list of possible outcomes that the viewers may choose from. + /// The list must contain a minimum of 2 choices and up to a maximum of 10 choices. + /// + [JsonProperty(PropertyName = "outcomes")] + public Outcome[] Outcomes { get; set; } + + /// + /// The length of time (in seconds) that the prediction will run for. + /// The minimum is 30 seconds and the maximum is 1800 seconds (30 minutes). + /// + [JsonProperty(PropertyName = "prediction_window")] + public int PredictionWindowSeconds { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/CreatePredictionResponse.cs b/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/CreatePredictionResponse.cs index 89d8fc99..8469c1fd 100644 --- a/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/CreatePredictionResponse.cs +++ b/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/CreatePredictionResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Predictions.CreatePrediction +namespace TwitchLib.Api.Helix.Models.Predictions.CreatePrediction; + +/// +/// Create prediction respsone object. +/// +public class CreatePredictionResponse { - public class CreatePredictionResponse - { - [JsonProperty(PropertyName = "data")] - public Prediction[] Data { get; protected set; } - } + /// + /// A list that contains the single prediction that you created. + /// + [JsonProperty(PropertyName = "data")] + public Prediction[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/Outcome.cs b/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/Outcome.cs index e026bed2..0e19b9ce 100644 --- a/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/Outcome.cs +++ b/TwitchLib.Api.Helix.Models/Predictions/CreatePrediction/Outcome.cs @@ -1,10 +1,16 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Predictions.CreatePrediction +namespace TwitchLib.Api.Helix.Models.Predictions.CreatePrediction; + +/// +/// Request - An outcome that the viewers may choose from. +/// +public class Outcome { - public class Outcome - { - [JsonProperty(PropertyName = "title")] - public string Title { get; set; } - } + /// + /// The question that the broadcaster is asking. + /// The title is limited to a maximum of 45 characters. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Predictions/EndPrediction/EndPredictionResponse.cs b/TwitchLib.Api.Helix.Models/Predictions/EndPrediction/EndPredictionResponse.cs index c872fcf3..bdc6382e 100644 --- a/TwitchLib.Api.Helix.Models/Predictions/EndPrediction/EndPredictionResponse.cs +++ b/TwitchLib.Api.Helix.Models/Predictions/EndPrediction/EndPredictionResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Predictions.EndPrediction +namespace TwitchLib.Api.Helix.Models.Predictions.EndPrediction; + +/// +/// End prediction response object. +/// +public class EndPredictionResponse { - public class EndPredictionResponse - { - [JsonProperty(PropertyName = "data")] - public Prediction[] Data { get; protected set; } - } + /// + /// A list that contains the single prediction that you updated. + /// + [JsonProperty(PropertyName = "data")] + public Prediction[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Predictions/Outcome.cs b/TwitchLib.Api.Helix.Models/Predictions/Outcome.cs index 60a9f0ae..ddc1edcf 100644 --- a/TwitchLib.Api.Helix.Models/Predictions/Outcome.cs +++ b/TwitchLib.Api.Helix.Models/Predictions/Outcome.cs @@ -1,20 +1,45 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Predictions +namespace TwitchLib.Api.Helix.Models.Predictions; + +/// +/// A possible outcomes for the prediction. +/// +public class Outcome { - public class Outcome - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - [JsonProperty(PropertyName = "users")] - public int ChannelPoints { get; protected set; } - [JsonProperty(PropertyName = "channel_points")] - public int ChannelPointsVotes { get; protected set; } - [JsonProperty(PropertyName = "top_predictors")] - public TopPredictor[] TopPredictors { get; protected set; } - [JsonProperty(PropertyName = "color")] - public string Color { get; protected set; } - } + /// + /// An ID that identifies this outcome. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The outcome’s text. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// The number of unique viewers that chose this outcome. + /// + [JsonProperty(PropertyName = "users")] + public int ChannelPoints { get; protected set; } + + /// + /// The number of Channel Points spent by viewers on this outcome. + /// + [JsonProperty(PropertyName = "channel_points")] + public int ChannelPointsVotes { get; protected set; } + + /// + /// A list of viewers who were the top predictors; otherwise, null if none. + /// + [JsonProperty(PropertyName = "top_predictors")] + public TopPredictor[] TopPredictors { get; protected set; } + + /// + /// The color that visually identifies this outcome in the UX. + /// + [JsonProperty(PropertyName = "color")] + public string Color { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Predictions/Prediction.cs b/TwitchLib.Api.Helix.Models/Predictions/Prediction.cs index 88b705c4..023e3c17 100644 --- a/TwitchLib.Api.Helix.Models/Predictions/Prediction.cs +++ b/TwitchLib.Api.Helix.Models/Predictions/Prediction.cs @@ -1,33 +1,82 @@ using Newtonsoft.Json; using TwitchLib.Api.Core.Enums; -namespace TwitchLib.Api.Helix.Models.Predictions +namespace TwitchLib.Api.Helix.Models.Predictions; + +/// +/// A single prediction. +/// +public class Prediction { - public class Prediction - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - [JsonProperty(PropertyName = "winning_outcome_id")] - public string WinningOutcomeId { get; protected set; } - [JsonProperty(PropertyName = "outcomes")] - public Outcome[] Outcomes { get; protected set; } - [JsonProperty(PropertyName = "prediction_window")] - public string PredictionWindow { get; protected set; } - [JsonProperty(PropertyName = "status")] - public PredictionStatus Status { get; protected set; } - [JsonProperty(PropertyName = "created_at")] - public string CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "ended_at")] - public string EndedAt { get; protected set; } - [JsonProperty(PropertyName = "locked_at")] - public string LockedAt { get; protected set; } - } + /// + /// An ID that identifies this prediction. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// An ID that identifies the broadcaster + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The broadcaster’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + + /// + /// The question that the prediction asks. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// The ID of the winning outcome. Is null unless status is RESOLVED. + /// + [JsonProperty(PropertyName = "winning_outcome_id")] + public string WinningOutcomeId { get; protected set; } + + /// + /// The list of possible outcomes for the prediction. + /// + [JsonProperty(PropertyName = "outcomes")] + public Outcome[] Outcomes { get; protected set; } + + /// + /// The length of time (in seconds) that the prediction will run for. + /// + [JsonProperty(PropertyName = "prediction_window")] + public string PredictionWindow { get; protected set; } + + /// + /// The prediction’s status. + /// + [JsonProperty(PropertyName = "status")] + public PredictionStatus Status { get; protected set; } + + /// + /// The UTC date and time of when the Prediction began. + /// + [JsonProperty(PropertyName = "created_at")] + public string CreatedAt { get; protected set; } + + /// + /// The UTC date and time of when the Prediction ended. If status is ACTIVE, this is set to null. + /// + [JsonProperty(PropertyName = "ended_at")] + public string EndedAt { get; protected set; } + + /// + /// The UTC date and time of when the Prediction was locked. If status is not LOCKED, this is set to null. + /// + [JsonProperty(PropertyName = "locked_at")] + public string LockedAt { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Predictions/TopPredictor.cs b/TwitchLib.Api.Helix.Models/Predictions/TopPredictor.cs index af6c4b6d..2e0ff25b 100644 --- a/TwitchLib.Api.Helix.Models/Predictions/TopPredictor.cs +++ b/TwitchLib.Api.Helix.Models/Predictions/TopPredictor.cs @@ -1,18 +1,39 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Predictions +namespace TwitchLib.Api.Helix.Models.Predictions; + +/// +/// A viewer who was the top predictor +/// +public class TopPredictor { - public class TopPredictor - { - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "channel_points_used")] - public int ChannelPointsUsed { get; protected set; } - [JsonProperty(PropertyName = "channel_points_won")] - public int ChannelPointsWon { get; protected set; } - } + /// + /// An ID that identifies the viewer. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The viewer’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The viewer’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The number of Channel Points the viewer spent. + /// + [JsonProperty(PropertyName = "channel_points_used")] + public int ChannelPointsUsed { get; protected set; } + + /// + /// The number of Channel Points distributed to the viewer. + /// + [JsonProperty(PropertyName = "channel_points_won")] + public int ChannelPointsWon { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Raids/Raid.cs b/TwitchLib.Api.Helix.Models/Raids/Raid.cs index 0b06fc7c..2f0fcb89 100644 --- a/TwitchLib.Api.Helix.Models/Raids/Raid.cs +++ b/TwitchLib.Api.Helix.Models/Raids/Raid.cs @@ -1,13 +1,22 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Raids +namespace TwitchLib.Api.Helix.Models.Raids; + +/// +/// A single object with information about the pending raid. +/// +public class Raid { - public class Raid - { - [JsonProperty(PropertyName = "created_at")] - public DateTime CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "is_mature")] - public bool IsMature { get; protected set; } - } + /// + /// The UTC date and time, in RFC3339 format, of when the raid was requested. + /// + [JsonProperty(PropertyName = "created_at")] + public DateTime CreatedAt { get; protected set; } + + /// + /// A Boolean value that indicates whether the channel being raided contains mature content. + /// + [JsonProperty(PropertyName = "is_mature")] + public bool IsMature { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Raids/StartRaid/StartRaidResponse.cs b/TwitchLib.Api.Helix.Models/Raids/StartRaid/StartRaidResponse.cs index 8ea278ff..f49316cf 100644 --- a/TwitchLib.Api.Helix.Models/Raids/StartRaid/StartRaidResponse.cs +++ b/TwitchLib.Api.Helix.Models/Raids/StartRaid/StartRaidResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Raids.StartRaid +namespace TwitchLib.Api.Helix.Models.Raids.StartRaid; + +/// +/// Start raid response object. +/// +public class StartRaidResponse { - public class StartRaidResponse - { - [JsonProperty(PropertyName = "data")] - public Raid[] Data { get; protected set; } - } + /// + /// A list that contains a single object with information about the pending raid. + /// + [JsonProperty(PropertyName = "data")] + public Raid[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Schedule/Category.cs b/TwitchLib.Api.Helix.Models/Schedule/Category.cs index f709de5a..bbc469e5 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/Category.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/Category.cs @@ -1,12 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Schedule +namespace TwitchLib.Api.Helix.Models.Schedule; + +/// +/// The type of content. +/// +public class Category { - public class Category - { - [JsonProperty("id")] - public string Id { get; protected set; } - [JsonProperty("name")] - public string Name { get; protected set; } - } + /// + /// An ID that identifies the category that best represents the content. + /// + [JsonProperty("id")] + public string Id { get; protected set; } + + /// + /// The name of the category. + /// + [JsonProperty("name")] + public string Name { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Schedule/ChannelStreamSchedule.cs b/TwitchLib.Api.Helix.Models/Schedule/ChannelStreamSchedule.cs index 7147be9c..f87d84a0 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/ChannelStreamSchedule.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/ChannelStreamSchedule.cs @@ -1,18 +1,39 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Schedule +namespace TwitchLib.Api.Helix.Models.Schedule; + +/// +/// Broadcaster’s streaming schedule. +/// +public class ChannelStreamSchedule { - public class ChannelStreamSchedule - { - [JsonProperty("segments")] - public Segment[] Segments { get; protected set; } - [JsonProperty("broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty("broadcaster_name")] - public string BroadcasterName { get; protected set; } - [JsonProperty("broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - [JsonProperty("vacation")] - public Vacation Vacation { get; protected set; } - } + /// + /// A list that contains broadcast segments. + /// + [JsonProperty("segments")] + public Segment[] Segments { get; protected set; } + + /// + /// The ID of the broadcaster that owns the broadcast schedule. + /// + [JsonProperty("broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty("broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The broadcaster’s login name. + /// + [JsonProperty("broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + + /// + /// The dates when the broadcaster is on vacation and not streaming. + /// + [JsonProperty("vacation")] + public Vacation Vacation { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Schedule/CreateChannelStreamSegment/CreateChannelStreamSegmentRequest.cs b/TwitchLib.Api.Helix.Models/Schedule/CreateChannelStreamSegment/CreateChannelStreamSegmentRequest.cs index 54331955..2fccb78f 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/CreateChannelStreamSegment/CreateChannelStreamSegmentRequest.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/CreateChannelStreamSegment/CreateChannelStreamSegmentRequest.cs @@ -1,23 +1,53 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Schedule.CreateChannelStreamSegment +namespace TwitchLib.Api.Helix.Models.Schedule.CreateChannelStreamSegment; + +/// +/// Create channel stream segment request object. +/// +public class CreateChannelStreamSegmentRequest { - public class CreateChannelStreamSegmentRequest - { - // required - [JsonProperty("start_time")] - public DateTime StartTime { get; set; } - [JsonProperty("timezone")] - public string Timezone { get; set; } - [JsonProperty("is_recurring")] - public bool IsRecurring { get; set; } - // optional - [JsonProperty("duration")] - public string Duration { get; set; } - [JsonProperty("category_id")] - public string CategoryId { get; set; } - [JsonProperty("title")] - public string Title { get; set; } - } + /// + /// REQUIRED + /// The date and time that the broadcast segment starts. + /// + [JsonProperty("start_time")] + public DateTime StartTime { get; set; } + + /// + /// REQUIRED + /// The time zone where the broadcast takes place. + /// Specify the time zone using IANA time zone database format. + /// + [JsonProperty("timezone")] + public string Timezone { get; set; } + + /// + /// A Boolean value that determines whether the broadcast recurs weekly. + /// Only partners and affiliates may add non-recurring broadcasts. + /// + [JsonProperty("is_recurring")] + public bool IsRecurring { get; set; } + + /// + /// REQUIRED + /// The length of time, in minutes, that the broadcast is scheduled to run. + /// The duration must be in the range 30 through 1380 (23 hours). + /// + [JsonProperty("duration")] + public string Duration { get; set; } + + /// + /// The ID of the category that best represents the broadcast’s content. + /// + [JsonProperty("category_id")] + public string CategoryId { get; set; } + + /// + /// The broadcast’s title. + /// The title may contain a maximum of 140 characters. + /// + [JsonProperty("title")] + public string Title { get; set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Schedule/CreateChannelStreamSegment/CreateChannelStreamSegmentResponse.cs b/TwitchLib.Api.Helix.Models/Schedule/CreateChannelStreamSegment/CreateChannelStreamSegmentResponse.cs index b1447b8d..129aefb4 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/CreateChannelStreamSegment/CreateChannelStreamSegmentResponse.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/CreateChannelStreamSegment/CreateChannelStreamSegmentResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Schedule.CreateChannelStreamSegment +namespace TwitchLib.Api.Helix.Models.Schedule.CreateChannelStreamSegment; + +/// +/// Create channel streams segment response object. +/// +public class CreateChannelStreamSegmentResponse { - public class CreateChannelStreamSegmentResponse - { - [JsonProperty("data")] - public ChannelStreamSchedule Schedule { get; protected set; } - } + /// + /// The broadcaster’s streaming scheduled. + /// + [JsonProperty("data")] + public ChannelStreamSchedule Schedule { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Schedule/GetChannelStreamSchedule/GetChannelStreamScheduleResponse.cs b/TwitchLib.Api.Helix.Models/Schedule/GetChannelStreamSchedule/GetChannelStreamScheduleResponse.cs index e2a2318e..eec55609 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/GetChannelStreamSchedule/GetChannelStreamScheduleResponse.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/GetChannelStreamSchedule/GetChannelStreamScheduleResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Schedule.GetChannelStreamSchedule +namespace TwitchLib.Api.Helix.Models.Schedule.GetChannelStreamSchedule; + +/// +/// Get channel stream schedule response object. +/// +public class GetChannelStreamScheduleResponse { - public class GetChannelStreamScheduleResponse - { - [JsonProperty("data")] - public ChannelStreamSchedule Schedule { get; protected set; } - [JsonProperty("pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The broadcaster’s streaming schedule. + /// + [JsonProperty("data")] + public ChannelStreamSchedule Schedule { get; protected set; } + + /// + /// The information used to page through a list of results. + /// + [JsonProperty("pagination")] + public Pagination Pagination { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Schedule/Segment.cs b/TwitchLib.Api.Helix.Models/Schedule/Segment.cs index 4562a9ed..9db3346e 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/Segment.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/Segment.cs @@ -1,23 +1,53 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Schedule +namespace TwitchLib.Api.Helix.Models.Schedule; + +/// +/// A single broadcast segment. +/// +public class Segment { - public class Segment - { - [JsonProperty("id")] - public string Id { get; protected set; } - [JsonProperty("start_time")] - public DateTime StartTime { get; protected set; } - [JsonProperty("end_time")] - public DateTime EndTime { get; protected set; } - [JsonProperty("title")] - public string Title { get; protected set; } - [JsonProperty("canceled_until")] - public DateTime? CanceledUntil { get; protected set; } - [JsonProperty("category")] - public Category Category { get; protected set; } - [JsonProperty("is_recurring")] - public bool IsRecurring { get; protected set; } - } + /// + /// An ID that identifies this broadcast segment. + /// + [JsonProperty("id")] + public string Id { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the broadcast starts. + /// + [JsonProperty("start_time")] + public DateTime StartTime { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the broadcast ends. + /// + [JsonProperty("end_time")] + public DateTime EndTime { get; protected set; } + + /// + /// The broadcast segment’s title. + /// + [JsonProperty("title")] + public string Title { get; protected set; } + + /// + /// Indicates whether the broadcaster canceled this segment of a recurring broadcast. + /// + [JsonProperty("canceled_until")] + public DateTime? CanceledUntil { get; protected set; } + + /// + /// The type of content. + /// + [JsonProperty("category")] + public Category Category { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcast is part of a recurring + /// series that streams at the same time each week or is a one-time broadcast. + /// + [JsonProperty("is_recurring")] + public bool IsRecurring { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Schedule/UpdateChannelStreamSegment/UpdateChannelStreamSegmentRequest.cs b/TwitchLib.Api.Helix.Models/Schedule/UpdateChannelStreamSegment/UpdateChannelStreamSegmentRequest.cs index e93022ca..9202fc1b 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/UpdateChannelStreamSegment/UpdateChannelStreamSegmentRequest.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/UpdateChannelStreamSegment/UpdateChannelStreamSegmentRequest.cs @@ -1,19 +1,48 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Schedule.UpdateChannelStreamSegment +namespace TwitchLib.Api.Helix.Models.Schedule.UpdateChannelStreamSegment; + +/// +/// Update channel stream segment request object. +/// +public class UpdateChannelStreamSegmentRequest { - public class UpdateChannelStreamSegmentRequest - { - [JsonProperty("start_time")] - public DateTime StartTime { get; set; } - [JsonProperty("duration")] - public string Duration { get; set; } - [JsonProperty("category_id")] - public string CategoryId { get; set; } - [JsonProperty("is_canceled")] - public bool IsCanceled { get; set; } - [JsonProperty("timezone")] - public string Timezone { get; set; } - } + /// + /// The date and time that the broadcast segment starts. + /// + [JsonProperty("start_time")] + public DateTime StartTime { get; set; } + + /// + /// The length of time, in minutes, that the broadcast is scheduled to run. + /// The duration must be in the range 30 through 1380 (23 hours). + /// + [JsonProperty("duration")] + public string Duration { get; set; } + + /// + /// The ID of the category that best represents the broadcast’s content. + /// + [JsonProperty("category_id")] + public string CategoryId { get; set; } + + /// + /// The broadcast’s title. + /// The title may contain a maximum of 140 characters. + /// + [JsonProperty("title")] + public string Title { get; set; } + + /// + /// A Boolean value that indicates whether the broadcast is canceled. + /// + [JsonProperty("is_canceled")] + public bool IsCanceled { get; set; } + + /// + /// The time zone where the broadcast takes place. + /// + [JsonProperty("timezone")] + public string Timezone { get; set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Schedule/UpdateChannelStreamSegment/UpdateChannelStreamSegmentResponse.cs b/TwitchLib.Api.Helix.Models/Schedule/UpdateChannelStreamSegment/UpdateChannelStreamSegmentResponse.cs index f4f06fa5..1f07ec23 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/UpdateChannelStreamSegment/UpdateChannelStreamSegmentResponse.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/UpdateChannelStreamSegment/UpdateChannelStreamSegmentResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Schedule.UpdateChannelStreamSegment +namespace TwitchLib.Api.Helix.Models.Schedule.UpdateChannelStreamSegment; + +/// +/// Update channel stream segment response object. +/// +public class UpdateChannelStreamSegmentResponse { - public class UpdateChannelStreamSegmentResponse - { - [JsonProperty("data")] - public ChannelStreamSchedule Schedule { get; protected set; } - } + /// + /// The broadcaster’s streaming schedule. + /// + [JsonProperty("data")] + public ChannelStreamSchedule Schedule { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Schedule/Vacation.cs b/TwitchLib.Api.Helix.Models/Schedule/Vacation.cs index e0c1ace2..89d2f028 100644 --- a/TwitchLib.Api.Helix.Models/Schedule/Vacation.cs +++ b/TwitchLib.Api.Helix.Models/Schedule/Vacation.cs @@ -1,13 +1,22 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Schedule +namespace TwitchLib.Api.Helix.Models.Schedule; + +/// +/// The dates when the broadcaster is on vacation and not streaming. +/// +public class Vacation { - public class Vacation - { - [JsonProperty("start_time")] - public DateTime StartTime { get; protected set; } - [JsonProperty("end_time")] - public DateTime EndTime { get; protected set; } - } + /// + /// The UTC date and time (in RFC3339 format) of when the broadcaster’s vacation starts. + /// + [JsonProperty("start_time")] + public DateTime StartTime { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the broadcaster’s vacation ends. + /// + [JsonProperty("end_time")] + public DateTime EndTime { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Search/Channel.cs b/TwitchLib.Api.Helix.Models/Search/Channel.cs index bc43179a..2d8615ec 100644 --- a/TwitchLib.Api.Helix.Models/Search/Channel.cs +++ b/TwitchLib.Api.Helix.Models/Search/Channel.cs @@ -2,33 +2,83 @@ using System.Collections.Generic; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Search +namespace TwitchLib.Api.Helix.Models.Search; + +/// +/// A channel. +/// +public class Channel { - public class Channel - { - [JsonProperty(PropertyName = "game_id")] - public string GameId { get; protected set; } - [JsonProperty(PropertyName = "game_name")] - public string GameName { get; protected set; } - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - [JsonProperty(PropertyName = "display_name")] - public string DisplayName { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_language")] - public string BroadcasterLanguage { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - [JsonProperty(PropertyName = "thumbnail_url")] - public string ThumbnailUrl { get; protected set; } - [JsonProperty(PropertyName = "is_live")] - public bool IsLive { get; protected set; } - [JsonProperty(PropertyName = "started_at")] - public DateTime? StartedAt { get; protected set; } - [JsonProperty(PropertyName = "tag_ids")] - public List TagIds { get; protected set; } - [JsonProperty(PropertyName = "tags")] - public List Tags { get; protected set; } - } + /// + /// The ID of the game that the broadcaster is playing or last played. + /// + [JsonProperty(PropertyName = "game_id")] + public string GameId { get; protected set; } + + /// + /// The name of the game that the broadcaster is playing or last played. + /// + [JsonProperty(PropertyName = "game_name")] + public string GameName { get; protected set; } + + /// + /// An ID that uniquely identifies the channel (this is the broadcaster’s ID). + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The broadcaster’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "display_name")] + public string DisplayName { get; protected set; } + + /// + /// The ISO 639-1 two-letter language code of the language used by the broadcaster. + /// + [JsonProperty(PropertyName = "broadcaster_language")] + public string BroadcasterLanguage { get; protected set; } + + /// + /// The stream’s title. Is an empty string if the broadcaster didn’t set it. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// A URL to a thumbnail of the broadcaster’s profile image. + /// + [JsonProperty(PropertyName = "thumbnail_url")] + public string ThumbnailUrl { get; protected set; } + + /// + /// A Boolean value that determines whether the broadcaster is streaming live. + /// + [JsonProperty(PropertyName = "is_live")] + public bool IsLive { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the broadcaster started streaming. + /// + [JsonProperty(PropertyName = "started_at")] + public DateTime? StartedAt { get; protected set; } + + /// + /// IMPORTANT As of February 28, 2023, this field is deprecated and returns only an empty array. + /// + [Obsolete] + [JsonProperty(PropertyName = "tag_ids")] + public List TagIds { get; protected set; } + + /// + /// The tags applied to the channel. + /// + [JsonProperty(PropertyName = "tags")] + public List Tags { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Search/SearchCategoriesResponse.cs b/TwitchLib.Api.Helix.Models/Search/SearchCategoriesResponse.cs index 793fbdad..7ca3a3b2 100644 --- a/TwitchLib.Api.Helix.Models/Search/SearchCategoriesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Search/SearchCategoriesResponse.cs @@ -1,14 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -using TwitchLib.Api.Helix.Models.Games; -namespace TwitchLib.Api.Helix.Models.Search +namespace TwitchLib.Api.Helix.Models.Search; + +/// +/// Search categories response object. +/// +public class SearchCategoriesResponse { - public class SearchCategoriesResponse - { - [JsonProperty(PropertyName = "data")] - public Game[] Games { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of games or categories that match the query. The list is empty if there are no matches. + /// + [JsonProperty(PropertyName = "data")] + public Game[] Games { get; protected set; } + + /// + /// + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Search/SearchChannelsResponse.cs b/TwitchLib.Api.Helix.Models/Search/SearchChannelsResponse.cs index c3e635f7..7a31aa2d 100644 --- a/TwitchLib.Api.Helix.Models/Search/SearchChannelsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Search/SearchChannelsResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Search +namespace TwitchLib.Api.Helix.Models.Search; + +/// +/// Search channels response object. +/// +public class SearchChannelsResponse { - public class SearchChannelsResponse - { - [JsonProperty(PropertyName = "data")] - public Channel[] Channels { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of channels that match the query. + /// + [JsonProperty(PropertyName = "data")] + public Channel[] Channels { get; protected set; } + + /// + /// The information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreateStreamMarkerRequest.cs b/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreateStreamMarkerRequest.cs index 9a5b777b..66715354 100644 --- a/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreateStreamMarkerRequest.cs +++ b/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreateStreamMarkerRequest.cs @@ -1,13 +1,24 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.CreateStreamMarker +namespace TwitchLib.Api.Helix.Models.Streams.CreateStreamMarker; + +/// +/// Create stream marker request object. +/// +[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] +public class CreateStreamMarkerRequest { - [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] - public class CreateStreamMarkerRequest - { - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; set; } - [JsonProperty(PropertyName = "description")] - public string Description { get; set; } - } + /// + /// The ID of the broadcaster that’s streaming content. + /// This ID must match the user ID in the access token or the user in the access token must be one of the broadcaster’s editors. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; set; } + + /// + /// A short description of the marker to help the user remember why they marked the location. + /// The maximum length of the description is 140 characters. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreateStreamMarkerResponse.cs b/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreateStreamMarkerResponse.cs index 8ed40f63..2ea8b2f4 100644 --- a/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreateStreamMarkerResponse.cs +++ b/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreateStreamMarkerResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.CreateStreamMarker +namespace TwitchLib.Api.Helix.Models.Streams.CreateStreamMarker; + +/// +/// Create stream marker response object. +/// +public class CreateStreamMarkerResponse { - public class CreateStreamMarkerResponse - { - [JsonProperty(PropertyName = "data")] - public CreatedMarker[] Data { get; protected set; } - } + /// + /// A list that contains the single marker that you added. + /// + [JsonProperty(PropertyName = "data")] + public CreatedMarker[] Marker { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreatedMarker.cs b/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreatedMarker.cs index 5dc5d610..ba481bb0 100644 --- a/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreatedMarker.cs +++ b/TwitchLib.Api.Helix.Models/Streams/CreateStreamMarker/CreatedMarker.cs @@ -1,17 +1,34 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.CreateStreamMarker +namespace TwitchLib.Api.Helix.Models.Streams.CreateStreamMarker; + +/// +/// A single marker that you added. +/// +public class CreatedMarker { - public class CreatedMarker - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "created_at")] - public DateTime CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "description")] - public string Description { get; protected set; } - [JsonProperty(PropertyName = "position_seconds")] - public int PositionSeconds { get; protected set; } - } + /// + /// An ID that identifies this marker. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the user created the marker. + /// + [JsonProperty(PropertyName = "created_at")] + public DateTime CreatedAt { get; protected set; } + + /// + /// A description that the user gave the marker to help them remember why they marked the location. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; protected set; } + + /// + /// The relative offset (in seconds) of the marker from the beginning of the stream. + /// + [JsonProperty(PropertyName = "position_seconds")] + public int PositionSeconds { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetFollowedStreams/GetFollowedStreamsResponse.cs b/TwitchLib.Api.Helix.Models/Streams/GetFollowedStreams/GetFollowedStreamsResponse.cs index c690b776..0dbf5f8d 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetFollowedStreams/GetFollowedStreamsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetFollowedStreams/GetFollowedStreamsResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Streams.GetFollowedStreams +namespace TwitchLib.Api.Helix.Models.Streams.GetFollowedStreams; + +/// +/// Get followed streams response object. +/// +public class GetFollowedStreamsResponse { - public class GetFollowedStreamsResponse - { - [JsonProperty(PropertyName = "data")] - public Stream[] Data { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of live streams of broadcasters that the specified user follows. + /// + [JsonProperty(PropertyName = "data")] + public Stream[] Data { get; protected set; } + + /// + /// The information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetFollowedStreams/Stream.cs b/TwitchLib.Api.Helix.Models/Streams/GetFollowedStreams/Stream.cs index b009044d..7aed603f 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetFollowedStreams/Stream.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetFollowedStreams/Stream.cs @@ -1,37 +1,95 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.GetFollowedStreams +namespace TwitchLib.Api.Helix.Models.Streams.GetFollowedStreams; + +/// +/// A live stream of broadcaster's that the specified user follows. +/// +public class Stream { - public class Stream - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "game_id")] - public string GameId { get; protected set; } - [JsonProperty(PropertyName = "game_name")] - public string GameName { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - [JsonProperty(PropertyName = "viewer_count")] - public int ViewerCount { get; protected set; } - [JsonProperty(PropertyName = "started_at")] - public DateTime StartedAt { get; protected set; } - [JsonProperty(PropertyName = "language")] - public string Language { get; protected set; } - [JsonProperty(PropertyName = "thumbnail_url")] - public string ThumbnailUrl { get; protected set; } - [JsonProperty(PropertyName = "tag_ids")] - public string[] TagIds { get; protected set; } - [JsonProperty(PropertyName = "tags")] - public string[] Tags { get; protected set; } - } + /// + /// An ID that identifies the stream. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The ID of the user that’s broadcasting the stream. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The ID of the category or game being played. + /// + [JsonProperty(PropertyName = "game_id")] + public string GameId { get; protected set; } + + /// + /// The name of the category or game being played. + /// + [JsonProperty(PropertyName = "game_name")] + public string GameName { get; protected set; } + + /// + /// The type of stream. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } + + /// + /// The stream’s title. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// The number of users watching the stream. + /// + [JsonProperty(PropertyName = "viewer_count")] + public int ViewerCount { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the broadcast began. + /// + [JsonProperty(PropertyName = "started_at")] + public DateTime StartedAt { get; protected set; } + + /// + /// The language that the stream uses. + /// + [JsonProperty(PropertyName = "language")] + public string Language { get; protected set; } + + /// + /// A URL to an image of a frame from the last 5 minutes of the stream. + /// + [JsonProperty(PropertyName = "thumbnail_url")] + public string ThumbnailUrl { get; protected set; } + + /// + /// IMPORTANT As of February 28, 2023, this field is deprecated and returns only an empty array. + /// + [Obsolete] + [JsonProperty(PropertyName = "tag_ids")] + public string[] TagIds { get; protected set; } + + /// + /// The tags applied to the stream. + /// + [JsonProperty(PropertyName = "tags")] + public string[] Tags { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreamKey/GetStreamKeyResponse.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreamKey/GetStreamKeyResponse.cs index 7a8513cc..4a717626 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreamKey/GetStreamKeyResponse.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreamKey/GetStreamKeyResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreamKey +namespace TwitchLib.Api.Helix.Models.Streams.GetStreamKey; + +/// +/// Get stream key response object. +/// +public class GetStreamKeyResponse { - public class GetStreamKeyResponse - { - [JsonProperty(PropertyName = "data")] - public StreamKey[] Streams { get; protected set; } - } + /// + /// A list that contains the channel’s stream key. + /// + [JsonProperty(PropertyName = "data")] + public StreamKey[] Streams { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreamKey/StreamKey.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreamKey/StreamKey.cs index c70e8572..b8f4d07d 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreamKey/StreamKey.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreamKey/StreamKey.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreamKey +namespace TwitchLib.Api.Helix.Models.Streams.GetStreamKey; + +/// +/// The channel’s stream key. +/// +public class StreamKey { - public class StreamKey - { - [JsonProperty(PropertyName = "stream_key")] - public string Key { get; protected set; } - } + /// + /// The channel’s stream key. + /// + [JsonProperty(PropertyName = "stream_key")] + public string Key { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/GetStreamMarkersResponse.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/GetStreamMarkersResponse.cs index 85dd7302..27807adc 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/GetStreamMarkersResponse.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/GetStreamMarkersResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreamMarkers +namespace TwitchLib.Api.Helix.Models.Streams.GetStreamMarkers; + +/// +/// Get stream markers response object. +/// +public class GetStreamMarkersResponse { - public class GetStreamMarkersResponse - { - [JsonProperty(PropertyName = "data")] - public UserMarkerListing[] Data { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of markers grouped by the user that created the marks. + /// + [JsonProperty(PropertyName = "data")] + public UserMarkerListing[] Data { get; protected set; } + + /// + /// The information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/Marker.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/Marker.cs index 1114da42..90d0506b 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/Marker.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/Marker.cs @@ -1,19 +1,40 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreamMarkers +namespace TwitchLib.Api.Helix.Models.Streams.GetStreamMarkers; + +/// +/// A marker in a video. +/// +public class Marker { - public class Marker - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "created_at")] - public DateTime CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "description")] - public string Description { get; protected set; } - [JsonProperty(PropertyName = "position_seconds")] - public int PositionSeconds { get; protected set; } - [JsonProperty(PropertyName = "URL")] - public string Url { get; protected set; } - } + /// + /// An ID that identifies this marker. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the user created the marker. + /// + [JsonProperty(PropertyName = "created_at")] + public DateTime CreatedAt { get; protected set; } + + /// + /// The description that the user gave the marker to help them remember why they marked the location. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; protected set; } + + /// + /// The relative offset (in seconds) of the marker from the beginning of the stream. + /// + [JsonProperty(PropertyName = "position_seconds")] + public int PositionSeconds { get; protected set; } + + /// + /// A URL that opens the video in Twitch Highlighter. + /// + [JsonProperty(PropertyName = "URL")] + public string Url { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/UserMarkerListing.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/UserMarkerListing.cs index be20c557..2225fb79 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/UserMarkerListing.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/UserMarkerListing.cs @@ -1,16 +1,33 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreamMarkers +namespace TwitchLib.Api.Helix.Models.Streams.GetStreamMarkers; + +/// +/// A marker grouped by the user that created the marks. +/// +public class UserMarkerListing { - public class UserMarkerListing - { - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "username")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "videos")] - public Video[] Videos { get; protected set; } - } + /// + /// The ID of the user that created the marker. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// A list of videos that contain marker. + /// + [JsonProperty(PropertyName = "videos")] + public Video[] Videos { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/Video.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/Video.cs index 829c0f7a..623798f1 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/Video.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreamMarkers/Video.cs @@ -1,12 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreamMarkers +namespace TwitchLib.Api.Helix.Models.Streams.GetStreamMarkers; + +/// +/// A video that contains markers. +/// +public class Video { - public class Video - { - [JsonProperty(PropertyName = "video_id")] - public string VideoId { get; protected set; } - [JsonProperty(PropertyName = "markers")] - public Marker[] Markers { get; protected set; } - } + /// + /// An ID that identifies this video. + /// + [JsonProperty(PropertyName = "video_id")] + public string VideoId { get; protected set; } + + /// + /// The list of markers in this video. + /// + [JsonProperty(PropertyName = "markers")] + public Marker[] Markers { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreams/GetStreamsResponse.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreams/GetStreamsResponse.cs index dd4b420b..3de6f85b 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreams/GetStreamsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreams/GetStreamsResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreams +namespace TwitchLib.Api.Helix.Models.Streams.GetStreams; + +/// +/// Get streams response object. +/// +public class GetStreamsResponse { - public class GetStreamsResponse - { - [JsonProperty(PropertyName = "data")] - public Stream[] Streams { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of streams. + /// + [JsonProperty(PropertyName = "data")] + public Stream[] Streams { get; protected set; } + + /// + /// The information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreams/GetStreamsType.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreams/GetStreamsType.cs index 897574d7..43908f2c 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreams/GetStreamsType.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreams/GetStreamsType.cs @@ -2,21 +2,20 @@ using System.Collections.Generic; using System.Text; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreams +namespace TwitchLib.Api.Helix.Models.Streams.GetStreams; + +/// +/// Stream type to select when using GetStreamsAsync +/// +public static class GetStreamsType { /// - /// Stream type to select when using GetStreamsAsync + /// Filters for all stream types. /// - public static class GetStreamsType - { - /// - /// Filters for all stream types. - /// - public const string All = "all"; + public const string All = "all"; - /// - /// Filters for actual live streams. - /// - public const string Live = "live"; - } + /// + /// Filters for actual live streams. + /// + public const string Live = "live"; } diff --git a/TwitchLib.Api.Helix.Models/Streams/GetStreams/Stream.cs b/TwitchLib.Api.Helix.Models/Streams/GetStreams/Stream.cs index 84968acf..52efc7e8 100644 --- a/TwitchLib.Api.Helix.Models/Streams/GetStreams/Stream.cs +++ b/TwitchLib.Api.Helix.Models/Streams/GetStreams/Stream.cs @@ -1,41 +1,101 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Streams.GetStreams +namespace TwitchLib.Api.Helix.Models.Streams.GetStreams; + +/// +/// +/// +public class Stream { - public class Stream - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "game_id")] - public string GameId { get; protected set; } - [JsonProperty(PropertyName = "game_name")] - public string GameName { get; protected set; } - [JsonProperty(PropertyName = "community_ids")] - public string[] CommunityIds { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - [JsonProperty(PropertyName = "tags")] - public string[] Tags { get; protected set; } - [JsonProperty(PropertyName = "viewer_count")] - public int ViewerCount { get; protected set; } - [JsonProperty(PropertyName = "started_at")] - public DateTime StartedAt { get; protected set; } - [JsonProperty(PropertyName = "language")] - public string Language { get; protected set; } - [JsonProperty(PropertyName = "thumbnail_url")] - public string ThumbnailUrl { get; protected set; } - [JsonProperty(PropertyName = "tag_ids")] - public string[] TagIds { get; protected set; } - [JsonProperty(PropertyName = "is_mature")] - public bool IsMature { get; protected set; } - } + /// + /// An ID that identifies the stream. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The ID of the user that’s broadcasting the stream. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The ID of the category or game being played. + /// + [JsonProperty(PropertyName = "game_id")] + public string GameId { get; protected set; } + + /// + /// The name of the category or game being played. + /// + [JsonProperty(PropertyName = "game_name")] + public string GameName { get; protected set; } + + /// + /// The type of stream. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } + + /// + /// The stream’s title. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// The tags applied to the stream. + /// + [JsonProperty(PropertyName = "tags")] + public string[] Tags { get; protected set; } + + /// + /// The number of users watching the stream. + /// + [JsonProperty(PropertyName = "viewer_count")] + public int ViewerCount { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the broadcast began. + /// + [JsonProperty(PropertyName = "started_at")] + public DateTime StartedAt { get; protected set; } + + /// + /// The language that the stream uses. + /// + [JsonProperty(PropertyName = "language")] + public string Language { get; protected set; } + + /// + /// A URL to an image of a frame from the last 5 minutes of the stream. + /// + [JsonProperty(PropertyName = "thumbnail_url")] + public string ThumbnailUrl { get; protected set; } + + /// + /// IMPORTANT As of February 28, 2023, this field is deprecated and returns only an empty array. + /// + [Obsolete] + [JsonProperty(PropertyName = "tag_ids")] + public string[] TagIds { get; protected set; } + + /// + /// A Boolean value that indicates whether the stream is meant for mature audiences. + /// + [JsonProperty(PropertyName = "is_mature")] + public bool IsMature { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Subscriptions/CheckUserSubscriptionResponse.cs b/TwitchLib.Api.Helix.Models/Subscriptions/CheckUserSubscriptionResponse.cs index f7ee9e40..4b9cd2d6 100644 --- a/TwitchLib.Api.Helix.Models/Subscriptions/CheckUserSubscriptionResponse.cs +++ b/TwitchLib.Api.Helix.Models/Subscriptions/CheckUserSubscriptionResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Subscriptions +namespace TwitchLib.Api.Helix.Models.Subscriptions; + +/// +/// Get user subscription response object. +/// +public class CheckUserSubscriptionResponse { - public class CheckUserSubscriptionResponse - { - [JsonProperty(PropertyName = "data")] - public Subscription[] Data { get; protected set; } - } + /// + /// A list that contains a single object with information about the user’s subscription. + /// + [JsonProperty(PropertyName = "data")] + public Subscription[] Data { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Subscriptions/GetBroadcasterSubscriptionResponse.cs b/TwitchLib.Api.Helix.Models/Subscriptions/GetBroadcasterSubscriptionResponse.cs index 79d68a61..8c434976 100644 --- a/TwitchLib.Api.Helix.Models/Subscriptions/GetBroadcasterSubscriptionResponse.cs +++ b/TwitchLib.Api.Helix.Models/Subscriptions/GetBroadcasterSubscriptionResponse.cs @@ -1,17 +1,34 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Subscriptions +namespace TwitchLib.Api.Helix.Models.Subscriptions; + +/// +/// Get broadcaster subsriptions response object. +/// +public class GetBroadcasterSubscriptionsResponse { - public class GetBroadcasterSubscriptionsResponse - { - [JsonProperty(PropertyName = "data")] - public Subscription[] Data { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - [JsonProperty(PropertyName = "total")] - public int Total { get; protected set; } - [JsonProperty(PropertyName = "points")] - public int Points { get; protected set; } - } + /// + /// The list of users that subscribe to the broadcaster. + /// + [JsonProperty(PropertyName = "data")] + public Subscription[] Data { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } + + /// + /// The total number of users that subscribe to this broadcaster. + /// + [JsonProperty(PropertyName = "total")] + public int Total { get; protected set; } + + /// + /// The current number of subscriber points earned by this broadcaster. + /// + [JsonProperty(PropertyName = "points")] + public int Points { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Subscriptions/GetUserSubscriptionsResponse.cs b/TwitchLib.Api.Helix.Models/Subscriptions/GetUserSubscriptionsResponse.cs index 08653d86..a28ef7ff 100644 --- a/TwitchLib.Api.Helix.Models/Subscriptions/GetUserSubscriptionsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Subscriptions/GetUserSubscriptionsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Subscriptions +namespace TwitchLib.Api.Helix.Models.Subscriptions; + +/// +/// Get user subscriptions response object. +/// +public class GetUserSubscriptionsResponse { - public class GetUserSubscriptionsResponse - { - [JsonProperty(PropertyName = "data")] - public Subscription[] Data { get; protected set; } - } + /// + /// The list of subscriptions for the user. + /// + [JsonProperty(PropertyName = "data")] + public Subscription[] Data { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Subscriptions/Subscription.cs b/TwitchLib.Api.Helix.Models/Subscriptions/Subscription.cs index ede09094..7ec6d938 100644 --- a/TwitchLib.Api.Helix.Models/Subscriptions/Subscription.cs +++ b/TwitchLib.Api.Helix.Models/Subscriptions/Subscription.cs @@ -1,32 +1,81 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Subscriptions +namespace TwitchLib.Api.Helix.Models.Subscriptions; + +/// +/// Information about the user’s subscription. +/// +public class Subscription { - public class Subscription - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - [JsonProperty(PropertyName = "is_gift")] - public bool IsGift { get; protected set; } - [JsonProperty(PropertyName = "tier")] - public string Tier { get; protected set; } - [JsonProperty(PropertyName = "plan_name")] - public string PlanName { get; protected set; } - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "gifter_id")] - public string GiftertId { get; protected set; } - [JsonProperty(PropertyName = "gifter_name")] - public string GifterName { get; protected set; } - [JsonProperty(PropertyName = "gifter_login")] - public string GifterLogin { get; protected set; } - } + /// + /// An ID that identifies the broadcaster. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } + + /// + /// A Boolean value that determines whether the subscription is a gift subscription. + /// + [JsonProperty(PropertyName = "is_gift")] + public bool IsGift { get; protected set; } + + /// + /// The type of subscription. + /// + [JsonProperty(PropertyName = "tier")] + public string Tier { get; protected set; } + + /// + /// The name of the subscription. + /// + [JsonProperty(PropertyName = "plan_name")] + public string PlanName { get; protected set; } + + /// + /// An ID that identifies the subscribing user. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The user’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The ID of the user that gifted the subscription. + /// + [JsonProperty(PropertyName = "gifter_id")] + public string GiftertId { get; protected set; } + + /// + /// The gifter’s login name. + /// + [JsonProperty(PropertyName = "gifter_name")] + public string GifterName { get; protected set; } + + /// + /// The gifter’s display name. + /// + [JsonProperty(PropertyName = "gifter_login")] + public string GifterLogin { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Teams/ChannelTeam.cs b/TwitchLib.Api.Helix.Models/Teams/ChannelTeam.cs index 01c6ab4f..57a3b1d5 100644 --- a/TwitchLib.Api.Helix.Models/Teams/ChannelTeam.cs +++ b/TwitchLib.Api.Helix.Models/Teams/ChannelTeam.cs @@ -1,14 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Teams +namespace TwitchLib.Api.Helix.Models.Teams; + +/// +/// A team the broadcaster is a member of. +/// +public class ChannelTeam : TeamBase { - public class ChannelTeam : TeamBase - { - [JsonProperty(PropertyName = "broadcaster_id")] - public string BroadcasterId { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_name")] - public string BroadcasterName { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_login")] - public string BroadcasterLogin { get; protected set; } - } + /// + /// An ID that identifies the broadcaster. + /// + [JsonProperty(PropertyName = "broadcaster_id")] + public string BroadcasterId { get; protected set; } + + /// + /// The broadcaster’s display name. + /// + [JsonProperty(PropertyName = "broadcaster_name")] + public string BroadcasterName { get; protected set; } + + /// + /// The broadcaster’s login name. + /// + [JsonProperty(PropertyName = "broadcaster_login")] + public string BroadcasterLogin { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Teams/GetChannelTeamsResponse.cs b/TwitchLib.Api.Helix.Models/Teams/GetChannelTeamsResponse.cs index 8eda1471..44f6563c 100644 --- a/TwitchLib.Api.Helix.Models/Teams/GetChannelTeamsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Teams/GetChannelTeamsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Teams +namespace TwitchLib.Api.Helix.Models.Teams; + +/// +/// Get channel teams response object. +/// +public class GetChannelTeamsResponse { - public class GetChannelTeamsResponse - { - [JsonProperty(PropertyName = "data")] - public ChannelTeam[] ChannelTeams { get; protected set; } - } + /// + /// The list of teams that the broadcaster is a member of. + /// + [JsonProperty(PropertyName = "data")] + public ChannelTeam[] ChannelTeams { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Teams/GetTeamsResponse.cs b/TwitchLib.Api.Helix.Models/Teams/GetTeamsResponse.cs index 2cc404ff..e2dca379 100644 --- a/TwitchLib.Api.Helix.Models/Teams/GetTeamsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Teams/GetTeamsResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Teams +namespace TwitchLib.Api.Helix.Models.Teams; + +/// +/// Get teams response object. +/// +public class GetTeamsResponse { - public class GetTeamsResponse - { - [JsonProperty(PropertyName = "data")] - public Team[] Teams { get; protected set; } - } + /// + /// A list that contains the single team that you requested. + /// + [JsonProperty(PropertyName = "data")] + public Team[] Teams { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Teams/Team.cs b/TwitchLib.Api.Helix.Models/Teams/Team.cs index c95266fd..95a5629a 100644 --- a/TwitchLib.Api.Helix.Models/Teams/Team.cs +++ b/TwitchLib.Api.Helix.Models/Teams/Team.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Teams +namespace TwitchLib.Api.Helix.Models.Teams; + +/// +/// A Team. +/// +public class Team : TeamBase { - public class Team : TeamBase - { - [JsonProperty(PropertyName = "users")] - public TeamMember[] Users { get; protected set; } - } + /// + /// The list of team members. + /// + [JsonProperty(PropertyName = "users")] + public TeamMember[] Users { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Teams/TeamBase.cs b/TwitchLib.Api.Helix.Models/Teams/TeamBase.cs index f68357b9..c5165876 100644 --- a/TwitchLib.Api.Helix.Models/Teams/TeamBase.cs +++ b/TwitchLib.Api.Helix.Models/Teams/TeamBase.cs @@ -1,25 +1,64 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Teams +namespace TwitchLib.Api.Helix.Models.Teams; + +/// +/// Team Base model +/// +public abstract class TeamBase { - public abstract class TeamBase - { - [JsonProperty(PropertyName = "banner")] - public string Banner { get; protected set; } - [JsonProperty(PropertyName = "background_image_url")] - public string BackgroundImageUrl { get; protected set; } - [JsonProperty(PropertyName = "created_at")] - public string CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "updated_at")] - public string UpdatedAt { get; protected set; } - public string Info { get; protected set; } - [JsonProperty(PropertyName = "thumbnail_url")] - public string ThumbnailUrl { get; protected set; } - [JsonProperty(PropertyName = "team_name")] - public string TeamName { get; protected set; } - [JsonProperty(PropertyName = "team_display_name")] - public string TeamDisplayName { get; protected set; } - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - } + /// + /// A URL to the team’s banner. + /// + [JsonProperty(PropertyName = "banner")] + public string Banner { get; protected set; } + + /// + /// A URL to the team’s background image. + /// + [JsonProperty(PropertyName = "background_image_url")] + public string BackgroundImageUrl { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of when the team was created. + /// + [JsonProperty(PropertyName = "created_at")] + public string CreatedAt { get; protected set; } + + /// + /// The UTC date and time (in RFC3339 format) of the last time the team was updated. + /// + [JsonProperty(PropertyName = "updated_at")] + public string UpdatedAt { get; protected set; } + + /// + /// The team’s description. + /// The description may contain formatting such as Markdown, HTML, newline (\n) characters, etc. + /// + [JsonProperty(PropertyName = "info")] + public string Info { get; protected set; } + + /// + /// A URL to a thumbnail image of the team’s logo. + /// + [JsonProperty(PropertyName = "thumbnail_url")] + public string ThumbnailUrl { get; protected set; } + + /// + /// The team’s name. + /// + [JsonProperty(PropertyName = "team_name")] + public string TeamName { get; protected set; } + + /// + /// The team’s display name. + /// + [JsonProperty(PropertyName = "team_display_name")] + public string TeamDisplayName { get; protected set; } + + /// + /// An ID that identifies the team. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Teams/TeamMember.cs b/TwitchLib.Api.Helix.Models/Teams/TeamMember.cs index ec6c80ed..3303ee24 100644 --- a/TwitchLib.Api.Helix.Models/Teams/TeamMember.cs +++ b/TwitchLib.Api.Helix.Models/Teams/TeamMember.cs @@ -1,14 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Teams +namespace TwitchLib.Api.Helix.Models.Teams; + +/// +/// A team member. +/// +public class TeamMember { - public class TeamMember - { - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - } + /// + /// An ID that identifies the team member. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The team member’s display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The team member’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Users/GetUserActiveExtensions/GetUserActiveExtensionsResponse.cs b/TwitchLib.Api.Helix.Models/Users/GetUserActiveExtensions/GetUserActiveExtensionsResponse.cs index ff428d76..0283e9db 100644 --- a/TwitchLib.Api.Helix.Models/Users/GetUserActiveExtensions/GetUserActiveExtensionsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Users/GetUserActiveExtensions/GetUserActiveExtensionsResponse.cs @@ -1,11 +1,16 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Users.Internal; -namespace TwitchLib.Api.Helix.Models.Users.GetUserActiveExtensions +namespace TwitchLib.Api.Helix.Models.Users.GetUserActiveExtensions; + +/// +/// Get user active extensions response object. +/// +public class GetUserActiveExtensionsResponse { - public class GetUserActiveExtensionsResponse - { - [JsonProperty(PropertyName = "data")] - public ActiveExtensions Data { get; protected set; } - } + /// + /// The active extensions that the broadcaster has installed. + /// + [JsonProperty(PropertyName = "data")] + public ActiveExtensions Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/GetUserBlockList/BlockedUser.cs b/TwitchLib.Api.Helix.Models/Users/GetUserBlockList/BlockedUser.cs index c2832c39..d8991834 100644 --- a/TwitchLib.Api.Helix.Models/Users/GetUserBlockList/BlockedUser.cs +++ b/TwitchLib.Api.Helix.Models/Users/GetUserBlockList/BlockedUser.cs @@ -1,14 +1,27 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Users.GetUserBlockList +namespace TwitchLib.Api.Helix.Models.Users.GetUserBlockList; + +/// +/// A block user. +/// +public class BlockedUser { - public class BlockedUser - { - [JsonProperty(PropertyName = "user_id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "display_name")] - public string DisplayName { get; protected set; } - } + /// + /// An ID that identifies the blocked user. + /// + [JsonProperty(PropertyName = "user_id")] + public string Id { get; protected set; } + + /// + /// The blocked user’s login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The blocked user’s display name. + /// + [JsonProperty(PropertyName = "display_name")] + public string DisplayName { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/GetUserBlockList/GetUserBlockListResponse.cs b/TwitchLib.Api.Helix.Models/Users/GetUserBlockList/GetUserBlockListResponse.cs index 47b7068b..4b20994a 100644 --- a/TwitchLib.Api.Helix.Models/Users/GetUserBlockList/GetUserBlockListResponse.cs +++ b/TwitchLib.Api.Helix.Models/Users/GetUserBlockList/GetUserBlockListResponse.cs @@ -1,10 +1,16 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Users.GetUserBlockList +namespace TwitchLib.Api.Helix.Models.Users.GetUserBlockList; + +/// +/// Get user block list response object. +/// +public class GetUserBlockListResponse { - public class GetUserBlockListResponse - { - [JsonProperty(PropertyName = "data")] - public BlockedUser[] Data { get; protected set; } - } + /// + /// The list of blocked users. + /// The list is in descending order by when the user was blocked. + /// + [JsonProperty(PropertyName = "data")] + public BlockedUser[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/GetUserExtensions/GetUserExtensionsResponse.cs b/TwitchLib.Api.Helix.Models/Users/GetUserExtensions/GetUserExtensionsResponse.cs index 259d70cc..8a101dea 100644 --- a/TwitchLib.Api.Helix.Models/Users/GetUserExtensions/GetUserExtensionsResponse.cs +++ b/TwitchLib.Api.Helix.Models/Users/GetUserExtensions/GetUserExtensionsResponse.cs @@ -1,11 +1,16 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Users.Internal; -namespace TwitchLib.Api.Helix.Models.Users.GetUserExtensions +namespace TwitchLib.Api.Helix.Models.Users.GetUserExtensions; + +/// +/// Get user extensions response object. +/// +public class GetUserExtensionsResponse { - public class GetUserExtensionsResponse - { - [JsonProperty(PropertyName = "data")] - public UserExtension[] Users { get; protected set; } - } + /// + /// The list of extensions that the user has installed. + /// + [JsonProperty(PropertyName = "data")] + public UserExtension[] Users { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/GetUsers/GetUsersResponse.cs b/TwitchLib.Api.Helix.Models/Users/GetUsers/GetUsersResponse.cs index 0231bcd0..c8b32aa0 100644 --- a/TwitchLib.Api.Helix.Models/Users/GetUsers/GetUsersResponse.cs +++ b/TwitchLib.Api.Helix.Models/Users/GetUsers/GetUsersResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Users.GetUsers +namespace TwitchLib.Api.Helix.Models.Users.GetUsers; + +/// +/// Get users response object. +/// +public class GetUsersResponse { - public class GetUsersResponse - { - [JsonProperty(PropertyName = "data")] - public User[] Users { get; protected set; } - } + /// + /// The list of users. + /// + [JsonProperty(PropertyName = "data")] + public User[] Users { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/GetUsers/User.cs b/TwitchLib.Api.Helix.Models/Users/GetUsers/User.cs index 040b1894..afa463bc 100644 --- a/TwitchLib.Api.Helix.Models/Users/GetUsers/User.cs +++ b/TwitchLib.Api.Helix.Models/Users/GetUsers/User.cs @@ -1,31 +1,78 @@ using System; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Users.GetUsers +namespace TwitchLib.Api.Helix.Models.Users.GetUsers; + +/// +/// A user. +/// +public class User { - public class User - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "login")] - public string Login { get; protected set; } - [JsonProperty(PropertyName = "display_name")] - public string DisplayName { get; protected set; } - [JsonProperty(PropertyName = "created_at")] - public DateTime CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - [JsonProperty(PropertyName = "broadcaster_type")] - public string BroadcasterType { get; protected set; } - [JsonProperty(PropertyName = "description")] - public string Description { get; protected set; } - [JsonProperty(PropertyName = "profile_image_url")] - public string ProfileImageUrl { get; protected set; } - [JsonProperty(PropertyName = "offline_image_url")] - public string OfflineImageUrl { get; protected set; } - [JsonProperty(PropertyName = "view_count")] - public long ViewCount { get; protected set; } - [JsonProperty(PropertyName = "email")] - public string Email { get; protected set; } - } + /// + /// An ID that identifies the user. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The user�s login name. + /// + [JsonProperty(PropertyName = "login")] + public string Login { get; protected set; } + + /// + /// The user�s display name. + /// + [JsonProperty(PropertyName = "display_name")] + public string DisplayName { get; protected set; } + + /// + /// The UTC date and time that the user�s account was created. The timestamp is in RFC3339 format. + /// + [JsonProperty(PropertyName = "created_at")] + public DateTime CreatedAt { get; protected set; } + + /// + /// The type of user. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } + + /// + /// The type of broadcaster. + /// + [JsonProperty(PropertyName = "broadcaster_type")] + public string BroadcasterType { get; protected set; } + + /// + /// The user�s description of their channel. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; protected set; } + + /// + /// A URL to the user�s profile image. + /// + [JsonProperty(PropertyName = "profile_image_url")] + public string ProfileImageUrl { get; protected set; } + + /// + /// A URL to the user�s offline image. + /// + [JsonProperty(PropertyName = "offline_image_url")] + public string OfflineImageUrl { get; protected set; } + + /// + /// The number of times the user�s channel has been viewed. + /// + [Obsolete] + [JsonProperty(PropertyName = "view_count")] + public long ViewCount { get; protected set; } + + /// + /// The user�s verified email address. + /// The object includes this field only if the user access token includes the user:read:email scope. + /// + [JsonProperty(PropertyName = "email")] + public string Email { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/Internal/ActiveExtensions.cs b/TwitchLib.Api.Helix.Models/Users/Internal/ActiveExtensions.cs index 3690fcd0..86daa9a0 100644 --- a/TwitchLib.Api.Helix.Models/Users/Internal/ActiveExtensions.cs +++ b/TwitchLib.Api.Helix.Models/Users/Internal/ActiveExtensions.cs @@ -1,15 +1,28 @@ using System.Collections.Generic; using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Users.Internal +namespace TwitchLib.Api.Helix.Models.Users.Internal; + +/// +/// A active extension. +/// +public class ActiveExtensions { - public class ActiveExtensions - { - [JsonProperty(PropertyName = "panel")] - public Dictionary Panel { get; protected set; } - [JsonProperty(PropertyName = "overlay")] - public Dictionary Overlay { get; protected set; } - [JsonProperty(PropertyName = "component")] - public Dictionary Component { get; protected set; } - } + /// + /// A dictionary that contains the data for a panel extension. + /// + [JsonProperty(PropertyName = "panel")] + public Dictionary Panel { get; protected set; } + + /// + /// A dictionary that contains the data for a video-overlay extension. + /// + [JsonProperty(PropertyName = "overlay")] + public Dictionary Overlay { get; protected set; } + + /// + /// A dictionary that contains the data for a video-component extension. + /// + [JsonProperty(PropertyName = "component")] + public Dictionary Component { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/Internal/ExtensionSlot.cs b/TwitchLib.Api.Helix.Models/Users/Internal/ExtensionSlot.cs index f797ac9a..fe36f316 100644 --- a/TwitchLib.Api.Helix.Models/Users/Internal/ExtensionSlot.cs +++ b/TwitchLib.Api.Helix.Models/Users/Internal/ExtensionSlot.cs @@ -1,18 +1,37 @@ using TwitchLib.Api.Core.Enums; -namespace TwitchLib.Api.Helix.Models.Users.Internal -{ - public class ExtensionSlot - { - public ExtensionType Type; - public string Slot; - public UserExtensionState UserExtensionState; +namespace TwitchLib.Api.Helix.Models.Users.Internal; + +/// +/// Extension slot. +/// +public class ExtensionSlot +{ + /// + /// Type + /// + public ExtensionType Type; + + /// + /// Slot + /// + public string Slot; - public ExtensionSlot(ExtensionType type, string slot, UserExtensionState userExtensionState) - { - Type = type; - Slot = slot; - UserExtensionState = userExtensionState; - } + /// + /// User extension slot + /// + public UserExtensionState UserExtensionState; + + /// + /// Extension slot. + /// + /// Type + /// Slot + /// + public ExtensionSlot(ExtensionType type, string slot, UserExtensionState userExtensionState) + { + Type = type; + Slot = slot; + UserExtensionState = userExtensionState; } } diff --git a/TwitchLib.Api.Helix.Models/Users/Internal/UserActiveExtension.cs b/TwitchLib.Api.Helix.Models/Users/Internal/UserActiveExtension.cs index 8cea0d79..52eb1e31 100644 --- a/TwitchLib.Api.Helix.Models/Users/Internal/UserActiveExtension.cs +++ b/TwitchLib.Api.Helix.Models/Users/Internal/UserActiveExtension.cs @@ -1,20 +1,45 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Users.Internal +namespace TwitchLib.Api.Helix.Models.Users.Internal; + +/// +/// A active extension. +/// +public class UserActiveExtension { - public class UserActiveExtension - { - [JsonProperty(PropertyName = "active")] - public bool Active { get; protected set; } - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "version")] - public string Version { get; protected set; } - [JsonProperty(PropertyName = "name")] - public string Name { get; protected set; } - [JsonProperty(PropertyName = "x")] - public int X { get; protected set; } - [JsonProperty(PropertyName = "y")] - public int Y { get; protected set; } - } + /// + /// A Boolean value that determines the extension’s activation state. + /// + [JsonProperty(PropertyName = "active")] + public bool Active { get; protected set; } + + /// + /// An ID that identifies the extension. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The extension’s version. + /// + [JsonProperty(PropertyName = "version")] + public string Version { get; protected set; } + + /// + /// The extension’s name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; protected set; } + + /// + /// The x-coordinate where the extension is placed. + /// + [JsonProperty(PropertyName = "x")] + public int X { get; protected set; } + + /// + /// The y-coordinate where the extension is placed. + /// + [JsonProperty(PropertyName = "y")] + public int Y { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/Internal/UserExtension.cs b/TwitchLib.Api.Helix.Models/Users/Internal/UserExtension.cs index 9cffa8ae..d0272a0d 100644 --- a/TwitchLib.Api.Helix.Models/Users/Internal/UserExtension.cs +++ b/TwitchLib.Api.Helix.Models/Users/Internal/UserExtension.cs @@ -1,18 +1,39 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Users.Internal +namespace TwitchLib.Api.Helix.Models.Users.Internal; + +/// +/// A user extension. +/// +public class UserExtension { - public class UserExtension - { - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "version")] - public string Version { get; protected set; } - [JsonProperty(PropertyName = "name")] - public string Name { get; protected set; } - [JsonProperty(PropertyName = "can_activate")] - public bool CanActivate { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string[] Type { get; protected set; } - } + /// + /// An ID that identifies the extension. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The extension's version. + /// + [JsonProperty(PropertyName = "version")] + public string Version { get; protected set; } + + /// + /// The extension's name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; protected set; } + + /// + /// A Boolean value that determines whether the extension is configured and can be activated. + /// + [JsonProperty(PropertyName = "can_activate")] + public bool CanActivate { get; protected set; } + + /// + /// The extension types that you can activate for this extension. + /// + [JsonProperty(PropertyName = "type")] + public string[] Type { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Users/Internal/UserExtensionState.cs b/TwitchLib.Api.Helix.Models/Users/Internal/UserExtensionState.cs index 3757be30..14c3abc7 100644 --- a/TwitchLib.Api.Helix.Models/Users/Internal/UserExtensionState.cs +++ b/TwitchLib.Api.Helix.Models/Users/Internal/UserExtensionState.cs @@ -1,21 +1,40 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Users.Internal +namespace TwitchLib.Api.Helix.Models.Users.Internal; + +/// +/// User extension state. +/// +public class UserExtensionState { - public class UserExtensionState - { - [JsonProperty(PropertyName = "active")] - public bool Active { get; protected set; } - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "version")] - public string Version { get; protected set; } + /// + /// A Boolean value that determines the extension’s activation state. + /// + [JsonProperty(PropertyName = "active")] + public bool Active { get; protected set; } + + /// + /// An ID that identifies the extension. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } - public UserExtensionState(bool active, string id, string version) - { - Active = active; - Id = id; - Version = version; - } + /// + /// The extension’s version. + /// + [JsonProperty(PropertyName = "version")] + public string Version { get; protected set; } + + /// + /// User extension state. + /// + /// Active + /// Id + /// Version + public UserExtensionState(bool active, string id, string version) + { + Active = active; + Id = id; + Version = version; } } diff --git a/TwitchLib.Api.Helix.Models/Users/UpdateUserExtensions/UpdateUserExtensionsRequest.cs b/TwitchLib.Api.Helix.Models/Users/UpdateUserExtensions/UpdateUserExtensionsRequest.cs index 3608afe8..7c8beb25 100644 --- a/TwitchLib.Api.Helix.Models/Users/UpdateUserExtensions/UpdateUserExtensionsRequest.cs +++ b/TwitchLib.Api.Helix.Models/Users/UpdateUserExtensions/UpdateUserExtensionsRequest.cs @@ -2,15 +2,28 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Users.Internal; -namespace TwitchLib.Api.Helix.Models.Users.UpdateUserExtensions +namespace TwitchLib.Api.Helix.Models.Users.UpdateUserExtensions; + +/// +/// Update user extensions request object. +/// +public class UpdateUserExtensionsRequest { - public class UpdateUserExtensionsRequest - { - [JsonProperty(PropertyName = "panel")] - public Dictionary Panel { get; set; } - [JsonProperty(PropertyName = "component")] - public Dictionary Component { get; set; } - [JsonProperty(PropertyName = "overlay")] - public Dictionary Overlay { get; set; } - } + /// + /// A dictionary that contains the data for a panel extension. + /// + [JsonProperty(PropertyName = "panel")] + public Dictionary Panel { get; set; } + + /// + /// A dictionary that contains the data for a video-component extension. + /// + [JsonProperty(PropertyName = "component")] + public Dictionary Component { get; set; } + + /// + /// A dictionary that contains the data for a video-overlay extension. + /// + [JsonProperty(PropertyName = "overlay")] + public Dictionary Overlay { get; set; } } diff --git a/TwitchLib.Api.Helix.Models/Videos/DeleteVideos/DeleteVideosResponse.cs b/TwitchLib.Api.Helix.Models/Videos/DeleteVideos/DeleteVideosResponse.cs index 0a6d0639..6ac702ab 100644 --- a/TwitchLib.Api.Helix.Models/Videos/DeleteVideos/DeleteVideosResponse.cs +++ b/TwitchLib.Api.Helix.Models/Videos/DeleteVideos/DeleteVideosResponse.cs @@ -1,10 +1,15 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Videos.DeleteVideos +namespace TwitchLib.Api.Helix.Models.Videos.DeleteVideos; + +/// +/// Delete videos response object. +/// +public class DeleteVideosResponse { - public class DeleteVideosResponse - { - [JsonProperty(PropertyName = "data")] - public string[] Data { get; protected set; } - } + /// + /// The list of IDs of the videos that were deleted. + /// + [JsonProperty(PropertyName = "data")] + public string[] Data { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Videos/GetVideos/GetVideosResponse.cs b/TwitchLib.Api.Helix.Models/Videos/GetVideos/GetVideosResponse.cs index b47234e5..58feddc5 100644 --- a/TwitchLib.Api.Helix.Models/Videos/GetVideos/GetVideosResponse.cs +++ b/TwitchLib.Api.Helix.Models/Videos/GetVideos/GetVideosResponse.cs @@ -1,13 +1,22 @@ using Newtonsoft.Json; using TwitchLib.Api.Helix.Models.Common; -namespace TwitchLib.Api.Helix.Models.Videos.GetVideos +namespace TwitchLib.Api.Helix.Models.Videos.GetVideos; + +/// +/// Get videos response object. +/// +public class GetVideosResponse { - public class GetVideosResponse - { - [JsonProperty(PropertyName = "data")] - public Video[] Videos { get; protected set; } - [JsonProperty(PropertyName = "pagination")] - public Pagination Pagination { get; protected set; } - } + /// + /// The list of published videos that match the filter criteria. + /// + [JsonProperty(PropertyName = "data")] + public Video[] Videos { get; protected set; } + + /// + /// Contains the information used to page through the list of results. + /// + [JsonProperty(PropertyName = "pagination")] + public Pagination Pagination { get; protected set; } } diff --git a/TwitchLib.Api.Helix.Models/Videos/GetVideos/MutedSegment.cs b/TwitchLib.Api.Helix.Models/Videos/GetVideos/MutedSegment.cs index 36ef4a14..1aa0f60c 100644 --- a/TwitchLib.Api.Helix.Models/Videos/GetVideos/MutedSegment.cs +++ b/TwitchLib.Api.Helix.Models/Videos/GetVideos/MutedSegment.cs @@ -1,12 +1,21 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Videos.GetVideos +namespace TwitchLib.Api.Helix.Models.Videos.GetVideos; + +/// +/// A segments that Twitch Audio Recognition muted +/// +public class MutedSegment { - public class MutedSegment - { - [JsonProperty(PropertyName = "duration")] - public int Duration { get; protected set; } - [JsonProperty(PropertyName = "offset")] - public int Offset { get; protected set; } - } + /// + /// The duration of the muted segment, in seconds. + /// + [JsonProperty(PropertyName = "duration")] + public int Duration { get; protected set; } + + /// + /// The offset, in seconds, from the beginning of the video to where the muted segment begins. + /// + [JsonProperty(PropertyName = "offset")] + public int Offset { get; protected set; } } \ No newline at end of file diff --git a/TwitchLib.Api.Helix.Models/Videos/GetVideos/Video.cs b/TwitchLib.Api.Helix.Models/Videos/GetVideos/Video.cs index 32f33745..22967dc7 100644 --- a/TwitchLib.Api.Helix.Models/Videos/GetVideos/Video.cs +++ b/TwitchLib.Api.Helix.Models/Videos/GetVideos/Video.cs @@ -1,42 +1,111 @@ using Newtonsoft.Json; -namespace TwitchLib.Api.Helix.Models.Videos.GetVideos +namespace TwitchLib.Api.Helix.Models.Videos.GetVideos; + +/// +/// Information about a video. +/// +public class Video { - public class Video - { - [JsonProperty(PropertyName = "created_at")] - public string CreatedAt { get; protected set; } - [JsonProperty(PropertyName = "description")] - public string Description { get; protected set; } - [JsonProperty(PropertyName = "duration")] - public string Duration { get; protected set; } - [JsonProperty(PropertyName = "id")] - public string Id { get; protected set; } - [JsonProperty(PropertyName = "language")] - public string Language { get; protected set; } - [JsonProperty(PropertyName = "published_at")] - public string PublishedAt { get; protected set; } - [JsonProperty(PropertyName = "thumbnail_url")] - public string ThumbnailUrl { get; protected set; } - [JsonProperty(PropertyName = "title")] - public string Title { get; protected set; } - [JsonProperty(PropertyName = "type")] - public string Type { get; protected set; } - [JsonProperty(PropertyName = "url")] - public string Url { get; protected set; } - [JsonProperty(PropertyName = "user_id")] - public string UserId { get; protected set; } - [JsonProperty(PropertyName = "user_login")] - public string UserLogin { get; protected set; } - [JsonProperty(PropertyName = "user_name")] - public string UserName { get; protected set; } - [JsonProperty(PropertyName = "viewable")] - public string Viewable { get; protected set; } - [JsonProperty(PropertyName = "view_count")] - public int ViewCount { get; protected set; } - [JsonProperty(PropertyName = "stream_id")] - public string StreamId { get; protected set; } - [JsonProperty(PropertyName = "muted_segments")] - public MutedSegment[] MutedSegments { get; protected set; } - } + /// + /// The date and time, in UTC, of when the video was created. The timestamp is in RFC3339 format. + /// + [JsonProperty(PropertyName = "created_at")] + public string CreatedAt { get; protected set; } + + /// + /// The video's description. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; protected set; } + + /// + /// The video's length in ISO 8601 duration format. For example, 3m21s represents 3 minutes, 21 seconds. + /// + [JsonProperty(PropertyName = "duration")] + public string Duration { get; protected set; } + + /// + /// An ID that identifies the video. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// he ISO 639-1 two-letter language code that the video was broadcast in. + /// + [JsonProperty(PropertyName = "language")] + public string Language { get; protected set; } + + /// + /// The date and time, in UTC, of when the video was published. The timestamp is in RFC3339 format. + /// + [JsonProperty(PropertyName = "published_at")] + public string PublishedAt { get; protected set; } + + /// + /// A URL to a thumbnail image of the video. + /// + [JsonProperty(PropertyName = "thumbnail_url")] + public string ThumbnailUrl { get; protected set; } + + /// + /// The video's title. + /// + [JsonProperty(PropertyName = "title")] + public string Title { get; protected set; } + + /// + /// The video's type. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } + + /// + /// The video's URL. + /// + [JsonProperty(PropertyName = "url")] + public string Url { get; protected set; } + + /// + /// The ID of the broadcaster that owns the video. + /// + [JsonProperty(PropertyName = "user_id")] + public string UserId { get; protected set; } + + /// + /// The broadcaster's login name. + /// + [JsonProperty(PropertyName = "user_login")] + public string UserLogin { get; protected set; } + + /// + /// The broadcaster's display name. + /// + [JsonProperty(PropertyName = "user_name")] + public string UserName { get; protected set; } + + /// + /// The video's viewable state. Always set to public. + /// + [JsonProperty(PropertyName = "viewable")] + public string Viewable { get; protected set; } + + /// + /// The number of times that users have watched the video. + /// + [JsonProperty(PropertyName = "view_count")] + public int ViewCount { get; protected set; } + + /// + /// The ID of the stream that the video originated from if the video's type is "archive;" otherwise, null. + /// + [JsonProperty(PropertyName = "stream_id")] + public string StreamId { get; protected set; } + + /// + /// The segments that Twitch Audio Recognition muted. + /// + [JsonProperty(PropertyName = "muted_segments")] + public MutedSegment[] MutedSegments { get; protected set; } } diff --git a/TwitchLib.Api.Helix/ContentClassificationLabels.cs b/TwitchLib.Api.Helix/ContentClassificationLabels.cs index 35285991..29b57c59 100644 --- a/TwitchLib.Api.Helix/ContentClassificationLabels.cs +++ b/TwitchLib.Api.Helix/ContentClassificationLabels.cs @@ -13,15 +13,13 @@ namespace TwitchLib.Api.Helix public class ContentClassificationLabels : ApiBase { /// - /// + /// /// - /// - /// - /// public ContentClassificationLabels(IApiSettings settings, IRateLimiter rateLimiter, IHttpCallHandler http) : base(settings, rateLimiter, http) {} #region GetContentClassificationLabels + /// /// /// TwitchAPI Docs: Get Content Classification Labels diff --git a/TwitchLib.Api/Auth/AuthCodeResponse.cs b/TwitchLib.Api/Auth/AuthCodeResponse.cs index 34e5f6ea..152f60d1 100644 --- a/TwitchLib.Api/Auth/AuthCodeResponse.cs +++ b/TwitchLib.Api/Auth/AuthCodeResponse.cs @@ -2,20 +2,38 @@ namespace TwitchLib.Api.Auth { + /// + /// Auth Code Response + /// public class AuthCodeResponse { + /// + /// Access Token + /// [JsonProperty(PropertyName = "access_token")] public string AccessToken { get; protected set; } + /// + /// Refresh Token + /// [JsonProperty(PropertyName = "refresh_token")] public string RefreshToken { get; protected set; } + /// + /// Expires In + /// [JsonProperty(PropertyName = "expires_in")] public int ExpiresIn { get; protected set; } + /// + /// Scopes + /// [JsonProperty(PropertyName = "scope")] public string[] Scopes { get; protected set; } + /// + /// Token Type + /// [JsonProperty(PropertyName = "token_type")] public string TokenType { get; set; } } diff --git a/TwitchLib.Api/Auth/RefreshResponse.cs b/TwitchLib.Api/Auth/RefreshResponse.cs index 15b54232..86fdc2dd 100644 --- a/TwitchLib.Api/Auth/RefreshResponse.cs +++ b/TwitchLib.Api/Auth/RefreshResponse.cs @@ -2,17 +2,32 @@ namespace TwitchLib.Api.Auth { + /// + /// Refresh Response + /// public class RefreshResponse { + /// + /// Access Token + /// [JsonProperty(PropertyName = "access_token")] public string AccessToken { get; protected set; } + /// + /// Refresh Token + /// [JsonProperty(PropertyName = "refresh_token")] public string RefreshToken { get; protected set; } + /// + /// Expires In + /// [JsonProperty(PropertyName = "expires_in")] public int ExpiresIn { get; protected set; } + /// + /// Scopes + /// [JsonProperty(PropertyName = "scope")] public string[] Scopes { get; protected set; } } diff --git a/TwitchLib.Api/Auth/ValidateAccessTokenResponse.cs b/TwitchLib.Api/Auth/ValidateAccessTokenResponse.cs index 3348a5e4..37fc1563 100644 --- a/TwitchLib.Api/Auth/ValidateAccessTokenResponse.cs +++ b/TwitchLib.Api/Auth/ValidateAccessTokenResponse.cs @@ -3,16 +3,38 @@ namespace TwitchLib.Api.Auth { + /// + /// Validate Access Token + /// public class ValidateAccessTokenResponse { + /// + /// Client Id + /// [JsonProperty(PropertyName = "client_id")] public string ClientId { get; protected set; } + + /// + /// Login Name + /// [JsonProperty(PropertyName = "login")] public string Login { get; protected set; } + + /// + /// Scopes + /// [JsonProperty(PropertyName = "scopes")] public List Scopes { get; protected set; } + + /// + /// User Id + /// [JsonProperty(PropertyName = "user_id")] public string UserId { get; protected set; } + + /// + /// Expires In + /// [JsonProperty(PropertyName = "expires_in")] public int ExpiresIn { get; protected set; } } diff --git a/TwitchLib.Api/Events/OnAuthorizationFlowErrorArgs.cs b/TwitchLib.Api/Events/OnAuthorizationFlowErrorArgs.cs index 115249e8..26d77463 100644 --- a/TwitchLib.Api/Events/OnAuthorizationFlowErrorArgs.cs +++ b/TwitchLib.Api/Events/OnAuthorizationFlowErrorArgs.cs @@ -1,8 +1,18 @@ namespace TwitchLib.Api.Events { + /// + /// On Authorization Flow Error Args + /// public class OnAuthorizationFlowErrorArgs { + /// + /// Error + /// public int Error { get; set; } + + /// + /// Message + /// public string Message { get; set; } } } diff --git a/TwitchLib.Api/Events/OnUserAuthorizationDetectedArgs.cs b/TwitchLib.Api/Events/OnUserAuthorizationDetectedArgs.cs index 141cf4a9..5fa0dec8 100644 --- a/TwitchLib.Api/Events/OnUserAuthorizationDetectedArgs.cs +++ b/TwitchLib.Api/Events/OnUserAuthorizationDetectedArgs.cs @@ -3,13 +3,39 @@ namespace TwitchLib.Api.Events { + /// + /// On User Authorization Detected Args + /// public class OnUserAuthorizationDetectedArgs { + /// + /// Id + /// public string Id { get; set; } + + /// + /// Scopes + /// public List Scopes { get; set; } + + /// + /// Username + /// public string Username { get; set; } + + /// + /// Access Token + /// public string Token { get; set; } + + /// + /// Refresh Token + /// public string Refresh { get; set; } + + /// + /// Client Id + /// public string ClientId { get; set; } } } diff --git a/TwitchLib.Api/Helpers/ExtensionAnalyticsHelper.cs b/TwitchLib.Api/Helpers/ExtensionAnalyticsHelper.cs index 3bd44f2e..ff5489df 100644 --- a/TwitchLib.Api/Helpers/ExtensionAnalyticsHelper.cs +++ b/TwitchLib.Api/Helpers/ExtensionAnalyticsHelper.cs @@ -7,6 +7,9 @@ namespace TwitchLib.Api.Helpers { + /// + /// Extension Analytics Helper + /// public static class ExtensionAnalyticsHelper { public static async Task> HandleUrlAsync(string url) diff --git a/TwitchLib.Api/Interfaces/ITwitchAPI.cs b/TwitchLib.Api/Interfaces/ITwitchAPI.cs index 7639bb06..cc2a91cb 100644 --- a/TwitchLib.Api/Interfaces/ITwitchAPI.cs +++ b/TwitchLib.Api/Interfaces/ITwitchAPI.cs @@ -1,15 +1,37 @@ -using TwitchLib.Api; +using TwitchLib.Api.Auth; using TwitchLib.Api.Core.Interfaces; using TwitchLib.Api.Core.Undocumented; namespace TwitchLib.Api.Interfaces { + /// + /// ITwitchAPI Interface + /// public interface ITwitchAPI { + /// + /// Settings + /// IApiSettings Settings { get; } + + /// + /// Authentication + /// Auth.Auth Auth { get; } + + /// + /// Helix + /// Helix.Helix Helix { get; } + + /// + /// Third Party + /// ThirdParty.ThirdParty ThirdParty { get; } + + /// + /// Undocumented + /// Undocumented Undocumented { get; } } } diff --git a/TwitchLib.Api/Services/ApiService.cs b/TwitchLib.Api/Services/ApiService.cs index ee0d38d1..8f11245c 100644 --- a/TwitchLib.Api/Services/ApiService.cs +++ b/TwitchLib.Api/Services/ApiService.cs @@ -7,6 +7,9 @@ namespace TwitchLib.Api.Services { + /// + /// Api Service + /// public class ApiService { protected readonly ITwitchAPI _api; @@ -17,10 +20,12 @@ public class ApiService /// The list with channels to monitor. /// public List ChannelsToMonitor { get; private set; } + /// /// How often the service is being updated in seconds. /// public int IntervalInSeconds => _serviceTimer.IntervalInSeconds; + /// /// Whether the service is currently enabled or not. /// @@ -30,14 +35,17 @@ public class ApiService /// Event invoked when the service has started. /// public event EventHandler OnServiceStarted; + /// /// Event invoked when the service has stopped. /// public event EventHandler OnServiceStopped; + /// /// Event invoked when the service is updating. /// public event EventHandler OnServiceTick; + /// /// Event invoked when the channels have been set. /// From d768329eb7223b2dce3ff33ad756ed6b192398a7 Mon Sep 17 00:00:00 2001 From: Mahsaap Date: Sun, 23 Jun 2024 01:30:26 -0300 Subject: [PATCH 2/3] Fix missing namespace reference. --- .../Extensions/Transactions/Cost.cs | 24 +++++++++++++++++ TwitchLib.Api.Helix.Models/Search/Game.cs | 27 +++++++++++++++++++ .../Search/SearchCategoriesResponse.cs | 2 +- 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 TwitchLib.Api.Helix.Models/Extensions/Transactions/Cost.cs create mode 100644 TwitchLib.Api.Helix.Models/Search/Game.cs diff --git a/TwitchLib.Api.Helix.Models/Extensions/Transactions/Cost.cs b/TwitchLib.Api.Helix.Models/Extensions/Transactions/Cost.cs new file mode 100644 index 00000000..0610ca92 --- /dev/null +++ b/TwitchLib.Api.Helix.Models/Extensions/Transactions/Cost.cs @@ -0,0 +1,24 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace TwitchLib.Api.Helix.Models.Extensions.Transactions; + +/// +/// Details about the digital product’s cost. +/// +public class Cost +{ + /// + /// The amount exchanged for the digital product. + /// + [JsonProperty(PropertyName = "amount")] + public int Amount { get; protected set; } + + /// + /// The type of currency exchanged. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; protected set; } +} diff --git a/TwitchLib.Api.Helix.Models/Search/Game.cs b/TwitchLib.Api.Helix.Models/Search/Game.cs new file mode 100644 index 00000000..fd3b8a85 --- /dev/null +++ b/TwitchLib.Api.Helix.Models/Search/Game.cs @@ -0,0 +1,27 @@ +using Newtonsoft.Json; + +namespace TwitchLib.Api.Helix.Models.Search; + +/// +/// The category or game. +/// +public class Game +{ + /// + /// An ID that uniquely identifies the game or category. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; protected set; } + + /// + /// The name of the game or category. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; protected set; } + + /// + /// A URL to an image of the game’s box art or streaming category. + /// + [JsonProperty(PropertyName = "box_art_url")] + public string BoxArtUrl { get; protected set; } +} diff --git a/TwitchLib.Api.Helix.Models/Search/SearchCategoriesResponse.cs b/TwitchLib.Api.Helix.Models/Search/SearchCategoriesResponse.cs index 7ca3a3b2..d086df45 100644 --- a/TwitchLib.Api.Helix.Models/Search/SearchCategoriesResponse.cs +++ b/TwitchLib.Api.Helix.Models/Search/SearchCategoriesResponse.cs @@ -15,7 +15,7 @@ public class SearchCategoriesResponse public Game[] Games { get; protected set; } /// - /// + /// The information used to page through the list of results. /// [JsonProperty(PropertyName = "pagination")] public Pagination Pagination { get; protected set; } From f0695371a163434c93efa9fe92a044ca8be35832 Mon Sep 17 00:00:00 2001 From: Mahsaap Date: Sun, 23 Jun 2024 12:14:06 -0300 Subject: [PATCH 3/3] Requested fixes --- TwitchLib.Api.Core.Enums/AuthScopesEnum.cs | 2 +- .../Channels/StartCommercial/StartCommercialResponse.cs | 2 +- TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs | 3 +-- .../Chat/ChatSettings/ChatSettingsResponseModel.cs | 1 - TwitchLib.Api.Helix.Models/Common/Tag.cs | 2 +- .../Entitlements/GetDropsEntitlements/DropsEntitlement.cs | 2 -- TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs | 2 +- .../Extensions/Transactions/Transaction.cs | 2 +- .../Moderation/GetBannedUsers/BannedUserEvent.cs | 2 +- TwitchLib.Api.Helix/ContentClassificationLabels.cs | 4 +--- 10 files changed, 8 insertions(+), 14 deletions(-) diff --git a/TwitchLib.Api.Core.Enums/AuthScopesEnum.cs b/TwitchLib.Api.Core.Enums/AuthScopesEnum.cs index 492e86b8..df20797c 100644 --- a/TwitchLib.Api.Core.Enums/AuthScopesEnum.cs +++ b/TwitchLib.Api.Core.Enums/AuthScopesEnum.cs @@ -350,7 +350,7 @@ public enum AuthScopes User_Read_Subscriptions, /// - /// + /// User write chat /// User_Write_Chat, diff --git a/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialResponse.cs b/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialResponse.cs index 0e8871e6..0413a62b 100644 --- a/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialResponse.cs +++ b/TwitchLib.Api.Helix.Models/Channels/StartCommercial/StartCommercialResponse.cs @@ -21,7 +21,7 @@ public class StartCommercialResponse public string Message { get; protected set; } /// - /// The number of seconds you must wait before running another commercial. + /// The number of seconds you must wait before running another commercial. /// [JsonProperty(PropertyName = "retry_after")] public int RetryAfter { get; protected set; } diff --git a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs index 89547ec4..bd84c3eb 100644 --- a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs +++ b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettings.cs @@ -9,8 +9,7 @@ public class ChatSettings { /// /// A Boolean value that determines whether chat messages must contain only emotes. - /// - /// + /// [JsonProperty(PropertyName = "emote_mode")] public bool? EmoteMode; diff --git a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettingsResponseModel.cs b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettingsResponseModel.cs index 826a4255..6ffb6203 100644 --- a/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettingsResponseModel.cs +++ b/TwitchLib.Api.Helix.Models/Chat/ChatSettings/ChatSettingsResponseModel.cs @@ -57,7 +57,6 @@ public class ChatSettingsResponseModel /// /// The amount of time, in seconds, that users must wait between sending messages. - /// /// [JsonProperty(PropertyName = "slow_mode_wait_time")] public int? SlowModeWaitDuration { get; protected set; } diff --git a/TwitchLib.Api.Helix.Models/Common/Tag.cs b/TwitchLib.Api.Helix.Models/Common/Tag.cs index 9ba7a586..b2a82040 100644 --- a/TwitchLib.Api.Helix.Models/Common/Tag.cs +++ b/TwitchLib.Api.Helix.Models/Common/Tag.cs @@ -9,7 +9,7 @@ namespace TwitchLib.Api.Helix.Models.Common; public class Tag { /// - /// An ID that identifies this tag. + /// An ID that identifies this tag. /// [JsonProperty(PropertyName = "tag_id")] public string TagId { get; protected set; } diff --git a/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/DropsEntitlement.cs b/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/DropsEntitlement.cs index 12d03b38..a48f8c3a 100644 --- a/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/DropsEntitlement.cs +++ b/TwitchLib.Api.Helix.Models/Entitlements/GetDropsEntitlements/DropsEntitlement.cs @@ -5,10 +5,8 @@ namespace TwitchLib.Api.Helix.Models.Entitlements.GetDropsEntitlements; /// -/// /// /// An organization’s entitlement that has been granted to a game, a user, or both. /// -/// public class DropsEntitlement { /// diff --git a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs index 66d57861..d67dbca6 100644 --- a/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs +++ b/TwitchLib.Api.Helix.Models/EventSub/Conduits/Shards/Shard.cs @@ -3,7 +3,7 @@ namespace TwitchLib.Api.Helix.Models.EventSub.Conduits.Shards; /// -/// +/// A Shard. /// public class Shard { diff --git a/TwitchLib.Api.Helix.Models/Extensions/Transactions/Transaction.cs b/TwitchLib.Api.Helix.Models/Extensions/Transactions/Transaction.cs index 99cb8cb1..4db73806 100644 --- a/TwitchLib.Api.Helix.Models/Extensions/Transactions/Transaction.cs +++ b/TwitchLib.Api.Helix.Models/Extensions/Transactions/Transaction.cs @@ -15,7 +15,7 @@ public class Transaction public string Id { get; protected set; } /// - /// The UTC date and time (in RFC3339 format) of the transaction. + /// The UTC date and time (in RFC3339 format) of the transaction. /// [JsonProperty(PropertyName = "timestamp")] public DateTime Timestamp { get; protected set; } diff --git a/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/BannedUserEvent.cs b/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/BannedUserEvent.cs index 76fc5076..86f2f629 100644 --- a/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/BannedUserEvent.cs +++ b/TwitchLib.Api.Helix.Models/Moderation/GetBannedUsers/BannedUserEvent.cs @@ -51,7 +51,7 @@ public class BannedUserEvent public string ModeratorId { get; protected set; } /// - /// Login of the moderator who initiated the ban. + /// Login of the moderator who initiated the ban. /// [JsonProperty(PropertyName = "moderator_login")] public string ModeratorLogin { get; protected set; } diff --git a/TwitchLib.Api.Helix/ContentClassificationLabels.cs b/TwitchLib.Api.Helix/ContentClassificationLabels.cs index 29b57c59..6ca56cb1 100644 --- a/TwitchLib.Api.Helix/ContentClassificationLabels.cs +++ b/TwitchLib.Api.Helix/ContentClassificationLabels.cs @@ -12,9 +12,7 @@ namespace TwitchLib.Api.Helix /// public class ContentClassificationLabels : ApiBase { - /// - /// - /// + public ContentClassificationLabels(IApiSettings settings, IRateLimiter rateLimiter, IHttpCallHandler http) : base(settings, rateLimiter, http) {}