rozod 6.7.0 → 6.8.0

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.
Files changed (70) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +75 -451
  3. package/lib/endpoints/accountinformationv1.d.ts +50 -87
  4. package/lib/endpoints/accountinformationv1.js +46 -90
  5. package/lib/endpoints/assetdeliveryv1.d.ts +39 -0
  6. package/lib/endpoints/assetdeliveryv1.js +39 -0
  7. package/lib/endpoints/assetdeliveryv2.d.ts +27 -0
  8. package/lib/endpoints/assetdeliveryv2.js +27 -0
  9. package/lib/endpoints/authv1.d.ts +71 -3
  10. package/lib/endpoints/authv1.js +70 -4
  11. package/lib/endpoints/authv2.d.ts +22 -1
  12. package/lib/endpoints/authv2.js +23 -2
  13. package/lib/endpoints/avatarv1.d.ts +9 -6
  14. package/lib/endpoints/avatarv1.js +9 -6
  15. package/lib/endpoints/avatarv2.d.ts +11 -5
  16. package/lib/endpoints/avatarv2.js +11 -5
  17. package/lib/endpoints/avatarv3.d.ts +16 -7
  18. package/lib/endpoints/avatarv3.js +16 -7
  19. package/lib/endpoints/badgesv1.d.ts +4 -0
  20. package/lib/endpoints/badgesv1.js +4 -0
  21. package/lib/endpoints/catalogv1.d.ts +25 -3
  22. package/lib/endpoints/catalogv1.js +21 -3
  23. package/lib/endpoints/catalogv2.d.ts +294 -50
  24. package/lib/endpoints/catalogv2.js +256 -24
  25. package/lib/endpoints/clientsettingsv2.d.ts +6 -0
  26. package/lib/endpoints/clientsettingsv2.js +6 -0
  27. package/lib/endpoints/contactsv1.d.ts +18 -22
  28. package/lib/endpoints/contactsv1.js +14 -22
  29. package/lib/endpoints/developv1.d.ts +36 -1
  30. package/lib/endpoints/developv1.js +12 -3
  31. package/lib/endpoints/developv2.d.ts +32 -3
  32. package/lib/endpoints/developv2.js +16 -5
  33. package/lib/endpoints/friendsv1.d.ts +222 -314
  34. package/lib/endpoints/friendsv1.js +213 -313
  35. package/lib/endpoints/gameinternationalizationv1.d.ts +59 -0
  36. package/lib/endpoints/gameinternationalizationv1.js +57 -1
  37. package/lib/endpoints/gamesv1.d.ts +79 -0
  38. package/lib/endpoints/gamesv1.js +70 -97
  39. package/lib/endpoints/gamesv2.d.ts +12 -0
  40. package/lib/endpoints/gamesv2.js +10 -0
  41. package/lib/endpoints/groupsv1.d.ts +49 -4
  42. package/lib/endpoints/groupsv1.js +55 -7
  43. package/lib/endpoints/groupsv2.d.ts +2 -0
  44. package/lib/endpoints/groupsv2.js +2 -0
  45. package/lib/endpoints/inventoryv1.d.ts +3 -1
  46. package/lib/endpoints/inventoryv1.js +3 -1
  47. package/lib/endpoints/inventoryv2.d.ts +70 -0
  48. package/lib/endpoints/inventoryv2.js +68 -1
  49. package/lib/endpoints/localev1.d.ts +27 -0
  50. package/lib/endpoints/localev1.js +28 -1
  51. package/lib/endpoints/publishv1.d.ts +3 -6
  52. package/lib/endpoints/publishv1.js +3 -6
  53. package/lib/endpoints/thumbnailsv1.d.ts +44 -87
  54. package/lib/endpoints/thumbnailsv1.js +25 -0
  55. package/lib/index.d.ts +96 -3
  56. package/lib/index.js +114 -1
  57. package/lib/opencloud/v1/asset-permissions.d.ts +1 -1
  58. package/lib/opencloud/v1/assets.d.ts +9 -9
  59. package/lib/opencloud/v1/datastores-ordered.d.ts +6 -6
  60. package/lib/opencloud/v1/datastores.d.ts +8 -8
  61. package/lib/opencloud/v1/developer-products.d.ts +4 -4
  62. package/lib/opencloud/v1/game-passes.d.ts +4 -4
  63. package/lib/opencloud/v1/messaging.d.ts +1 -1
  64. package/lib/opencloud/v1/open-eval.d.ts +2 -2
  65. package/lib/opencloud/v1/secrets-store.d.ts +5 -5
  66. package/lib/opencloud/v1/toolbox.d.ts +2 -2
  67. package/lib/opencloud/v1/universes.d.ts +1 -1
  68. package/lib/opencloud/v2/cloud.d.ts +197 -87
  69. package/lib/opencloud/v2/cloud.js +68 -15
  70. package/package.json +108 -108
