ts-twitch-api 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -397,6 +397,17 @@ export interface paths {
397
397
  */
398
398
  post: operations["send-a-shoutout"];
399
399
  };
400
+ "/chat/messages": {
401
+ /**
402
+ * NEW Sends a message to the broadcaster’s chat room.
403
+ * @description NEW Sends a message to the broadcaster’s chat room.
404
+ *
405
+ * __Authorization:__
406
+ *
407
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens) or [user access token](https://dev.twitch.tv/docs/authentication#user-access-tokens) that includes the `user:write:chat` scope. If app access token used, then additionally requires `user:bot` scope from chatting user, and either `channel:bot` scope from broadcaster or moderator status.
408
+ */
409
+ post: operations["send-chat-message"];
410
+ };
400
411
  "/chat/color": {
401
412
  /**
402
413
  * Gets the color used for the user’s name in chat.
@@ -447,6 +458,66 @@ export interface paths {
447
458
  */
448
459
  post: operations["create-clip"];
449
460
  };
461
+ "/eventsub/conduits": {
462
+ /**
463
+ * NEW Gets the conduits for a client ID.
464
+ * @description NEW Gets the [conduits](https://dev.twitch.tv/docs/eventsub/handling-conduit-events) for a client ID.
465
+ *
466
+ * __Authorization:__
467
+ *
468
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
469
+ */
470
+ get: operations["get-conduits"];
471
+ /**
472
+ * NEW Creates a new conduit.
473
+ * @description NEW Creates a new [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events).
474
+ *
475
+ * __Authorization:__
476
+ *
477
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
478
+ */
479
+ post: operations["create-conduits"];
480
+ /**
481
+ * NEW Deletes a specified conduit.
482
+ * @description NEW Deletes a specified [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events/). Note that it may take some time for Eventsub subscriptions on a deleted [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events) to show as disabled when calling [Get Eventsub Subscriptions](https://dev.twitch.tv/docs/api/reference/#get-eventsub-subscriptions).
483
+ *
484
+ * __Authorization:__
485
+ *
486
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
487
+ */
488
+ delete: operations["delete-conduit"];
489
+ /**
490
+ * NEW Updates a conduit’s shard count.
491
+ * @description NEW Updates a [conduit’s](https://dev.twitch.tv/docs/eventsub/handling-conduit-events) shard count. To delete shards, update the count to a lower number, and the shards above the count will be deleted. For example, if the existing shard count is 100, by resetting shard count to 50, shards 50-99 are disabled.
492
+ *
493
+ * __Authorization:__
494
+ *
495
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
496
+ */
497
+ patch: operations["update-conduits"];
498
+ };
499
+ "/eventsub/conduits/shards": {
500
+ /**
501
+ * NEW Gets a lists of all shards for a conduit.
502
+ * @description NEW Gets a lists of all shards for a [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events).
503
+ *
504
+ * __Authorization:__
505
+ *
506
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
507
+ */
508
+ get: operations["get-conduit-shards"];
509
+ /**
510
+ * NEW Updates shard(s) for a conduit.
511
+ * @description NEW Updates shard(s) for a [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events).
512
+ *
513
+ * **NOTE:** Shard IDs are indexed starting at 0, so a conduit with a `shard_count` of 5 will have shards with IDs 0 through 4.
514
+ *
515
+ * __Authorization:__
516
+ *
517
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
518
+ */
519
+ patch: operations["update-conduit-shards"];
520
+ };
450
521
  "/content_classification_labels": {
451
522
  /**
452
523
  * Gets information about Twitch content classification labels.
@@ -695,6 +766,8 @@ export interface paths {
695
766
  * If you use [webhooks to receive events](https://dev.twitch.tv/docs/eventsub/handling-webhook-events), the request must specify an app access token. The request will fail if you use a user access token. If the subscription type requires user authorization, the user must have granted your app (client ID) permissions to receive those events before you subscribe to them. For example, to subscribe to [channel.subscribe](https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/#channelsubscribe) events, your app must get a user access token that includes the `channel:read:subscriptions` scope, which adds the required permission to your app access token’s client ID.
696
767
  *
697
768
  * If you use [WebSockets to receive events](https://dev.twitch.tv/docs/eventsub/handling-websocket-events), the request must specify a user access token. The request will fail if you use an app access token. If the subscription type requires user authorization, the token must include the required scope. However, if the subscription type doesn’t include user authorization, the token may include any scopes or no scopes.
769
+ *
770
+ * If you use [Conduits](https://dev.twitch.tv/docs/eventsub/handling-conduit-events) to receive events, the request must specify an app access token. The request will fail if you use a user access token.
698
771
  */
699
772
  post: operations["create-eventsub-subscription"];
700
773
  /**
@@ -2841,6 +2914,31 @@ export interface components {
2841
2914
  */
2842
2915
  color?: "blue" | "green" | "orange" | "purple" | "primary (default)";
2843
2916
  };
2917
+ SendChatMessageBody: {
2918
+ /** @description The ID of the broadcaster whose chat room the message will be sent to. */
2919
+ broadcaster_id: string;
2920
+ /** @description The ID of the user sending the message. This ID must match the user ID in the user access token. */
2921
+ sender_id: string;
2922
+ /** @description The message to send. The message is limited to a maximum of 500 characters. Chat messages can also include emoticons. To include emoticons, use the name of the emote. The names are case sensitive. Don’t include colons around the name (e.g., :bleedPurple:). If Twitch recognizes the name, Twitch converts the name to the emote before writing the chat message to the chat room */
2923
+ message: string;
2924
+ /** @description The ID of the chat message being replied to. */
2925
+ reply_parent_message_id?: string;
2926
+ };
2927
+ SendChatMessageResponse: {
2928
+ data: {
2929
+ /** @description The message id for the message that was sent. */
2930
+ message_id: string;
2931
+ /** @description If the message passed all checks and was sent. */
2932
+ is_sent: boolean;
2933
+ /** @description The reason the message was dropped, if any. */
2934
+ drop_reason?: {
2935
+ /** @description Code for why the message was dropped. */
2936
+ code: string;
2937
+ /** @description Message for why the message was dropped. */
2938
+ message: string;
2939
+ }[];
2940
+ }[];
2941
+ };
2844
2942
  UserChatColor: {
2845
2943
  /** @description An ID that uniquely identifies the user. */
2846
2944
  user_id: string;
@@ -2926,6 +3024,204 @@ export interface components {
2926
3024
  cursor?: string;
2927
3025
  };
2928
3026
  };