@@ -30,6 +30,7 @@ const Roblox_Friends_Api_FriendRequest = z.object({
30
30
  "PhoneContactImporter",
31
31
  "FriendRecommendations",
32
32
  "UserCommunities",
33
+ "TrustedFriend",
33
34
  ]),
34
35
  contactName: z.string(),
35
36
  senderNickname: z.string(),
@@ -127,10 +128,6 @@ const Roblox_Friends_Api_FriendStatusResponse = z.object({
127
128
  });
128
129
  const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Friends_Api_FriendStatusResponse_ =
129
130
  z.object({ data: z.array(Roblox_Friends_Api_FriendStatusResponse) });
130
- const Roblox_Friends_Api_CaptchaStatusResponseModel = z.object({
131
- success: z.boolean(),
132
- isCaptchaRequired: z.boolean(),
133
- });
134
131
  const Roblox_Friends_Api_Models_Response_RefreshQrSessionResponse = z.object({
135
132
  Success: z.boolean(),
136
133
  });
@@ -154,82 +151,18 @@ const Roblox_Friends_Api_Models_Response_FollowingExistsResponseModel =
154
151
  Roblox_Friends_Api_Models_Response_FollowingExistsResponse
155
152
  ),
156
153
  });
157
- const Roblox_Friends_Api_Models_Response_DeclineAllFriendRequestsResponse =
158
- z.object({ backgrounded: z.boolean() });
159
- const Roblox_Web_WebAPI_ApiEmptyResponseModel = z.object({});
160
- const Roblox_Friends_Api_Models_Request_FriendingTokenRequestModel = z.object({
161
- friendingToken: z.string(),
162
- });
163
154
  const Roblox_Web_Captcha_Models_Request_CaptchaTokenRequest = z.object({
164
155
  captchaId: z.string(),
165
156
  captchaToken: z.string(),
166
157
  captchaProvider: z.string(),
167
158
  challengeId: z.string(),
168
159
  });
169
- const Roblox_Friends_Api_FriendshipRequestModel = z.object({
170
- friendshipOriginSourceType: z.enum([
171
- "Unknown",
172
- "PlayerSearch",
173
- "QrCode",
174
- "InGame",
175
- "UserProfile",
176
- "QqContactImporter",
177
- "WeChatContactImporter",
178
- "ProfileShare",
179
- "PhoneContactImporter",
180
- "FriendRecommendations",
181
- "UserCommunities",
182
- ]),
183
- senderNickname: z.string(),
160
+ const Roblox_Friends_Api_CaptchaStatusResponseModel = z.object({
161
+ success: z.boolean(),
162
+ isCaptchaRequired: z.boolean(),
184
163
  });
185
- const Roblox_Friends_Api_Models_Response_ClearNewFriendRequestResponse =
186
- z.object({ status: z.boolean() });
164
+ const Roblox_Web_WebAPI_ApiEmptyResponseModel = z.object({});
187
165
 
188
- /**
189
- * @api POST https://friends.roblox.com/v1/contacts/:targetContactId/request-friendship
190
- * @summary Send a contact friend request to target user
191
- * @param targetContactId The target contact Id for friend request
192
- */
193
- export const postContactsTargetcontactidRequestFriendship = endpoint({
194
- method: "POST",
195
- path: "/v1/contacts/:targetContactId/request-friendship",
196
- baseUrl: "https://friends.roblox.com",
197
- requestFormat: "json",
198
- serializationMethod: {
199
- targetContactId: {
200
- style: "simple",
201
- },
202
- },
203
- parameters: {
204
- targetContactId: z.string(),
205
- },
206
- response: Roblox_Friends_Api_CaptchaStatusResponseModel,
207
- errors: [
208
- {
209
- status: 400,
210
- description: `1: The target user is invalid or does not exist.
211
- 5: The target user is already a friend.
212
- 6: Invalid parameters.
213
- 7: The user cannot be friends with itself.
214
- 31: User with max friends sent friend request.`,
215
- },
216
- {
217
- status: 401,
218
- description: `0: Authorization has been denied for this request.`,
219
- },
220
- {
221
- status: 403,
222
- description: `0: Token Validation Failed
223
- 2: The user is banned from performing operation.
224
- 3: The user is blocked from performing this action.
225
- 14: The user has not passed the captcha.`,
226
- },
227
- {
228
- status: 429,
229
- description: `9: The flood limit has been exceeded.`,
230
- },
231
- ],
232
- });
233
166
  /**
234
167
  * @api GET https://friends.roblox.com/v1/metadata
235
168
  * @param targetUserId
@@ -376,26 +309,6 @@ export const getMyFriendsRequests = endpoint({
376
309
  },
377
310
  ],
378
311
  });
379
- /**
380
- * @api DELETE https://friends.roblox.com/v1/my/new-friend-requests
381
- */
382
- export const deleteMyNewFriendRequests = endpoint({
383
- method: "DELETE",
384
- path: "/v1/my/new-friend-requests",
385
- baseUrl: "https://friends.roblox.com",
386
- requestFormat: "json",
387
- response: z.object({ status: z.boolean() }),
388
- errors: [
389
- {
390
- status: 401,
391
- description: `0: Authorization has been denied for this request.`,
392
- },
393
- {
394
- status: 403,
395
- description: `0: Token Validation Failed`,
396
- },
397
- ],
398
- });
399
312
  /**
400
313
  * @api GET https://friends.roblox.com/v1/my/new-friend-requests/count
401
314
  */
@@ -514,143 +427,6 @@ export const getUserFriendRequestsCount = endpoint({
514
427
  },
515
428
  ],
516
429
  });