3027
+ GetConduitsResponse: {
3028
+ /** @description List of information about the client’s conduits. */
3029
+ data: {
3030
+ /** @description Conduit ID. */
3031
+ id: string;
3032
+ /**
3033
+ * Format: int32
3034
+ * @description Number of shards associated with this conduit.
3035
+ */
3036
+ shard_count: number;
3037
+ }[];
3038
+ };
3039
+ CreateConduitsBody: {
3040
+ /**
3041
+ * Format: int32
3042
+ * @description The number of shards to create for this conduit.
3043
+ */
3044
+ shard_count: number;
3045
+ };
3046
+ CreateConduitsResponse: {
3047
+ /** @description List of information about the client’s conduits. */
3048
+ data: {
3049
+ /** @description Conduit ID. */
3050
+ id: string;
3051
+ /**
3052
+ * Format: int32
3053
+ * @description Number of shards created for this conduit.
3054
+ */
3055
+ shard_count: number;
3056
+ }[];
3057
+ };
3058
+ UpdateConduitsBody: {
3059
+ /** @description Conduit ID. */
3060
+ id: string;
3061
+ /**
3062
+ * Format: int32
3063
+ * @description The new number of shards for this conduit.
3064
+ */
3065
+ shard_count: number;
3066
+ };
3067
+ UpdateConduitsResponse: {
3068
+ /** @description List of information about the client’s conduits. */
3069
+ data: {
3070
+ /** @description Conduit ID. */
3071
+ id: string;
3072
+ /**
3073
+ * Format: int32
3074
+ * @description Number of shards associated with this conduit after the update.
3075
+ */
3076
+ shard_count: number;
3077
+ }[];
3078
+ };
3079
+ GetConduitShardsResponse: {
3080
+ /** @description List of information about a conduit's shards. */
3081
+ data: ({
3082
+ /** @description Shard ID. */
3083
+ id: string;
3084
+ /**
3085
+ * @description The shard status. The subscriber receives events only for enabled shards. Possible values are:
3086
+ *
3087
+ * * enabled — The shard is enabled.
3088
+ * * webhook\_callback\_verification\_pending — The shard is pending verification of the specified callback URL.
3089
+ * * webhook\_callback\_verification\_failed — The specified callback URL failed verification.
3090
+ * * notification\_failures\_exceeded — The notification delivery failure rate was too high.
3091
+ * * websocket\_disconnected — The client closed the connection.
3092
+ * * websocket\_failed\_ping\_pong — The client failed to respond to a ping message.
3093
+ * * websocket\_received\_inbound\_traffic — The client sent a non-pong message. Clients may only send pong messages (and only in response to a ping message).
3094
+ * * websocket\_internal\_error — The Twitch WebSocket server experienced an unexpected error.
3095
+ * * websocket\_network\_timeout — The Twitch WebSocket server timed out writing the message to the client.
3096
+ * * websocket\_network\_error — The Twitch WebSocket server experienced a network error writing the message to the client.
3097
+ * @enum {string}
3098
+ */
3099
+ status: "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";
3100
+ /** @description The transport details used to send the notifications. */
3101
+ transport: {
3102
+ /**
3103
+ * @description The transport method. Possible values are:
3104
+ *
3105
+ * * webhook
3106
+ * * websocket
3107
+ * @enum {string}
3108
+ */
3109
+ method: "webhook" | "websocket";
3110
+ /** @description The callback URL where the notifications are sent. Included only if method is set to webhook. */
3111
+ callback?: string;
3112
+ /** @description An ID that identifies the WebSocket that notifications are sent to. Included only if method is set to websocket. */
3113
+ session_id?: string;
3114
+ /**
3115
+ * Format: date-time
3116
+ * @description The UTC date and time that the WebSocket connection was established. Included only if method is set to websocket.
3117
+ */
3118
+ connected_at?: string;
3119
+ /**
3120
+ * Format: date-time
3121
+ * @description The UTC date and time that the WebSocket connection was lost. Included only if method is set to websocket.
3122
+ */
3123
+ disconnected_at?: string;
3124
+ };
3125
+ })[];
3126
+ /** @description Contains information used to page through a list of results. The object is empty if there are no more pages left to page through. */
3127
+ pagination?: {
3128
+ /** @description The cursor used to get the next page of results. Use the cursor to set the request’s after query parameter. */
3129
+ cursor?: string;
3130
+ };
3131
+ };
3132
+ UpdateConduitShardsBody: {
3133
+ /** @description Conduit ID. */
3134
+ conduit_id: string;
3135
+ /** @description List of shards to update. */
3136
+ shards: ({
3137
+ /** @description Shard ID. */
3138
+ id: string;
3139
+ /** @description The transport details that you want Twitch to use when sending you notifications. */
3140
+ transport: {
3141
+ /**
3142
+ * @description The transport method. Possible values are:
3143
+ *
3144
+ * * webhook
3145
+ * * websocket
3146
+ * @enum {string}
3147
+ */
3148
+ method?: "webhook" | "websocket";
3149
+ /** @description 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. */
3150
+ callback?: string;
3151
+ /** @description 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. */
3152
+ secret?: string;
3153
+ /** @description 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. */
3154
+ session_id?: string;
3155
+ };
3156
+ })[];
3157
+ };
3158
+ UpdateConduitShardsResponse: {
3159
+ /** @description List of successful shard updates. */
3160
+ data: ({
3161
+ /** @description Shard ID. */
3162
+ id: string;
3163
+ /**
3164
+ * @description The shard status. The subscriber receives events only for enabled shards. Possible values are:
3165
+ *
3166
+ * * enabled — The shard is enabled.
3167
+ * * webhook\_callback\_verification\_pending — The shard is pending verification of the specified callback URL.
3168
+ * * webhook\_callback\_verification\_failed — The specified callback URL failed verification.
3169
+ * * notification\_failures\_exceeded — The notification delivery failure rate was too high.
3170
+ * * websocket\_disconnected — The client closed the connection.
3171
+ * * websocket\_failed\_ping\_pong — The client failed to respond to a ping message.
3172
+ * * websocket\_received\_inbound\_traffic — The client sent a non-pong message. Clients may only send pong messages (and only in response to a ping message).
3173
+ * * websocket\_internal\_error — The Twitch WebSocket server experienced an unexpected error.
3174
+ * * websocket\_network\_timeout — The Twitch WebSocket server timed out writing the message to the client.
3175
+ * * websocket\_network\_error — The Twitch WebSocket server experienced a network error writing the message to the client.
3176
+ * @enum {string}
3177
+ */
3178
+ status: "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";
3179
+ /** @description The transport details used to send the notifications. */
3180
+ transport: {
3181
+ /**
3182
+ * @description The transport method. Possible values are:
3183
+ *
3184
+ * * webhook
3185
+ * * websocket
3186
+ * @enum {string}
3187
+ */
3188
+ method: "webhook" | "websocket";
3189
+ /** @description The callback URL where the notifications are sent. Included only if method is set to webhook. */
3190
+ callback?: string;
3191
+ /** @description An ID that identifies the WebSocket that notifications are sent to. Included only if method is set to websocket. */
3192
+ session_id?: string;
3193
+ /**
3194
+ * Format: date-time
3195
+ * @description The UTC date and time that the WebSocket connection was established. Included only if method is set to websocket.
3196
+ */
3197
+ connected_at?: string;
3198
+ /**
3199
+ * Format: date-time
3200
+ * @description The UTC date and time that the WebSocket connection was lost. Included only if method is set to websocket.
3201
+ */
3202
+ disconnected_at?: string;
3203
+ };
3204
+ })[];
3205
+ /** @description List of unsuccessful updates. */
3206
+ errors: {
3207
+ /** @description Shard ID. */
3208
+ id: string;
3209
+ /**
3210
+ * @description The error that occurred while updating the shard. Possible errors:
3211
+ *
3212
+ * * The length of the string in the secret field is not valid.
3213
+ * * The URL in the transport's callback field is not valid. The URL must use the HTTPS protocol and the 443 port number.
3214
+ * * The value specified in the method field is not valid.
3215
+ * * The callback field is required if you specify the webhook transport method.
3216
+ * * The session\_id field is required if you specify the WebSocket transport method.
3217
+ * * The websocket session is not connected.
3218
+ * * The shard id is outside of the conduit’s range.
3219
+ */
3220
+ message: string;
3221
+ /** @description Error codes used to represent a specific error condition while attempting to update shards. */
3222
+ code: string;
3223
+ }[];
3224
+ };
2929
3225
  ContentClassificationLabel: {
2930
3226
  /** @description Unique identifier for the CCL. */
2931
3227
  id: string;
@@ -3281,13 +3577,13 @@ export interface components {
3281
3577
  data: components["schemas"]["Extension"][];
3282
3578
  };
3283
3579
  ExtensionBitsProduct: {
3284
- /** @description The product’s SKU. The SKU is unique across an extension’s products. */
3580
+ /** @description The product's SKU. The SKU is unique across an extension's products. */
3285
3581
  sku: string;
3286
- /** @description An object that contains the product’s cost information. */
3582
+ /** @description An object that contains the product's cost information. */
3287
3583
  cost: {
3288
3584
  /**
3289
3585
  * Format: int32
3290
- * @description The product’s price.
3586
+ * @description The product's price.
3291
3587
  */
3292
3588
  amount: number;
3293
3589
  /**
@@ -3300,7 +3596,7 @@ export interface components {
3300
3596
  };
3301
3597
  /** @description A Boolean value that indicates whether the product is in development. If **true**, the product is not available for public use. */
3302
3598
  in_development: boolean;
3303
- /** @description The product’s name as displayed in the extension. */
3599
+ /** @description The product's name as displayed in the extension. */
3304
3600
  display_name: string;
3305
3601
  /**
3306
3602
  * Format: date-time
@@ -3315,13 +3611,13 @@ export interface components {
3315
3611
  data: components["schemas"]["ExtensionBitsProduct"][];
3316
3612
  };
3317
3613
  UpdateExtensionBitsProductBody: {
3318
- /** @description The product’s SKU. The SKU must be unique within an extension. The product’s SKU cannot be changed. The SKU may contain only alphanumeric characters, dashes (-), underscores (\_), and periods (.) and is limited to a maximum of 255 characters. No spaces. */
3614
+ /** @description The product's SKU. The SKU must be unique within an extension. The product's SKU cannot be changed. The SKU may contain only alphanumeric characters, dashes (-), underscores (\_), and periods (.) and is limited to a maximum of 255 characters. No spaces. */
3319
3615
  sku: string;
3320
- /** @description An object that contains the product’s cost information. */
3616
+ /** @description An object that contains the product's cost information. */
3321
3617
  cost: {
3322
3618
  /**
3323
3619
  * Format: int32
3324
- * @description The product’s price.
3620
+ * @description The product's price.
3325
3621
  */
3326
3622
  amount: number;
3327
3623
  /**
@@ -3332,7 +3628,7 @@ export interface components {
3332
3628
  */
3333
3629
  type: "bits";
3334
3630
  };
3335
- /** @description The product’s name as displayed in the extension. The maximum length is 255 characters. */
3631
+ /** @description The product's name as displayed in the extension. The maximum length is 255 characters. */
3336
3632
  display_name: string;
3337
3633
  /** @description A Boolean value that indicates whether the product is in development. Set to **true** if the product is in development and not available for public use. The default is **false**. */
3338
3634
  in_development?: boolean;
@@ -3345,7 +3641,7 @@ export interface components {
3345
3641
  is_broadcast?: boolean;
3346
3642
  };
3347
3643
  UpdateExtensionBitsProductResponse: {
3348
- /** @description A list of Bits products that the extension created. The list is in ascending SKU order. The list is empty if the extension hasn’t created any products or they’re all expired or disabled. */
3644
+ /** @description A list of Bits products that the extension created. The list is in ascending SKU order. The list is empty if the extension hasn't created any products or they're all expired or disabled. */
3349
3645
  data: components["schemas"]["ExtensionBitsProduct"][];
3350
3646
  };
3351
3647
  CreateEventSubSubscriptionBody: {
@@ -3353,7 +3649,7 @@ export interface components {
3353
3649
  * @description The type of subscription to create. For a list of subscriptions that you can create, see [Subscription Types](https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#subscription-types). Set this field to the value in the **Name** column of the Subscription Types table.
3354
3650
  * @enum {string}
3355
3651
  */
3356
- type: "channel.update" | "channel.follow" | "channel.ad_break.begin" | "channel.chat.clear" | "channel.chat.clear_user_messages" | "channel.chat.message_delete" | "channel.chat.notification" | "channel.chat_settings.update" | "channel.subscribe" | "channel.subscription.end" | "channel.subscription.gift" | "channel.subscription.message" | "channel.cheer" | "channel.raid" | "channel.ban" | "channel.unban" | "channel.moderator.add" | "channel.moderator.remove" | "channel.guest_star_session.begin" | "channel.guest_star_session.end" | "channel.guest_star_guest.update" | "channel.guest_star_settings.update" | "channel.channel_points_custom_reward.add" | "channel.channel_points_custom_reward.update" | "channel.channel_points_custom_reward.remove" | "channel.channel_points_custom_reward_redemption.add" | "channel.channel_points_custom_reward_redemption.update" | "channel.poll.begin" | "channel.poll.progress" | "channel.poll.end" | "channel.prediction.begin" | "channel.prediction.progress" | "channel.prediction.lock" | "channel.prediction.end" | "channel.charity_campaign.donate" | "channel.charity_campaign.start" | "channel.charity_campaign.progress" | "channel.charity_campaign.stop" | "drop.entitlement.grant" | "extension.bits_transaction.create" | "channel.goal.begin" | "channel.goal.progress" | "channel.goal.end" | "channel.hype_train.begin" | "channel.hype_train.progress" | "channel.hype_train.end" | "channel.shield_mode.begin" | "channel.shield_mode.end" | "channel.shoutout.create" | "channel.shoutout.receive" | "stream.online" | "stream.offline" | "user.authorization.grant" | "user.authorization.revoke" | "user.update";
3652
+ type: "channel.update" | "channel.follow" | "channel.ad_break.begin" | "channel.chat.clear" | "channel.chat.clear_user_messages" | "channel.chat.message" | "channel.chat.message_delete" | "channel.chat.notification" | "channel.chat_settings.update" | "channel.subscribe" | "channel.subscription.end" | "channel.subscription.gift" | "channel.subscription.message" | "channel.cheer" | "channel.raid" | "channel.ban" | "channel.unban" | "channel.moderator.add" | "channel.moderator.remove" | "channel.guest_star_session.begin" | "channel.guest_star_session.end" | "channel.guest_star_guest.update" | "channel.guest_star_settings.update" | "channel.channel_points_custom_reward.add" | "channel.channel_points_custom_reward.update" | "channel.channel_points_custom_reward.remove" | "channel.channel_points_custom_reward_redemption.add" | "channel.channel_points_custom_reward_redemption.update" | "channel.poll.begin" | "channel.poll.progress" | "channel.poll.end" | "channel.prediction.begin" | "channel.prediction.progress" | "channel.prediction.lock" | "channel.prediction.end" | "channel.charity_campaign.donate" | "channel.charity_campaign.start" | "channel.charity_campaign.progress" | "channel.charity_campaign.stop" | "conduit.shard.disabled" | "drop.entitlement.grant" | "extension.bits_transaction.create" | "channel.goal.begin" | "channel.goal.progress" | "channel.goal.end" | "channel.hype_train.begin" | "channel.hype_train.progress" | "channel.hype_train.end" | "channel.shield_mode.begin" | "channel.shield_mode.end" | "channel.shoutout.create" | "channel.shoutout.receive" | "stream.online" | "stream.offline" | "user.authorization.grant" | "user.authorization.revoke" | "user.update";
3357
3653
  /** @description The version number that identifies the definition of the subscription type that you want the response to use. */
3358
3654
  version: string;
3359
3655
  /** @description A JSON object that contains the parameter values that are specific to the specified subscription type. For the object’s required and optional fields, see the subscription type’s documentation. */
@@ -3365,36 +3661,29 @@ export interface components {
3365
3661
  *
3366
3662
  * * webhook
3367
3663
  * * websocket
3664
+ * * conduit
3368
3665
  * @enum {string}
3369
3666
  */
3370
- method: "webhook" | "websocket";
3667
+ method: "webhook" | "websocket" | "conduit";
3371
3668
  /**
3372
- * @description The callback URL where the notifications are sent. The URL must use the HTTPS protocol and port 443\. See [Processing an event](https://dev.twitch.tv/docs/eventsub/handling-webhook-events#processing-an-event).
3373
- *
3374
- * Specify this field only if `method` is set to **webhook**.
3669
+ * @description The callback URL where the notifications are sent. The URL must use the HTTPS protocol and port 443\. See [Processing an event](https://dev.twitch.tv/docs/eventsub/handling-webhook-events#processing-an-event). Specify this field only if `method` is set to **webhook**.
3375
3670
  *
3376
3671
  * **NOTE**: Redirects are not followed.
3377
3672
  */
3378
3673
  callback?: string;
3379
- /**
3380
- * @description 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](https://dev.twitch.tv/docs/eventsub/handling-webhook-events#verifying-the-event-message).
3381
- *
3382
- * Specify this field only if `method` is set to **webhook**.
3383
- */
3674
+ /** @description 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](https://dev.twitch.tv/docs/eventsub/handling-webhook-events#verifying-the-event-message). Specify this field only if `method` is set to **webhook**. */
3384
3675
  secret?: string;
3385
- /**
3386
- * @description 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](https://dev.twitch.tv/docs/eventsub/handling-websocket-events#welcome-message).
3387
- *
3388
- * Specify this field only if `method` is set to **websocket**.
3389
- */
3676
+ /** @description 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**. */
3390
3677
  session_id?: string;
3678
+ /** @description An ID that identifies the conduit to send notifications to. When you create a conduit, the server returns the conduit ID. Specify this field only if `method` is set to **conduit**. */
3679
+ conduit_id?: string;
3391
3680
  };
3392
3681
  };
3393
3682
  EventSubSubscription: {
3394
3683
  /** @description An ID that identifies the subscription. */
3395
3684
  id: string;
3396
3685
  /**
3397
- * @description The subscription’s status. The subscriber receives events only for **enabled** subscriptions. Possible values are:
3686
+ * @description The subscription's status. The subscriber receives events only for **enabled** subscriptions. Possible values are:
3398
3687
  *
3399
3688
  * * enabled — The subscription is enabled.
3400
3689
  * * webhook\_callback\_verification\_pending — The subscription is pending verification of the specified callback URL.
@@ -3403,7 +3692,8 @@ export interface components {
3403
3692
  * * authorization\_revoked — The authorization was revoked for one or more users specified in the **Condition** object.
3404
3693
  * * moderator\_removed — The moderator that authorized the subscription is no longer one of the broadcaster's moderators.
3405
3694
  * * user\_removed — One of the users specified in the **Condition** object was removed.
3406
- * * version\_removed — The subscribed to subscription type and version is no longer supported.
3695
+ * * version\_removed — The subscription to subscription type and version is no longer supported.
3696
+ * * beta\_maintenance — The subscription to the beta subscription type was removed due to maintenance.
3407
3697
  * * websocket\_disconnected — The client closed the connection.
3408
3698
  * * websocket\_failed\_ping\_pong — The client failed to respond to a ping message.
3409
3699
  * * websocket\_received\_inbound\_traffic — The client sent a non-pong message. Clients may only send pong messages (and only in response to a ping message).
@@ -3413,15 +3703,15 @@ export interface components {
3413
3703
  * * websocket\_network\_error — The Twitch WebSocket server experienced a network error writing the message to the client.
3414
3704
  * @enum {string}
3415
3705
  */
3416
- status: "enabled" | "webhook_callback_verification_pending" | "webhook_callback_verification_failed" | "notification_failures_exceeded" | "authorization_revoked" | "moderator_removed" | "user_removed" | "version_removed" | "websocket_disconnected" | "websocket_failed_ping_pong" | "websocket_received_inbound_traffic" | "websocket_connection_unused" | "websocket_internal_error" | "websocket_network_timeout" | "websocket_network_error";
3706
+ status: "enabled" | "webhook_callback_verification_pending" | "webhook_callback_verification_failed" | "notification_failures_exceeded" | "authorization_revoked" | "moderator_removed" | "user_removed" | "version_removed" | "beta_maintenance" | "websocket_disconnected" | "websocket_failed_ping_pong" | "websocket_received_inbound_traffic" | "websocket_connection_unused" | "websocket_internal_error" | "websocket_network_timeout" | "websocket_network_error";
3417
3707
  /**
3418
- * @description The subscription’s type. See [Subscription Types](https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#subscription-types).
3708
+ * @description The subscription's type. See [Subscription Types](https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#subscription-types).
3419
3709
  * @enum {string}
3420
3710
  */
3421
- type: "channel.update" | "channel.follow" | "channel.ad_break.begin" | "channel.chat.clear" | "channel.chat.clear_user_messages" | "channel.chat.message_delete" | "channel.chat.notification" | "channel.chat_settings.update" | "channel.subscribe" | "channel.subscription.end" | "channel.subscription.gift" | "channel.subscription.message" | "channel.cheer" | "channel.raid" | "channel.ban" | "channel.unban" | "channel.moderator.add" | "channel.moderator.remove" | "channel.guest_star_session.begin" | "channel.guest_star_session.end" | "channel.guest_star_guest.update" | "channel.guest_star_settings.update" | "channel.channel_points_custom_reward.add" | "channel.channel_points_custom_reward.update" | "channel.channel_points_custom_reward.remove" | "channel.channel_points_custom_reward_redemption.add" | "channel.channel_points_custom_reward_redemption.update" | "channel.poll.begin" | "channel.poll.progress" | "channel.poll.end" | "channel.prediction.begin" | "channel.prediction.progress" | "channel.prediction.lock" | "channel.prediction.end" | "channel.charity_campaign.donate" | "channel.charity_campaign.start" | "channel.charity_campaign.progress" | "channel.charity_campaign.stop" | "drop.entitlement.grant" | "extension.bits_transaction.create" | "channel.goal.begin" | "channel.goal.progress" | "channel.goal.end" | "channel.hype_train.begin" | "channel.hype_train.progress" | "channel.hype_train.end" | "channel.shield_mode.begin" | "channel.shield_mode.end" | "channel.shoutout.create" | "channel.shoutout.receive" | "stream.online" | "stream.offline" | "user.authorization.grant" | "user.authorization.revoke" | "user.update";
3422
- /** @description The version number that identifies this definition of the subscription’s data. */
3711
+ type: "channel.update" | "channel.follow" | "channel.ad_break.begin" | "channel.chat.clear" | "channel.chat.clear_user_messages" | "channel.chat.message" | "channel.chat.message_delete" | "channel.chat.notification" | "channel.chat_settings.update" | "channel.subscribe" | "channel.subscription.end" | "channel.subscription.gift" | "channel.subscription.message" | "channel.cheer" | "channel.raid" | "channel.ban" | "channel.unban" | "channel.moderator.add" | "channel.moderator.remove" | "channel.guest_star_session.begin" | "channel.guest_star_session.end" | "channel.guest_star_guest.update" | "channel.guest_star_settings.update" | "channel.channel_points_custom_reward.add" | "channel.channel_points_custom_reward.update" | "channel.channel_points_custom_reward.remove" | "channel.channel_points_custom_reward_redemption.add" | "channel.channel_points_custom_reward_redemption.update" | "channel.poll.begin" | "channel.poll.progress" | "channel.poll.end" | "channel.prediction.begin" | "channel.prediction.progress" | "channel.prediction.lock" | "channel.prediction.end" | "channel.charity_campaign.donate" | "channel.charity_campaign.start" | "channel.charity_campaign.progress" | "channel.charity_campaign.stop" | "conduit.shard.disabled" | "drop.entitlement.grant" | "extension.bits_transaction.create" | "channel.goal.begin" | "channel.goal.progress" | "channel.goal.end" | "channel.hype_train.begin" | "channel.hype_train.progress" | "channel.hype_train.end" | "channel.shield_mode.begin" | "channel.shield_mode.end" | "channel.shoutout.create" | "channel.shoutout.receive" | "stream.online" | "stream.offline" | "user.authorization.grant" | "user.authorization.revoke" | "user.update";
3712
+ /** @description The version number that identifies this definition of the subscription's data. */
3423
3713
  version: string;
3424
- /** @description The subscription’s parameter values. This is a string-encoded JSON object whose contents are determined by the subscription type. */
3714
+ /** @description The subscription's parameter values. This is a string-encoded JSON object whose contents are determined by the subscription type. */
3425
3715
  condition: Record<string, never>;
3426
3716
  /**
3427
3717
  * Format: date-time
@@ -3479,11 +3769,11 @@ export interface components {
3479
3769
  max_total_cost: number;
3480
3770
  };
3481
3771
  GetEventSubSubscriptionsResponse: {
3482
- /** @description The list of subscriptions. The list is ordered by the oldest subscription first. The list is empty if the client hasn’t created subscriptions or there are no subscriptions that match the specified filter criteria. */
3772
+ /** @description The list of subscriptions. The list is ordered by the oldest subscription first. The list is empty if the client hasn't created subscriptions or there are no subscriptions that match the specified filter criteria. */
3483
3773
  data: components["schemas"]["EventSubSubscription"][];
3484
3774
  /**
3485
3775
  * Format: int32
3486
- * @description The total number of subscriptions that you’ve created.
3776
+ * @description The total number of subscriptions that you've created.
3487
3777
  */
3488
3778
  total: number;
3489
3779
  /**
@@ -3493,7 +3783,7 @@ export interface components {
3493
3783
  total_cost: number;
3494
3784
  /**
3495
3785
  * Format: int32
3496
- * @description The maximum total cost that you’re allowed to incur for all subscriptions that you create.
3786
+ * @description The maximum total cost that you're allowed to incur for all subscriptions that you create.
3497
3787
  */
3498
3788
  max_total_cost: number;
3499
3789
  /** @description An object that contains the cursor used to get the next page of subscriptions. The object is empty if there are no more pages to get. The number of subscriptions returned per page is undertermined. */
@@ -5224,7 +5514,7 @@ export interface components {
5224
5514
  published_at: string;
5225
5515
  /** @description The video’s URL. */
5226
5516
  url: string;
5227
- /** @description A URL to a thumbnail image of the video. Before using the URL, you must replace the `%{width}` and `%{height}` placeholders with the width and height of the thumbnail you want returned. Specify the width and height in pixels. Because the CDN preserves the thumbnail’s ratio, the thumbnail may not be the exact size you requested. */
5517
+ /** @description A URL to a thumbnail image of the video. Before using the URL, you must replace the `%{width}` and `%{height}` placeholders with the width and height of the thumbnail you want returned. Due to current limitations, `${width}` must be 320 and `${height}` must be 180. */
5228
5518
  thumbnail_url: string;
5229
5519
  /** @description The video’s viewable state. Always set to **public**. */
5230
5520
  viewable: string;
@@ -5436,7 +5726,7 @@ export interface operations {
5436
5726
  "get-extension-analytics": {
5437
5727
  parameters: {
5438
5728
  query?: {
5439
- /** @description The extension’s client ID. If specified, the response contains a report for the specified extension. If not specified, the response includes a report for each extension that the authenticated user owns. */
5729
+ /** @description The extension's client ID. If specified, the response contains a report for the specified extension. If not specified, the response includes a report for each extension that the authenticated user owns. */
5440
5730
  extension_id?: string;
5441
5731
  /**
5442
5732
  * @description The type of analytics report to get. Possible values are:
@@ -5445,17 +5735,17 @@ export interface operations {
5445
5735
  */
5446
5736
  type?: "overview_v2";
5447
5737
  /**
5448
- * @description The reporting window’s start date, in RFC3339 format. Set the time portion to zeroes (for example, 2021-10-22T00:00:00Z).
5738
+ * @description The reporting window's start date, in RFC3339 format. Set the time portion to zeroes (for example, 2021-10-22T00:00:00Z).
5449
5739
  *
5450
- * The start date must be on or after January 31, 2018\. If you specify an earlier date, the API ignores it and uses January 31, 2018\. If you specify a start date, you must specify an end date. If you don’t specify a start and end date, the report includes all available data since January 31, 2018.
5740
+ * The start date must be on or after January 31, 2018\. If you specify an earlier date, the API ignores it and uses January 31, 2018\. If you specify a start date, you must specify an end date. If you don't specify a start and end date, the report includes all available data since January 31, 2018.
5451
5741
  *
5452
5742
  * The report contains one row of data for each day in the reporting window.
5453
5743
  */
5454
5744
  started_at?: string;
5455
5745
  /**
5456
- * @description The reporting window’s end date, in RFC3339 format. Set the time portion to zeroes (for example, 2021-10-27T00:00:00Z). The report is inclusive of the end date.
5746
+ * @description The reporting window's end date, in RFC3339 format. Set the time portion to zeroes (for example, 2021-10-27T00:00:00Z). The report is inclusive of the end date.
5457
5747
  *
5458
- * Specify an end date only if you provide a start date. Because it can take up to two days for the data to be available, you must specify an end date that’s earlier than today minus one to two days. If not, the API ignores your end date and uses an end date that is today minus one to two days.
5748
+ * Specify an end date only if you provide a start date. Because it can take up to two days for the data to be available, you must specify an end date that's earlier than today minus one to two days. If not, the API ignores your end date and uses an end date that is today minus one to two days.
5459
5749
  */
5460
5750
  ended_at?: string;
5461
5751
  /**
@@ -5473,7 +5763,7 @@ export interface operations {
5473
5763
  };
5474
5764
  };
5475
5765
  responses: {
5476
- /** @description Successfully retrieved the broadcaster’s analytics reports. */
5766
+ /** @description Successfully retrieved the broadcaster's analytics reports. */
5477
5767
  200: {
5478
5768
  content: {
5479
5769
  "application/json": components["schemas"]["GetExtensionAnalyticsResponse"];
@@ -6954,7 +7244,6 @@ export interface operations {
6954
7244
  /**
6955
7245
  * @description * The `message` field in the request's body is required.
6956
7246
  * * The `message` field may not contain an empty string.
6957
- * * The `message` field may not contain an empty string.
6958
7247
  * * The string in the `message` field failed review.
6959
7248
  * * The specified color is not valid.
6960
7249
  */
@@ -7051,6 +7340,58 @@ export interface operations {
7051
7340
  };
7052
7341
  };
7053
7342
  };
7343
+ /**
7344
+ * NEW Sends a message to the broadcaster’s chat room.
7345
+ * @description NEW Sends a message to the broadcaster’s chat room.
7346
+ *
7347
+ * __Authorization:__
7348
+ *
7349
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens) or [user access token](https://dev.twitch.tv/docs/authentication#user-access-tokens) that includes the `user:write:chat` scope. If app access token used, then additionally requires `user:bot` scope from chatting user, and either `channel:bot` scope from broadcaster or moderator status.
7350
+ */
7351
+ "send-chat-message": {
7352
+ requestBody?: {
7353
+ content: {
7354
+ "application/json": components["schemas"]["SendChatMessageBody"];
7355
+ };
7356
+ };
7357
+ responses: {
7358
+ /** @description Successfully sent the specified broadcaster a message. */
7359
+ 200: {
7360
+ content: {
7361
+ "application/json": components["schemas"]["SendChatMessageResponse"];
7362
+ };
7363
+ };
7364
+ /**
7365
+ * @description * The _broadcaster\_id_ query parameter is required.
7366
+ * * The ID in the _broadcaster\_id_ query parameter is not valid.
7367
+ * * The _sender\_id_ query parameter is required.
7368
+ * * The ID in the _sender\_id_ query parameter is not valid.
7369
+ * * The _text_ query parameter is required.
7370
+ * * The ID in the _reply\_parent\_message\_id_ query parameter is not valid.
7371
+ */
7372
+ 400: {
7373
+ content: never;
7374
+ };
7375
+ /**
7376
+ * @description * The ID in the user\_id query parameter must match the user ID in the access token.
7377
+ * * The Authorization header is required and must contain a user access token.
7378
+ * * The user access token must include the user:write:chat scope.
7379
+ * * The access token is not valid.
7380
+ * * The client ID specified in the Client-Id header does not match the client ID specified in the access token.
7381
+ */
7382
+ 401: {
7383
+ content: never;
7384
+ };
7385
+ /** @description The sender is not permitted to send chat messages to the broadcaster’s chat room. */
7386
+ 403: {
7387
+ content: never;
7388
+ };
7389
+ /** @description The message is too large. */
7390
+ 422: {
7391
+ content: never;
7392
+ };
7393
+ };
7394
+ };
7054
7395
  /**
7055
7396
  * Gets the color used for the user’s name in chat.
7056
7397
  * @description Gets the color used for the user’s name in chat.
@@ -7105,7 +7446,7 @@ export interface operations {
7105
7446
  /** @description The ID of the user whose chat color you want to update. This ID must match the user ID in the access token. */
7106
7447
  user_id: string;
7107
7448
  /**
7108
- * @description The color to use for the user’s name in chat. All users may specify one of the following named color values.
7449
+ * @description The color to use for the user's name in chat. All users may specify one of the following named color values.
7109
7450
  *
7110
7451
  * * blue
7111
7452
  * * blue\_violet
@@ -7130,7 +7471,7 @@ export interface operations {
7130
7471
  };
7131
7472
  responses: {
7132
7473
  /**
7133
- * @description Successfully updated the user’s chat color.
7474
+ * @description Successfully updated the user's chat color.
7134
7475
  *
7135
7476
  * __Examples__
7136
7477
  *
@@ -7298,6 +7639,237 @@ export interface operations {
7298
7639
  };
7299
7640
  };
7300
7641
  };
7642
+ /**
7643
+ * NEW Gets the conduits for a client ID.
7644
+ * @description NEW Gets the [conduits](https://dev.twitch.tv/docs/eventsub/handling-conduit-events) for a client ID.
7645
+ *
7646
+ * __Authorization:__
7647
+ *
7648
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
7649
+ */
7650
+ "get-conduits": {
7651
+ responses: {
7652
+ /** @description Successfully retrieved conduits. */
7653
+ 200: {
7654
+ content: {
7655
+ "application/json": components["schemas"]["GetConduitsResponse"];
7656
+ };
7657
+ };
7658
+ /** @description Authorization header required with an app access token. */
7659
+ 401: {
7660
+ content: never;
7661
+ };
7662
+ };
7663
+ };
7664
+ /**
7665
+ * NEW Creates a new conduit.
7666
+ * @description NEW Creates a new [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events).
7667
+ *
7668
+ * __Authorization:__
7669
+ *
7670
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
7671
+ */
7672
+ "create-conduits": {
7673
+ requestBody?: {
7674
+ content: {
7675
+ "application/json": components["schemas"]["CreateConduitsBody"];
7676
+ };
7677
+ };
7678
+ responses: {
7679
+ /** @description Conduit created. */
7680
+ 200: {
7681
+ content: {
7682
+ "application/json": components["schemas"]["CreateConduitsResponse"];
7683
+ };
7684
+ };
7685
+ /** @description Invalid shard count. */
7686
+ 400: {
7687
+ content: never;
7688
+ };
7689
+ /** @description Authorization header required with an app access token. */
7690
+ 401: {
7691
+ content: never;
7692
+ };
7693
+ /** @description Conduit limit reached. */
7694
+ 429: {
7695
+ content: never;
7696
+ };
7697
+ };
7698
+ };
7699
+ /**
7700
+ * NEW Deletes a specified conduit.
7701
+ * @description NEW Deletes a specified [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events/). Note that it may take some time for Eventsub subscriptions on a deleted [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events) to show as disabled when calling [Get Eventsub Subscriptions](https://dev.twitch.tv/docs/api/reference/#get-eventsub-subscriptions).
7702
+ *
7703
+ * __Authorization:__
7704
+ *
7705
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
7706
+ */
7707
+ "delete-conduit": {
7708
+ parameters: {
7709
+ query: {
7710
+ /** @description Conduit ID. */
7711
+ id: string;
7712
+ };
7713
+ };
7714
+ responses: {
7715
+ /**
7716
+ * @description Successfully deleted the conduit.
7717
+ *
7718
+ * __Examples__
7719
+ *
7720
+ * _Request:_
7721
+ *
7722
+ * ```bash
7723
+ * curl -X DELETE 'https://api.twitch.tv/helix/eventsub/conduits' \
7724
+ * -H 'Authorization: Bearer cfabdegwdoklmawdzdo98xt2fo512y' \
7725
+ * -H 'Client-Id: uo6dggojyb8d6soh92zknwmi5ej1q2' \
7726
+ * -d '{"id":"bfcfc993-26b1-b876-44d9-afe75a379dac"}'
7727
+ * ```
7728
+ */
7729
+ 204: {
7730
+ content: never;
7731
+ };
7732
+ /** @description The id query parameter is required. */
7733
+ 400: {
7734
+ content: never;
7735
+ };
7736
+ /** @description Authorization header required with an app access token. */
7737
+ 401: {
7738
+ content: never;
7739
+ };
7740
+ /**
7741
+ * @description * Conduit not found.
7742
+ * * Conduit’s owner must match the client ID in the access token.
7743
+ */
7744
+ 404: {
7745
+ content: never;
7746
+ };
7747
+ };
7748
+ };
7749
+ /**
7750
+ * NEW Updates a conduit’s shard count.
7751
+ * @description NEW Updates a [conduit’s](https://dev.twitch.tv/docs/eventsub/handling-conduit-events) shard count. To delete shards, update the count to a lower number, and the shards above the count will be deleted. For example, if the existing shard count is 100, by resetting shard count to 50, shards 50-99 are disabled.
7752
+ *
7753
+ * __Authorization:__
7754
+ *
7755
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
7756
+ */
7757
+ "update-conduits": {
7758
+ requestBody?: {
7759
+ content: {
7760
+ "application/json": components["schemas"]["UpdateConduitsBody"];
7761
+ };
7762
+ };
7763
+ responses: {
7764
+ /** @description Conduit updated. */
7765
+ 200: {
7766
+ content: {
7767
+ "application/json": components["schemas"]["UpdateConduitsResponse"];
7768
+ };
7769
+ };
7770
+ /**
7771
+ * @description * Invalid shard count
7772
+ * * The id query parameter is required.
7773
+ */
7774
+ 400: {
7775
+ content: never;
7776
+ };
7777
+ /** @description Authorization header required with an app access token. */
7778
+ 401: {
7779
+ content: never;
7780
+ };
7781
+ /**
7782
+ * @description * Conduit not found.
7783
+ * * Conduit’s owner must match the client ID in the access token.
7784
+ */
7785
+ 404: {
7786
+ content: never;
7787
+ };
7788
+ };
7789
+ };
7790
+ /**
7791
+ * NEW Gets a lists of all shards for a conduit.
7792
+ * @description NEW Gets a lists of all shards for a [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events).
7793
+ *
7794
+ * __Authorization:__
7795
+ *
7796
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
7797
+ */
7798
+ "get-conduit-shards": {
7799
+ parameters: {
7800
+ query: {
7801
+ /** @description Conduit ID. */
7802
+ conduit_id: string;
7803
+ /** @description Status to filter by. */
7804
+ status?: string;
7805
+ /** @description The cursor used to get the next page of results. The pagination object in the response contains the cursor’s value. */
7806
+ after?: string;
7807
+ };
7808
+ };
7809
+ responses: {
7810
+ /** @description Successfully retrieved shards. */
7811
+ 200: {
7812
+ content: {
7813
+ "application/json": components["schemas"]["GetConduitShardsResponse"];
7814
+ };
7815
+ };
7816
+ /** @description The id query parameter is required. */
7817
+ 400: {
7818
+ content: never;
7819
+ };
7820
+ /** @description Authorization header required with an app access token. */
7821
+ 401: {
7822
+ content: never;
7823
+ };
7824
+ /**
7825
+ * @description * Conduit not found.
7826
+ * * Conduit’s owner must match the client ID in the access token.
7827
+ */
7828
+ 404: {
7829
+ content: never;
7830
+ };
7831
+ };
7832
+ };
7833
+ /**
7834
+ * NEW Updates shard(s) for a conduit.
7835
+ * @description NEW Updates shard(s) for a [conduit](https://dev.twitch.tv/docs/eventsub/handling-conduit-events).
7836
+ *
7837
+ * **NOTE:** Shard IDs are indexed starting at 0, so a conduit with a `shard_count` of 5 will have shards with IDs 0 through 4.
7838
+ *
7839
+ * __Authorization:__
7840
+ *
7841
+ * Requires an [app access token](https://dev.twitch.tv/docs/authentication#app-access-tokens).
7842
+ */
7843
+ "update-conduit-shards": {
7844
+ requestBody?: {
7845
+ content: {
7846
+ "application/json": components["schemas"]["UpdateConduitShardsBody"];
7847
+ };
7848
+ };
7849
+ responses: {
7850
+ /** @description Successfully retrieved shards. */
7851
+ 202: {
7852
+ content: {
7853
+ "application/json": components["schemas"]["UpdateConduitShardsResponse"];
7854
+ };
7855
+ };
7856
+ /** @description The id query parameter is required. */
7857
+ 400: {
7858
+ content: never;
7859
+ };
7860
+ /** @description Authorization header required with an app access token. */
7861
+ 401: {
7862
+ content: never;
7863
+ };
7864
+ /**
7865
+ * @description * Conduit not found.
7866
+ * * Conduit’s owner must match the client ID in the access token.
7867
+ */
7868
+ 404: {
7869
+ content: never;
7870
+ };
7871
+ };
7872
+ };
7301
7873
  /**
7302
7874
  * Gets information about Twitch content classification labels.
7303
7875
  * @description Gets information about Twitch content classification labels.
@@ -8062,7 +8634,7 @@ export interface operations {
8062
8634
  * * The value in the `sku` field is not valid. The SKU may contain only alphanumeric characters, dashes (-), underscores (\_), and periods (.).
8063
8635
  * * The `cost` object's `amount` field is required.
8064
8636
  * * The value in the `cost` object's `amount` field is not valid.
8065
- * * The cost object's `type` field is required.
8637
+ * * The `cost` object's `type` field is required.
8066
8638
  * * The value in the `cost` object's `type` field is not valid.
8067
8639
  * * The `display_name` field is required.
8068
8640
  * * The ID in the Client-Id header must belong to the extension.
@@ -8107,7 +8679,8 @@ export interface operations {
8107
8679
  * * authorization\_revoked — The authorization was revoked for one or more users specified in the **Condition** object.
8108
8680
  * * moderator\_removed — The moderator that authorized the subscription is no longer one of the broadcaster's moderators.
8109
8681
  * * user\_removed — One of the users specified in the **Condition** object was removed.
8110
- * * version\_removed — The subscribed to subscription type and version is no longer supported.
8682
+ * * version\_removed — The subscription to subscription type and version is no longer supported.
8683
+ * * beta\_maintenance — The subscription to the beta subscription type was removed due to maintenance.
8111
8684
  * * websocket\_disconnected — The client closed the connection.
8112
8685
  * * websocket\_failed\_ping\_pong — The client failed to respond to a ping message.
8113
8686
  * * websocket\_received\_inbound\_traffic — The client sent a non-pong message. Clients may only send pong messages (and only in response to a ping message).
@@ -8116,12 +8689,12 @@ export interface operations {
8116
8689
  * * websocket\_network\_timeout — The Twitch WebSocket server timed out writing the message to the client.
8117
8690
  * * websocket\_network\_error — The Twitch WebSocket server experienced a network error writing the message to the client.
8118
8691
  */
8119
- status?: "enabled" | "webhook_callback_verification_pending" | "webhook_callback_verification_failed" | "notification_failures_exceeded" | "authorization_revoked" | "moderator_removed" | "user_removed" | "version_removed" | "websocket_disconnected" | "websocket_failed_ping_pong" | "websocket_received_inbound_traffic" | "websocket_connection_unused" | "websocket_internal_error" | "websocket_network_timeout" | "websocket_network_error";
8692
+ status?: "enabled" | "webhook_callback_verification_pending" | "webhook_callback_verification_failed" | "notification_failures_exceeded" | "authorization_revoked" | "moderator_removed" | "user_removed" | "version_removed" | "beta_maintenance" | "websocket_disconnected" | "websocket_failed_ping_pong" | "websocket_received_inbound_traffic" | "websocket_connection_unused" | "websocket_internal_error" | "websocket_network_timeout" | "websocket_network_error";
8120
8693
  /** @description Filter subscriptions by subscription type. For a list of subscription types, see [Subscription Types](https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#subscription-types). */
8121
- type?: "channel.update" | "channel.follow" | "channel.ad_break.begin" | "channel.chat.clear" | "channel.chat.clear_user_messages" | "channel.chat.message_delete" | "channel.chat.notification" | "channel.chat_settings.update" | "channel.subscribe" | "channel.subscription.end" | "channel.subscription.gift" | "channel.subscription.message" | "channel.cheer" | "channel.raid" | "channel.ban" | "channel.unban" | "channel.moderator.add" | "channel.moderator.remove" | "channel.guest_star_session.begin" | "channel.guest_star_session.end" | "channel.guest_star_guest.update" | "channel.guest_star_settings.update" | "channel.channel_points_custom_reward.add" | "channel.channel_points_custom_reward.update" | "channel.channel_points_custom_reward.remove" | "channel.channel_points_custom_reward_redemption.add" | "channel.channel_points_custom_reward_redemption.update" | "channel.poll.begin" | "channel.poll.progress" | "channel.poll.end" | "channel.prediction.begin" | "channel.prediction.progress" | "channel.prediction.lock" | "channel.prediction.end" | "channel.charity_campaign.donate" | "channel.charity_campaign.start" | "channel.charity_campaign.progress" | "channel.charity_campaign.stop" | "drop.entitlement.grant" | "extension.bits_transaction.create" | "channel.goal.begin" | "channel.goal.progress" | "channel.goal.end" | "channel.hype_train.begin" | "channel.hype_train.progress" | "channel.hype_train.end" | "channel.shield_mode.begin" | "channel.shield_mode.end" | "channel.shoutout.create" | "channel.shoutout.receive" | "stream.online" | "stream.offline" | "user.authorization.grant" | "user.authorization.revoke" | "user.update";
8694
+ type?: "channel.update" | "channel.follow" | "channel.ad_break.begin" | "channel.chat.clear" | "channel.chat.clear_user_messages" | "channel.chat.message" | "channel.chat.message_delete" | "channel.chat.notification" | "channel.chat_settings.update" | "channel.subscribe" | "channel.subscription.end" | "channel.subscription.gift" | "channel.subscription.message" | "channel.cheer" | "channel.raid" | "channel.ban" | "channel.unban" | "channel.moderator.add" | "channel.moderator.remove" | "channel.guest_star_session.begin" | "channel.guest_star_session.end" | "channel.guest_star_guest.update" | "channel.guest_star_settings.update" | "channel.channel_points_custom_reward.add" | "channel.channel_points_custom_reward.update" | "channel.channel_points_custom_reward.remove" | "channel.channel_points_custom_reward_redemption.add" | "channel.channel_points_custom_reward_redemption.update" | "channel.poll.begin" | "channel.poll.progress" | "channel.poll.end" | "channel.prediction.begin" | "channel.prediction.progress" | "channel.prediction.lock" | "channel.prediction.end" | "channel.charity_campaign.donate" | "channel.charity_campaign.start" | "channel.charity_campaign.progress" | "channel.charity_campaign.stop" | "conduit.shard.disabled" | "drop.entitlement.grant" | "extension.bits_transaction.create" | "channel.goal.begin" | "channel.goal.progress" | "channel.goal.end" | "channel.hype_train.begin" | "channel.hype_train.progress" | "channel.hype_train.end" | "channel.shield_mode.begin" | "channel.shield_mode.end" | "channel.shoutout.create" | "channel.shoutout.receive" | "stream.online" | "stream.offline" | "user.authorization.grant" | "user.authorization.revoke" | "user.update";
8122
8695
  /** @description Filter subscriptions by user ID. The response contains subscriptions where this ID matches a user ID that you specified in the **Condition** object when you [created the subscription](https://dev.twitch.tv/docs/api/reference#create-eventsub-subscription). */
8123
8696
  user_id?: string;
8124
- /** @description The cursor used to get the next page of results. The `pagination` object in the response contains the cursor’s value. */
8697
+ /** @description The cursor used to get the next page of results. The `pagination` object in the response contains the cursor's value. */
8125
8698
  after?: string;
8126
8699
  };
8127
8700
  };
@@ -8160,6 +8733,8 @@ export interface operations {
8160
8733
  * If you use [webhooks to receive events](https://dev.twitch.tv/docs/eventsub/handling-webhook-events), the request must specify an app access token. The request will fail if you use a user access token. If the subscription type requires user authorization, the user must have granted your app (client ID) permissions to receive those events before you subscribe to them. For example, to subscribe to [channel.subscribe](https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/#channelsubscribe) events, your app must get a user access token that includes the `channel:read:subscriptions` scope, which adds the required permission to your app access token’s client ID.
8161
8734
  *
8162
8735
  * If you use [WebSockets to receive events](https://dev.twitch.tv/docs/eventsub/handling-websocket-events), the request must specify a user access token. The request will fail if you use an app access token. If the subscription type requires user authorization, the token must include the required scope. However, if the subscription type doesn’t include user authorization, the token may include any scopes or no scopes.
8736
+ *
8737
+ * If you use [Conduits](https://dev.twitch.tv/docs/eventsub/handling-conduit-events) to receive events, the request must specify an app access token. The request will fail if you use a user access token.
8163
8738
  */
8164
8739
  "create-eventsub-subscription": {
8165
8740
  requestBody?: {
@@ -8185,6 +8760,7 @@ export interface operations {
8185
8760
  * * The `callback` field is required if you specify the webhook transport method.
8186
8761
  * * The `session_id` field is required if you specify the WebSocket transport method.
8187
8762
  * * The combination of subscription type and version is not valid.
8763
+ * * The `conduit_id` field is required if you specify the Conduit transport method.
8188
8764
  */
8189
8765
  400: {
8190
8766
  content: never;
@@ -8198,15 +8774,15 @@ export interface operations {
8198
8774
  401: {
8199
8775
  content: never;
8200
8776
  };
8201
- /** @description * The access token is missing the required scopes. */
8777
+ /** @description The access token is missing the required scopes. */
8202
8778
  403: {
8203
8779
  content: never;
8204
8780
  };
8205
- /** @description * A subscription already exists for the specified event type and condition combination. */
8781
+ /** @description A subscription already exists for the specified event type and `condition` combination. */
8206
8782
  409: {
8207
8783
  content: never;
8208
8784
  };
8209
- /** @description * The request exceeds the number of subscriptions that you may create with the same combination of `type` and `condition` values. */
8785
+ /** @description The request exceeds the number of subscriptions that you may create with the same combination of `type` and `condition` values. */
8210
8786
  429: {
8211
8787
  content: never;
8212
8788
  };