517
- /**
518
- * @api POST https://friends.roblox.com/v1/user/friend-requests/decline-all
519
- * @summary Decline all pending friend requests for the authenticated user.
520
- */
521
- export const postUserFriendRequestsDeclineAll = endpoint({
522
- method: "POST",
523
- path: "/v1/user/friend-requests/decline-all",
524
- baseUrl: "https://friends.roblox.com",
525
- requestFormat: "json",
526
- response: z.object({ backgrounded: z.boolean() }),
527
- errors: [
528
- {
529
- status: 401,
530
- description: `0: Authorization has been denied for this request.`,
531
- },
532
- {
533
- status: 403,
534
- description: `0: Token Validation Failed`,
535
- },
536
- ],
537
- });
538
- /**
539
- * @api POST https://friends.roblox.com/v1/users/:requesterUserId/accept-friend-request
540
- * @summary Accept a friend request.
541
- * @param requesterUserId The user Id of the requester
542
- */
543
- export const postUsersRequesteruseridAcceptFriendRequest = endpoint({
544
- method: "POST",
545
- path: "/v1/users/:requesterUserId/accept-friend-request",
546
- baseUrl: "https://friends.roblox.com",
547
- requestFormat: "json",
548
- serializationMethod: {
549
- requesterUserId: {
550
- style: "simple",
551
- },
552
- },
553
- parameters: {
554
- requesterUserId: z.number().int(),
555
- },
556
- response: z.object({}),
557
- errors: [
558
- {
559
- status: 400,
560
- description: `1: The target user is invalid or does not exist.
561
- 10: The friend request does not exist.
562
- 11: The current users friends limit has been exceeded.
563
- 12: The target users friends limit has been exceeded.`,
564
- },
565
- {
566
- status: 401,
567
- description: `0: Authorization has been denied for this request.`,
568
- },
569
- {
570
- status: 403,
571
- description: `0: Token Validation Failed
572
- 3: The user is blocked from performing this action.`,
573
- },
574
- ],
575
- });
576
- /**
577
- * @api POST https://friends.roblox.com/v1/users/:requesterUserId/decline-friend-request
578
- * @summary Decline a friend request.
579
- * @param requesterUserId The user Id of the requester
580
- */
581
- export const postUsersRequesteruseridDeclineFriendRequest = endpoint({
582
- method: "POST",
583
- path: "/v1/users/:requesterUserId/decline-friend-request",
584
- baseUrl: "https://friends.roblox.com",
585
- requestFormat: "json",
586
- serializationMethod: {
587
- requesterUserId: {
588
- style: "simple",
589
- },
590
- },
591
- parameters: {
592
- requesterUserId: z.number().int(),
593
- },
594
- response: z.object({}),
595
- errors: [
596
- {
597
- status: 400,
598
- description: `1: The target user is invalid or does not exist.
599
- 10: The friend request does not exist.`,
600
- },
601
- {
602
- status: 401,
603
- description: `0: Authorization has been denied for this request.`,
604
- },
605
- {
606
- status: 403,
607
- description: `0: Token Validation Failed`,
608
- },
609
- ],
610
- });
611
- /**
612
- * @api POST https://friends.roblox.com/v1/users/:senderUserId/accept-friend-request-with-token
613
- * @summary Accept a friend request with an Off Network Friending token.
614
- * @param body
615
- * @param senderUserId The user id of the sender of the off network friend request
616
- */
617
- export const postUsersSenderuseridAcceptFriendRequestWithToken = endpoint({
618
- method: "POST",
619
- path: "/v1/users/:senderUserId/accept-friend-request-with-token",
620
- baseUrl: "https://friends.roblox.com",
621
- requestFormat: "json",
622
- serializationMethod: {
623
- body: {},
624
- senderUserId: {
625
- style: "simple",
626
- },
627
- },
628
- parameters: {
629
- senderUserId: z.number().int(),
630
- },
631
- body: z.object({ friendingToken: z.string() }),
632
- response: z.object({}),
633
- errors: [
634
- {
635
- status: 400,
636
- description: `1: The target user is invalid or does not exist.
637
- 3: The user is blocked from performing this action.
638
- 5: The target user is already a friend.
639
- 6: Invalid parameters.
640
- 7: The user cannot be friends with itself.
641
- 11: The current users friends limit has been exceeded.
642
- 12: The target users friends limit has been exceeded.`,
643
- },
644
- {
645
- status: 401,
646
- description: `0: Authorization has been denied for this request.`,
647
- },
648
- {
649
- status: 403,
650
- description: `0: Token Validation Failed`,
651
- },
652
- ],
653
- });
654
430
  /**
655
431
  * @api POST https://friends.roblox.com/v1/users/:targetUserId/follow
656
432
  * @summary Creates the following between a user and user with targetUserId
@@ -877,57 +653,6 @@ export const getUsersTargetuseridFollowingsCount = endpoint({
877
653
  },
878
654
  ],
879
655
  });
880
- /**
881
- * @api POST https://friends.roblox.com/v1/users/:targetUserId/request-friendship
882
- * @summary Send a friend request to target user
883
- * @param body The source which the friend request originated from
884
- * @param targetUserId The target user Id for friend request
885
- */
886
- export const postUsersTargetuseridRequestFriendship = endpoint({
887
- method: "POST",
888
- path: "/v1/users/:targetUserId/request-friendship",
889
- baseUrl: "https://friends.roblox.com",
890
- requestFormat: "json",
891
- serializationMethod: {
892
- body: {},
893
- targetUserId: {
894
- style: "simple",
895
- },
896
- },
897
- parameters: {
898
- targetUserId: z.number().int(),
899
- },
900
- body: Roblox_Friends_Api_FriendshipRequestModel,
901
- response: Roblox_Friends_Api_CaptchaStatusResponseModel,
902
- errors: [
903
- {
904
- status: 400,
905
- description: `1: The target user is invalid or does not exist.
906
- 5: The target user is already a friend.
907
- 6: Invalid parameters.
908
- 7: The user cannot be friends with itself.
909
- 10: The friend request does not exist.
910
- 13: The users are not in the same game.
911
- 31: User with max friends sent friend request.
912
- 35: Invalid nickname.`,
913
- },
914
- {
915
- status: 401,
916
- description: `0: Authorization has been denied for this request.`,
917
- },
918
- {
919
- status: 403,
920
- description: `0: Token Validation Failed
921
- 2: The user is banned from performing operation.
922
- 3: The user is blocked from performing this action.
923
- 14: The user has not passed the captcha.`,
924
- },
925
- {
926
- status: 429,
927
- description: `9: The flood limit has been exceeded.`,
928
- },
929
- ],
930
- });
931
656
  /**
932
657
  * @api POST https://friends.roblox.com/v1/users/:targetUserId/unfollow
933
658
  * @summary Deletes the following between a user and user with targetUserId
@@ -971,40 +696,6 @@ export const postUsersTargetuseridUnfollow = endpoint({
971
696
  },
972
697
  ],
973
698
  });
974
- /**
975
- * @api POST https://friends.roblox.com/v1/users/:targetUserId/unfriend
976
- * @summary Unfriend a user
977
- * @param targetUserId The target user id to unfriend
978
- */
979
- export const postUsersTargetuseridUnfriend = endpoint({
980
- method: "POST",
981
- path: "/v1/users/:targetUserId/unfriend",
982
- baseUrl: "https://friends.roblox.com",
983
- requestFormat: "json",
984
- serializationMethod: {
985
- targetUserId: {
986
- style: "simple",
987
- },
988
- },
989
- parameters: {
990
- targetUserId: z.number().int(),
991
- },
992
- response: z.object({}),
993
- errors: [
994
- {
995
- status: 400,
996
- description: `1: The target user is invalid or does not exist.`,
997
- },
998
- {
999
- status: 401,
1000
- description: `0: Authorization has been denied for this request.`,
1001
- },
1002
- {
1003
- status: 403,
1004
- description: `0: Token Validation Failed`,
1005
- },
1006
- ],
1007
- });
1008
699
  /**
1009
700
  * @api GET https://friends.roblox.com/v1/users/:userId/friends
1010
701
  * @summary Get list of all friends for the specified user.
@@ -1341,3 +1032,220 @@ export const getUserUseridMultigetAreTrustedFriends = endpoint({
1341
1032
  { status: 400, description: `1: The target user is invalid or does not exist.` },
1342
1033
  ],
1343
1034
  });
1035
+
1036
+ // Friend-management write endpoints Roblox removed from its published API docs but
1037
+ // which remain functional. Not on the official deprecated-endpoints list; the docs
1038
+ // only list the older /api/friends/* and api.roblox.com/user/* variants as removed.
1039
+
1040
+ const Patch_FriendshipRequestModel = z.object({
1041
+ friendshipOriginSourceType: z.enum([
1042
+ 'Unknown',
1043
+ 'PlayerSearch',
1044
+ 'QrCode',
1045
+ 'InGame',
1046
+ 'UserProfile',
1047
+ 'QqContactImporter',
1048
+ 'WeChatContactImporter',
1049
+ 'ProfileShare',
1050
+ 'PhoneContactImporter',
1051
+ 'FriendRecommendations',
1052
+ 'UserCommunities',
1053
+ ]),
1054
+ senderNickname: z.string(),
1055
+ });
1056
+
1057
+ export const postContactsTargetcontactidRequestFriendship = endpoint({
1058
+ method: 'POST',
1059
+ path: '/v1/contacts/:targetContactId/request-friendship',
1060
+ baseUrl: 'https://friends.roblox.com',
1061
+ requestFormat: 'json',
1062
+ serializationMethod: {
1063
+ targetContactId: { style: 'simple' },
1064
+ },
1065
+ parameters: {
1066
+ targetContactId: z.string(),
1067
+ },
1068
+ response: Roblox_Friends_Api_CaptchaStatusResponseModel,
1069
+ errors: [
1070
+ {
1071
+ status: 400,
1072
+ description: `1: The target user is invalid or does not exist.
1073
+ 5: The target user is already a friend.
1074
+ 6: Invalid parameters.
1075
+ 7: The user cannot be friends with itself.
1076
+ 31: User with max friends sent friend request.`,
1077
+ },
1078
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1079
+ {
1080
+ status: 403,
1081
+ description: `0: Token Validation Failed
1082
+ 2: The user is banned from performing operation.
1083
+ 3: The user is blocked from performing this action.
1084
+ 14: The user has not passed the captcha.`,
1085
+ },
1086
+ { status: 429, description: `9: The flood limit has been exceeded.` },
1087
+ ],
1088
+ });
1089
+
1090
+ export const deleteMyNewFriendRequests = endpoint({
1091
+ method: 'DELETE',
1092
+ path: '/v1/my/new-friend-requests',
1093
+ baseUrl: 'https://friends.roblox.com',
1094
+ requestFormat: 'json',
1095
+ response: z.object({ status: z.boolean() }),
1096
+ errors: [
1097
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1098
+ { status: 403, description: `0: Token Validation Failed` },
1099
+ ],
1100
+ });
1101
+
1102
+ export const postUserFriendRequestsDeclineAll = endpoint({
1103
+ method: 'POST',
1104
+ path: '/v1/user/friend-requests/decline-all',
1105
+ baseUrl: 'https://friends.roblox.com',
1106
+ requestFormat: 'json',
1107
+ response: z.object({ backgrounded: z.boolean() }),
1108
+ errors: [
1109
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1110
+ { status: 403, description: `0: Token Validation Failed` },
1111
+ ],
1112
+ });
1113
+
1114
+ export const postUsersRequesteruseridAcceptFriendRequest = endpoint({
1115
+ method: 'POST',
1116
+ path: '/v1/users/:requesterUserId/accept-friend-request',
1117
+ baseUrl: 'https://friends.roblox.com',
1118
+ requestFormat: 'json',
1119
+ serializationMethod: {
1120
+ requesterUserId: { style: 'simple' },
1121
+ },
1122
+ parameters: {
1123
+ requesterUserId: z.number().int(),
1124
+ },
1125
+ response: z.object({}),
1126
+ errors: [
1127
+ {
1128
+ status: 400,
1129
+ description: `1: The target user is invalid or does not exist.
1130
+ 10: The friend request does not exist.
1131
+ 11: The current users friends limit has been exceeded.
1132
+ 12: The target users friends limit has been exceeded.`,
1133
+ },
1134
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1135
+ {
1136
+ status: 403,
1137
+ description: `0: Token Validation Failed
1138
+ 3: The user is blocked from performing this action.`,
1139
+ },
1140
+ ],
1141
+ });
1142
+
1143
+ export const postUsersRequesteruseridDeclineFriendRequest = endpoint({
1144
+ method: 'POST',
1145
+ path: '/v1/users/:requesterUserId/decline-friend-request',
1146
+ baseUrl: 'https://friends.roblox.com',
1147
+ requestFormat: 'json',
1148
+ serializationMethod: {
1149
+ requesterUserId: { style: 'simple' },
1150
+ },
1151
+ parameters: {
1152
+ requesterUserId: z.number().int(),
1153
+ },
1154
+ response: z.object({}),
1155
+ errors: [
1156
+ {
1157
+ status: 400,
1158
+ description: `1: The target user is invalid or does not exist.
1159
+ 10: The friend request does not exist.`,
1160
+ },
1161
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1162
+ { status: 403, description: `0: Token Validation Failed` },
1163
+ ],
1164
+ });
1165
+
1166
+ export const postUsersSenderuseridAcceptFriendRequestWithToken = endpoint({
1167
+ method: 'POST',
1168
+ path: '/v1/users/:senderUserId/accept-friend-request-with-token',
1169
+ baseUrl: 'https://friends.roblox.com',
1170
+ requestFormat: 'json',
1171
+ serializationMethod: {
1172
+ body: {},
1173
+ senderUserId: { style: 'simple' },
1174
+ },
1175
+ parameters: {
1176
+ senderUserId: z.number().int(),
1177
+ },
1178
+ body: z.object({ friendingToken: z.string() }),
1179
+ response: z.object({}),
1180
+ errors: [
1181
+ {
1182
+ status: 400,
1183
+ description: `1: The target user is invalid or does not exist.
1184
+ 3: The user is blocked from performing this action.
1185
+ 5: The target user is already a friend.
1186
+ 6: Invalid parameters.
1187
+ 7: The user cannot be friends with itself.
1188
+ 11: The current users friends limit has been exceeded.
1189
+ 12: The target users friends limit has been exceeded.`,
1190
+ },
1191
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1192
+ { status: 403, description: `0: Token Validation Failed` },
1193
+ ],
1194
+ });
1195
+
1196
+ export const postUsersTargetuseridRequestFriendship = endpoint({
1197
+ method: 'POST',
1198
+ path: '/v1/users/:targetUserId/request-friendship',
1199
+ baseUrl: 'https://friends.roblox.com',
1200
+ requestFormat: 'json',
1201
+ serializationMethod: {
1202
+ body: {},
1203
+ targetUserId: { style: 'simple' },
1204
+ },
1205
+ parameters: {
1206
+ targetUserId: z.number().int(),
1207
+ },
1208
+ body: Patch_FriendshipRequestModel,
1209
+ response: Roblox_Friends_Api_CaptchaStatusResponseModel,
1210
+ errors: [
1211
+ {
1212
+ status: 400,
1213
+ description: `1: The target user is invalid or does not exist.
1214
+ 5: The target user is already a friend.
1215
+ 6: Invalid parameters.
1216
+ 7: The user cannot be friends with itself.
1217
+ 10: The friend request does not exist.
1218
+ 13: The users are not in the same game.
1219
+ 31: User with max friends sent friend request.
1220
+ 35: Invalid nickname.`,
1221
+ },
1222
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1223
+ {
1224
+ status: 403,
1225
+ description: `0: Token Validation Failed
1226
+ 2: The user is banned from performing operation.
1227
+ 3: The user is blocked from performing this action.
1228
+ 14: The user has not passed the captcha.`,
1229
+ },
1230
+ { status: 429, description: `9: The flood limit has been exceeded.` },
1231
+ ],
1232
+ });
1233
+
1234
+ export const postUsersTargetuseridUnfriend = endpoint({
1235
+ method: 'POST',
1236
+ path: '/v1/users/:targetUserId/unfriend',
1237
+ baseUrl: 'https://friends.roblox.com',
1238
+ requestFormat: 'json',
1239
+ serializationMethod: {
1240
+ targetUserId: { style: 'simple' },
1241
+ },
1242
+ parameters: {
1243
+ targetUserId: z.number().int(),
1244
+ },
1245
+ response: z.object({}),
1246
+ errors: [
1247
+ { status: 400, description: `1: The target user is invalid or does not exist.` },
1248
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1249
+ { status: 403, description: `0: Token Validation Failed` },
1250
+ ],
1251
+ });