@jacobhumston/roblox-openapi-ts 1.0.43 → 1.0.45

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 (2) hide show
  1. package/dist/types.d.ts +2410 -20
  2. package/package.json +1 -1
package/dist/types.d.ts CHANGED
@@ -3796,6 +3796,175 @@ export interface paths {
3796
3796
  patch?: never;
3797
3797
  trace?: never;
3798
3798
  };
3799
+ "/creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments": {
3800
+ parameters: {
3801
+ query?: never;
3802
+ header?: never;
3803
+ path?: never;
3804
+ cookie?: never;
3805
+ };
3806
+ /**
3807
+ * Lists experiments for a universe.
3808
+ * @description Pagination is offset-based (`maxPageSize` + `skip`). The response carries the page slice plus the unpaginated total
3809
+ * matching the filters. Request includes optional pagination, search, and filters.
3810
+ */
3811
+ get: operations["PublicExperimentation_ListExperiments"];
3812
+ put?: never;
3813
+ /**
3814
+ * Creates a new experiment for a universe.
3815
+ * @description Returns an ExperimentOperation describing the async create call.
3816
+ */
3817
+ post: operations["PublicExperimentation_CreateExperiment"];
3818
+ delete?: never;
3819
+ options?: never;
3820
+ head?: never;
3821
+ patch?: never;
3822
+ trace?: never;
3823
+ };
3824
+ "/creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments/{experimentId}": {
3825
+ parameters: {
3826
+ query?: never;
3827
+ header?: never;
3828
+ path?: never;
3829
+ cookie?: never;
3830
+ };
3831
+ /**
3832
+ * Gets an experiment by ID.
3833
+ * @description Returns the `experiment`. Returns 404 if the experiment doesn't exist for the universe.
3834
+ */
3835
+ get: operations["PublicExperimentation_GetExperiment"];
3836
+ put?: never;
3837
+ post?: never;
3838
+ /**
3839
+ * Discards an experiment.
3840
+ * @description The experiment record is retained with state Deleted.
3841
+ */
3842
+ delete: operations["PublicExperimentation_DiscardExperiment"];
3843
+ options?: never;
3844
+ head?: never;
3845
+ /**
3846
+ * Updates an existing experiment.
3847
+ * @description The payload is a full replacement of the mutable experiment fields. Returns an
3848
+ * ExperimentOperation describing the async update.
3849
+ */
3850
+ patch: operations["PublicExperimentation_UpdateExperiment"];
3851
+ trace?: never;
3852
+ };
3853
+ "/creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments/{experimentId}/stats": {
3854
+ parameters: {
3855
+ query?: never;
3856
+ header?: never;
3857
+ path?: never;
3858
+ cookie?: never;
3859
+ };
3860
+ /** Gets diagnostic stats for an experiment. */
3861
+ get: operations["PublicExperimentation_GetExperimentStats"];
3862
+ put?: never;
3863
+ post?: never;
3864
+ delete?: never;
3865
+ options?: never;
3866
+ head?: never;
3867
+ patch?: never;
3868
+ trace?: never;
3869
+ };
3870
+ "/creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments/{experimentId}:complete": {
3871
+ parameters: {
3872
+ query?: never;
3873
+ header?: never;
3874
+ path?: never;
3875
+ cookie?: never;
3876
+ };
3877
+ get?: never;
3878
+ put?: never;
3879
+ /** Completes an experiment by stopping it and rolling out the requested variant. */
3880
+ post: operations["PublicExperimentation_CompleteExperiment"];
3881
+ delete?: never;
3882
+ options?: never;
3883
+ head?: never;
3884
+ patch?: never;
3885
+ trace?: never;
3886
+ };
3887
+ "/creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments/{experimentId}:schedule": {
3888
+ parameters: {
3889
+ query?: never;
3890
+ header?: never;
3891
+ path?: never;
3892
+ cookie?: never;
3893
+ };
3894
+ get?: never;
3895
+ put?: never;
3896
+ /**
3897
+ * Schedules an experiment to start at a future UTC time.
3898
+ * @description Body must include `scheduledStartTime` as an ISO-8601 UTC timestamp.
3899
+ */
3900
+ post: operations["PublicExperimentation_ScheduleExperiment"];
3901
+ delete?: never;
3902
+ options?: never;
3903
+ head?: never;
3904
+ patch?: never;
3905
+ trace?: never;
3906
+ };
3907
+ "/creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments/{experimentId}:start": {
3908
+ parameters: {
3909
+ query?: never;
3910
+ header?: never;
3911
+ path?: never;
3912
+ cookie?: never;
3913
+ };
3914
+ get?: never;
3915
+ put?: never;
3916
+ /**
3917
+ * Starts an experiment immediately.
3918
+ * @description For a future-dated start, use the sibling `:schedule` endpoint.
3919
+ */
3920
+ post: operations["PublicExperimentation_StartExperiment"];
3921
+ delete?: never;
3922
+ options?: never;
3923
+ head?: never;
3924
+ patch?: never;
3925
+ trace?: never;
3926
+ };
3927
+ "/creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments:calculateMde": {
3928
+ parameters: {
3929
+ query?: never;
3930
+ header?: never;
3931
+ path?: never;
3932
+ cookie?: never;
3933
+ };
3934
+ get?: never;
3935
+ put?: never;
3936
+ /**
3937
+ * Calculates the Minimum Detectable Effect (MDE) for a prospective experiment.
3938
+ * @description Poll by clients until the operation is complete.
3939
+ */
3940
+ post: operations["PublicExperimentation_CalculateExperimentMde"];
3941
+ delete?: never;
3942
+ options?: never;
3943
+ head?: never;
3944
+ patch?: never;
3945
+ trace?: never;
3946
+ };
3947
+ "/creator-configs-public-api/v1/experimentation/universes/{universeId}/operations/{operationId}": {
3948
+ parameters: {
3949
+ query?: never;
3950
+ header?: never;
3951
+ path?: never;
3952
+ cookie?: never;
3953
+ };
3954
+ /**
3955
+ * Gets the status of an experiment async operation.
3956
+ * @description Polled by clients between mutations (Create / Update / Start / Schedule /
3957
+ * Complete / Discard) to determine when the operation reaches `done = true`.
3958
+ */
3959
+ get: operations["PublicExperimentation_GetExperimentOperationStatus"];
3960
+ put?: never;
3961
+ post?: never;
3962
+ delete?: never;
3963
+ options?: never;
3964
+ head?: never;
3965
+ patch?: never;
3966
+ trace?: never;
3967
+ };
3799
3968
  "/datastores/v1/universes/{universeId}/standard-datastores": {
3800
3969
  parameters: {
3801
3970
  query?: never;
@@ -8606,7 +8775,7 @@ export interface paths {
8606
8775
  parameters: {
8607
8776
  query?: {
8608
8777
  /** @description Filter for specific type of action performed */
8609
- actionType?: "DeletePost" | "RemoveMember" | "AcceptJoinRequest" | "DeclineJoinRequest" | "PostStatus" | "ChangeRank" | "BuyAd" | "SendAllyRequest" | "CreateEnemy" | "AcceptAllyRequest" | "DeclineAllyRequest" | "DeleteAlly" | "DeleteEnemy" | "AddGroupPlace" | "RemoveGroupPlace" | "CreateItems" | "ConfigureItems" | "SpendGroupFunds" | "ChangeOwner" | "Delete" | "AdjustCurrencyAmounts" | "Abandon" | "Claim" | "Rename" | "ChangeDescription" | "InviteToClan" | "KickFromClan" | "CancelClanInvite" | "BuyClan" | "CreateGroupAsset" | "UpdateGroupAsset" | "ConfigureGroupAsset" | "RevertGroupAsset" | "CreateGroupDeveloperProduct" | "ConfigureGroupGame" | "CreateGroupDeveloperSubscriptionProduct" | "Lock" | "Unlock" | "CreateGamePass" | "CreateBadge" | "ConfigureBadge" | "SavePlace" | "PublishPlace" | "UpdateRolesetRank" | "UpdateRolesetData" | "BanMember" | "UnbanMember" | "CreateForumCategory" | "UpdateForumCategory" | "ArchiveForumCategory" | "DeleteForumCategory" | "DeleteForumPost" | "DeleteForumComment" | "PinForumPost" | "UnpinForumPost" | "LockForumPost" | "UnlockForumPost" | "CreateRoleset" | "DeleteRoleset" | "CreateCommerceProduct" | "SetCommerceProductActive" | "ArchiveCommerceProduct" | "AcceptCommerceProductBundlingFee" | "SetCommerceProductInactive" | "ConnectMerchant" | "DisconnectMerchant" | "JoinGroup" | "LeaveGroup" | "UpdateGroupIcon" | "UpdateGroupCoverPhoto" | "AssignRole" | "UnassignRole" | "PublishAnnouncement" | "DeleteAnnouncement" | "UpdateRoleSetPermissions" | "UpdateGroupSecuritySettings";
8778
+ actionType?: "DeletePost" | "RemoveMember" | "AcceptJoinRequest" | "DeclineJoinRequest" | "PostStatus" | "ChangeRank" | "BuyAd" | "SendAllyRequest" | "CreateEnemy" | "AcceptAllyRequest" | "DeclineAllyRequest" | "DeleteAlly" | "DeleteEnemy" | "AddGroupPlace" | "RemoveGroupPlace" | "CreateItems" | "ConfigureItems" | "SpendGroupFunds" | "ChangeOwner" | "Delete" | "AdjustCurrencyAmounts" | "Abandon" | "Claim" | "Rename" | "ChangeDescription" | "InviteToClan" | "KickFromClan" | "CancelClanInvite" | "BuyClan" | "CreateGroupAsset" | "UpdateGroupAsset" | "ConfigureGroupAsset" | "RevertGroupAsset" | "CreateGroupDeveloperProduct" | "ConfigureGroupGame" | "CreateGroupDeveloperSubscriptionProduct" | "Lock" | "Unlock" | "CreateGamePass" | "CreateBadge" | "ConfigureBadge" | "SavePlace" | "PublishPlace" | "UpdateRolesetRank" | "UpdateRolesetData" | "BanMember" | "UnbanMember" | "CreateForumCategory" | "UpdateForumCategory" | "ArchiveForumCategory" | "DeleteForumCategory" | "DeleteForumPost" | "DeleteForumComment" | "PinForumPost" | "UnpinForumPost" | "LockForumPost" | "UnlockForumPost" | "CreateRoleset" | "DeleteRoleset" | "CreateCommerceProduct" | "SetCommerceProductActive" | "ArchiveCommerceProduct" | "AcceptCommerceProductBundlingFee" | "SetCommerceProductInactive" | "ConnectMerchant" | "DisconnectMerchant" | "JoinGroup" | "LeaveGroup" | "UpdateGroupIcon" | "UpdateGroupCoverPhoto" | "AssignRole" | "UnassignRole" | "PublishAnnouncement" | "DeleteAnnouncement" | "UpdateRoleSetPermissions" | "UpdateGroupSecuritySettings" | "GrantEnterpriseTier" | "RevokeEnterpriseTier";
8610
8779
  /** @description Filter for specific user id */
8611
8780
  userId?: number;
8612
8781
  /** @description The number of results per request. */
@@ -13204,7 +13373,11 @@ export interface paths {
13204
13373
  path?: never;
13205
13374
  cookie?: never;
13206
13375
  };
13207
- /** Returns details about the authenticated user's avatar. */
13376
+ /**
13377
+ * Returns details about the authenticated user's avatar.
13378
+ * @deprecated
13379
+ * @description Please use GET v4/avatar
13380
+ */
13208
13381
  get: {
13209
13382
  parameters: {
13210
13383
  query?: never;
@@ -15130,8 +15303,8 @@ export interface paths {
15130
15303
  [name: string]: unknown;
15131
15304
  };
15132
15305
  content: {
15133
- "application/json": components["schemas"]["Roblox.ClientSettings.Api.Models.Response.ClientVersionResponse"];
15134
- "text/json": components["schemas"]["Roblox.ClientSettings.Api.Models.Response.ClientVersionResponse"];
15306
+ "application/json": components["schemas"]["ClientSettingsApi.Roblox.ClientSettings.Api.Models.Response.ClientVersionResponse"];
15307
+ "text/json": components["schemas"]["ClientSettingsApi.Roblox.ClientSettings.Api.Models.Response.ClientVersionResponse"];
15135
15308
  };
15136
15309
  };
15137
15310
  };
@@ -21192,7 +21365,7 @@ export interface paths {
21192
21365
  parameters: {
21193
21366
  query?: {
21194
21367
  /** @description Filter for specific type of action performed */
21195
- actionType?: "DeletePost" | "RemoveMember" | "AcceptJoinRequest" | "DeclineJoinRequest" | "PostStatus" | "ChangeRank" | "BuyAd" | "SendAllyRequest" | "CreateEnemy" | "AcceptAllyRequest" | "DeclineAllyRequest" | "DeleteAlly" | "DeleteEnemy" | "AddGroupPlace" | "RemoveGroupPlace" | "CreateItems" | "ConfigureItems" | "SpendGroupFunds" | "ChangeOwner" | "Delete" | "AdjustCurrencyAmounts" | "Abandon" | "Claim" | "Rename" | "ChangeDescription" | "InviteToClan" | "KickFromClan" | "CancelClanInvite" | "BuyClan" | "CreateGroupAsset" | "UpdateGroupAsset" | "ConfigureGroupAsset" | "RevertGroupAsset" | "CreateGroupDeveloperProduct" | "ConfigureGroupGame" | "CreateGroupDeveloperSubscriptionProduct" | "Lock" | "Unlock" | "CreateGamePass" | "CreateBadge" | "ConfigureBadge" | "SavePlace" | "PublishPlace" | "UpdateRolesetRank" | "UpdateRolesetData" | "BanMember" | "UnbanMember" | "CreateForumCategory" | "UpdateForumCategory" | "ArchiveForumCategory" | "DeleteForumCategory" | "DeleteForumPost" | "DeleteForumComment" | "PinForumPost" | "UnpinForumPost" | "LockForumPost" | "UnlockForumPost" | "CreateRoleset" | "DeleteRoleset" | "CreateCommerceProduct" | "SetCommerceProductActive" | "ArchiveCommerceProduct" | "AcceptCommerceProductBundlingFee" | "SetCommerceProductInactive" | "ConnectMerchant" | "DisconnectMerchant" | "JoinGroup" | "LeaveGroup" | "UpdateGroupIcon" | "UpdateGroupCoverPhoto" | "AssignRole" | "UnassignRole" | "PublishAnnouncement" | "DeleteAnnouncement" | "UpdateRoleSetPermissions" | "UpdateGroupSecuritySettings";
21368
+ actionType?: "DeletePost" | "RemoveMember" | "AcceptJoinRequest" | "DeclineJoinRequest" | "PostStatus" | "ChangeRank" | "BuyAd" | "SendAllyRequest" | "CreateEnemy" | "AcceptAllyRequest" | "DeclineAllyRequest" | "DeleteAlly" | "DeleteEnemy" | "AddGroupPlace" | "RemoveGroupPlace" | "CreateItems" | "ConfigureItems" | "SpendGroupFunds" | "ChangeOwner" | "Delete" | "AdjustCurrencyAmounts" | "Abandon" | "Claim" | "Rename" | "ChangeDescription" | "InviteToClan" | "KickFromClan" | "CancelClanInvite" | "BuyClan" | "CreateGroupAsset" | "UpdateGroupAsset" | "ConfigureGroupAsset" | "RevertGroupAsset" | "CreateGroupDeveloperProduct" | "ConfigureGroupGame" | "CreateGroupDeveloperSubscriptionProduct" | "Lock" | "Unlock" | "CreateGamePass" | "CreateBadge" | "ConfigureBadge" | "SavePlace" | "PublishPlace" | "UpdateRolesetRank" | "UpdateRolesetData" | "BanMember" | "UnbanMember" | "CreateForumCategory" | "UpdateForumCategory" | "ArchiveForumCategory" | "DeleteForumCategory" | "DeleteForumPost" | "DeleteForumComment" | "PinForumPost" | "UnpinForumPost" | "LockForumPost" | "UnlockForumPost" | "CreateRoleset" | "DeleteRoleset" | "CreateCommerceProduct" | "SetCommerceProductActive" | "ArchiveCommerceProduct" | "AcceptCommerceProductBundlingFee" | "SetCommerceProductInactive" | "ConnectMerchant" | "DisconnectMerchant" | "JoinGroup" | "LeaveGroup" | "UpdateGroupIcon" | "UpdateGroupCoverPhoto" | "AssignRole" | "UnassignRole" | "PublishAnnouncement" | "DeleteAnnouncement" | "UpdateRoleSetPermissions" | "UpdateGroupSecuritySettings" | "GrantEnterpriseTier" | "RevokeEnterpriseTier";
21196
21369
  /** @description Filter for specific user id */
21197
21370
  userId?: number;
21198
21371
  /** @description The number of results per request. */
@@ -27769,7 +27942,11 @@ export interface paths {
27769
27942
  path?: never;
27770
27943
  cookie?: never;
27771
27944
  };
27772
- /** Gets details about the contents of an outfit. */
27945
+ /**
27946
+ * Gets details about the contents of an outfit.
27947
+ * @deprecated
27948
+ * @description Please use GET v4/outfits/{outfitId}/details
27949
+ */
27773
27950
  get: {
27774
27951
  parameters: {
27775
27952
  query?: never;
@@ -28713,6 +28890,162 @@ export interface paths {
28713
28890
  patch?: never;
28714
28891
  trace?: never;
28715
28892
  };
28893
+ "/v1/preferences/publishing": {
28894
+ parameters: {
28895
+ query?: never;
28896
+ header?: never;
28897
+ path?: never;
28898
+ cookie?: never;
28899
+ };
28900
+ get: {
28901
+ parameters: {
28902
+ query?: {
28903
+ groupId?: number;
28904
+ };
28905
+ header?: never;
28906
+ path?: never;
28907
+ cookie?: never;
28908
+ };
28909
+ requestBody?: never;
28910
+ responses: {
28911
+ /** @description OK */
28912
+ 200: {
28913
+ headers: {
28914
+ [name: string]: unknown;
28915
+ };
28916
+ content: {
28917
+ "application/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Response.PublishingPreferences.PublishingPreferencesResponse"];
28918
+ "text/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Response.PublishingPreferences.PublishingPreferencesResponse"];
28919
+ };
28920
+ };
28921
+ /** @description 0: Authorization has been denied for this request. */
28922
+ 401: {
28923
+ headers: {
28924
+ [name: string]: unknown;
28925
+ };
28926
+ content?: never;
28927
+ };
28928
+ };
28929
+ };
28930
+ put?: never;
28931
+ post: {
28932
+ parameters: {
28933
+ query?: never;
28934
+ header?: never;
28935
+ path?: never;
28936
+ cookie?: never;
28937
+ };
28938
+ requestBody: {
28939
+ content: {
28940
+ "application/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Request.PublishingPreferences.CreatePublishingPreferencesRequest"];
28941
+ "text/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Request.PublishingPreferences.CreatePublishingPreferencesRequest"];
28942
+ };
28943
+ };
28944
+ responses: {
28945
+ /** @description OK */
28946
+ 200: {
28947
+ headers: {
28948
+ [name: string]: unknown;
28949
+ };
28950
+ content: {
28951
+ "application/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Response.PublishingPreferences.PublishingPreferencesResponse"];
28952
+ "text/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Response.PublishingPreferences.PublishingPreferencesResponse"];
28953
+ };
28954
+ };
28955
+ /** @description 0: Authorization has been denied for this request. */
28956
+ 401: {
28957
+ headers: {
28958
+ [name: string]: unknown;
28959
+ };
28960
+ content?: never;
28961
+ };
28962
+ /** @description 0: Token Validation Failed */
28963
+ 403: {
28964
+ headers: {
28965
+ [name: string]: unknown;
28966
+ };
28967
+ content?: never;
28968
+ };
28969
+ };
28970
+ };
28971
+ delete: {
28972
+ parameters: {
28973
+ query?: {
28974
+ groupId?: number;
28975
+ };
28976
+ header?: never;
28977
+ path?: never;
28978
+ cookie?: never;
28979
+ };
28980
+ requestBody?: never;
28981
+ responses: {
28982
+ /** @description OK */
28983
+ 200: {
28984
+ headers: {
28985
+ [name: string]: unknown;
28986
+ };
28987
+ content?: never;
28988
+ };
28989
+ /** @description 0: Authorization has been denied for this request. */
28990
+ 401: {
28991
+ headers: {
28992
+ [name: string]: unknown;
28993
+ };
28994
+ content?: never;
28995
+ };
28996
+ /** @description 0: Token Validation Failed */
28997
+ 403: {
28998
+ headers: {
28999
+ [name: string]: unknown;
29000
+ };
29001
+ content?: never;
29002
+ };
29003
+ };
29004
+ };
29005
+ options?: never;
29006
+ head?: never;
29007
+ patch: {
29008
+ parameters: {
29009
+ query?: never;
29010
+ header?: never;
29011
+ path?: never;
29012
+ cookie?: never;
29013
+ };
29014
+ requestBody: {
29015
+ content: {
29016
+ "application/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Request.PublishingPreferences.UpdatePublishingPreferencesRequest"];
29017
+ "text/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Request.PublishingPreferences.UpdatePublishingPreferencesRequest"];
29018
+ };
29019
+ };
29020
+ responses: {
29021
+ /** @description OK */
29022
+ 200: {
29023
+ headers: {
29024
+ [name: string]: unknown;
29025
+ };
29026
+ content: {
29027
+ "application/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Response.PublishingPreferences.PublishingPreferencesResponse"];
29028
+ "text/json": components["schemas"]["Roblox.ItemConfiguration.Api.Models.Response.PublishingPreferences.PublishingPreferencesResponse"];
29029
+ };
29030
+ };
29031
+ /** @description 0: Authorization has been denied for this request. */
29032
+ 401: {
29033
+ headers: {
29034
+ [name: string]: unknown;
29035
+ };
29036
+ content?: never;
29037
+ };
29038
+ /** @description 0: Token Validation Failed */
29039
+ 403: {
29040
+ headers: {
29041
+ [name: string]: unknown;
29042
+ };
29043
+ content?: never;
29044
+ };
29045
+ };
29046
+ };
29047
+ trace?: never;
29048
+ };
28716
29049
  "/v1/presence/users": {
28717
29050
  parameters: {
28718
29051
  query?: never;
@@ -39119,6 +39452,90 @@ export interface paths {
39119
39452
  patch?: never;
39120
39453
  trace?: never;
39121
39454
  };
39455
+ "/v2/avatar": {
39456
+ parameters: {
39457
+ query?: never;
39458
+ header?: never;
39459
+ path?: never;
39460
+ cookie?: never;
39461
+ };
39462
+ get?: never;
39463
+ put?: never;
39464
+ post?: never;
39465
+ delete?: never;
39466
+ options?: never;
39467
+ head?: never;
39468
+ /**
39469
+ * Sets the avatar to the incoming avatar using field masks.
39470
+ * @deprecated
39471
+ * @description Only allows items that you own, are not expired, and are wearable asset types.
39472
+ * Any assets being worn before this method is called are automatically removed.
39473
+ *
39474
+ * Please use PATCH v4/avatar
39475
+ */
39476
+ patch: {
39477
+ parameters: {
39478
+ query?: never;
39479
+ header?: {
39480
+ "Roblox-Place-Id"?: number;
39481
+ };
39482
+ path?: never;
39483
+ cookie?: never;
39484
+ };
39485
+ /** @description Model of avatar that we are updating to. */
39486
+ requestBody: {
39487
+ content: {
39488
+ "application/json": components["schemas"]["Roblox.Api.Avatar.Models.UpdateAvatarRequestModel"];
39489
+ "text/json": components["schemas"]["Roblox.Api.Avatar.Models.UpdateAvatarRequestModel"];
39490
+ };
39491
+ };
39492
+ responses: {
39493
+ /** @description OK */
39494
+ 200: {
39495
+ headers: {
39496
+ [name: string]: unknown;
39497
+ };
39498
+ content: {
39499
+ "application/json": components["schemas"]["Roblox.Api.Avatar.Models.UpdateAvatarResponseModel"];
39500
+ "text/json": components["schemas"]["Roblox.Api.Avatar.Models.UpdateAvatarResponseModel"];
39501
+ };
39502
+ };
39503
+ /**
39504
+ * @description 3: Invalid assetId
39505
+ * 5: Meta does not apply to specified asset type
39506
+ * 7: Required meta is not provided for the specific asset type
39507
+ */
39508
+ 400: {
39509
+ headers: {
39510
+ [name: string]: unknown;
39511
+ };
39512
+ content?: never;
39513
+ };
39514
+ /** @description 0: Authorization has been denied for this request. */
39515
+ 401: {
39516
+ headers: {
39517
+ [name: string]: unknown;
39518
+ };
39519
+ content?: never;
39520
+ };
39521
+ /** @description 0: Token Validation Failed */
39522
+ 403: {
39523
+ headers: {
39524
+ [name: string]: unknown;
39525
+ };
39526
+ content?: never;
39527
+ };
39528
+ /** @description 2: Failed to wear asset. */
39529
+ 500: {
39530
+ headers: {
39531
+ [name: string]: unknown;
39532
+ };
39533
+ content?: never;
39534
+ };
39535
+ };
39536
+ };
39537
+ trace?: never;
39538
+ };
39122
39539
  "/v2/avatar/avatar": {
39123
39540
  parameters: {
39124
39541
  query?: never;
@@ -39177,7 +39594,11 @@ export interface paths {
39177
39594
  };
39178
39595
  get?: never;
39179
39596
  put?: never;
39180
- /** Sets the authenticated user's body colors. */
39597
+ /**
39598
+ * Sets the authenticated user's body colors.
39599
+ * @deprecated
39600
+ * @description Please use PATCH v4/avatar
39601
+ */
39181
39602
  post: {
39182
39603
  parameters: {
39183
39604
  query?: never;
@@ -39237,8 +39658,11 @@ export interface paths {
39237
39658
  put?: never;
39238
39659
  /**
39239
39660
  * Sets the avatar's current assets to the list.
39661
+ * @deprecated
39240
39662
  * @description Only allows items that you own, are not expired, and are wearable asset types.
39241
39663
  * Any assets being worn before this method is called are automatically removed.
39664
+ *
39665
+ * Please use PATCH v4/avatar
39242
39666
  */
39243
39667
  post: {
39244
39668
  parameters: {
@@ -40112,7 +40536,7 @@ export interface paths {
40112
40536
  * @description Fails if any of the assetIds are not owned by the user, or not wearable types.
40113
40537
  * The name property of the request is optional as one will be auto-generated when the request has a null name.
40114
40538
  *
40115
- * please use v3/outfits/create
40539
+ * Please use POST v4/outfits/create
40116
40540
  */
40117
40541
  post: {
40118
40542
  parameters: {
@@ -40209,7 +40633,7 @@ export interface paths {
40209
40633
  * @description Fails if the user does not own any of the assetIds or if they are not wearable asset types.
40210
40634
  * Accepts partial updates.
40211
40635
  *
40212
- * Please use PATCH v3/outfits/{userOutfitId}
40636
+ * Please use PATCH v4/outfits/{outfitId}
40213
40637
  */
40214
40638
  patch: {
40215
40639
  parameters: {
@@ -43086,8 +43510,11 @@ export interface paths {
43086
43510
  put?: never;
43087
43511
  /**
43088
43512
  * Creates a new outfit.
43513
+ * @deprecated
43089
43514
  * @description Fails if any of the assetIds are not owned by the user, or not wearable types.
43090
43515
  * The name property of the request is optional as one will be auto-generated when the request has a null name.
43516
+ *
43517
+ * Please use POST v4/outfits/create
43091
43518
  */
43092
43519
  post: {
43093
43520
  parameters: {
@@ -43180,8 +43607,11 @@ export interface paths {
43180
43607
  head?: never;
43181
43608
  /**
43182
43609
  * Updates the contents of an outfit.
43610
+ * @deprecated
43183
43611
  * @description Fails if the user does not own any of the assetIds or if they are not wearable asset types.
43184
43612
  * Accepts partial updates.
43613
+ *
43614
+ * Please use PATCH v4/outfits/{outfitId}
43185
43615
  */
43186
43616
  patch: {
43187
43617
  parameters: {
@@ -43379,7 +43809,72 @@ export interface paths {
43379
43809
  delete?: never;
43380
43810
  options?: never;
43381
43811
  head?: never;
43382
- patch?: never;
43812
+ /**
43813
+ * Sets the avatar to the incoming avatar using field masks.
43814
+ * @description Only allows items that you own, are not expired, and are wearable asset types.
43815
+ * Any assets being worn before this method is called are automatically removed.
43816
+ */
43817
+ patch: {
43818
+ parameters: {
43819
+ query?: never;
43820
+ header?: {
43821
+ "Roblox-Place-Id"?: number;
43822
+ };
43823
+ path?: never;
43824
+ cookie?: never;
43825
+ };
43826
+ /** @description Model of avatar that we are updating to. */
43827
+ requestBody: {
43828
+ content: {
43829
+ "application/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Request.UpdateAvatarDefinitionRequestV4"];
43830
+ "text/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Request.UpdateAvatarDefinitionRequestV4"];
43831
+ };
43832
+ };
43833
+ responses: {
43834
+ /** @description OK */
43835
+ 200: {
43836
+ headers: {
43837
+ [name: string]: unknown;
43838
+ };
43839
+ content: {
43840
+ "application/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.UpdateAvatarDefinitionResponseV4"];
43841
+ "text/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.UpdateAvatarDefinitionResponseV4"];
43842
+ };
43843
+ };
43844
+ /**
43845
+ * @description 3: Invalid assetId
43846
+ * 5: Meta does not apply to specified asset type
43847
+ * 7: Required meta is not provided for the specific asset type
43848
+ */
43849
+ 400: {
43850
+ headers: {
43851
+ [name: string]: unknown;
43852
+ };
43853
+ content?: never;
43854
+ };
43855
+ /** @description 0: Authorization has been denied for this request. */
43856
+ 401: {
43857
+ headers: {
43858
+ [name: string]: unknown;
43859
+ };
43860
+ content?: never;
43861
+ };
43862
+ /** @description 0: Token Validation Failed */
43863
+ 403: {
43864
+ headers: {
43865
+ [name: string]: unknown;
43866
+ };
43867
+ content?: never;
43868
+ };
43869
+ /** @description 2: Failed to wear asset. */
43870
+ 500: {
43871
+ headers: {
43872
+ [name: string]: unknown;
43873
+ };
43874
+ content?: never;
43875
+ };
43876
+ };
43877
+ };
43383
43878
  trace?: never;
43384
43879
  };
43385
43880
  "/v4/avatar/users/{userId}": {
@@ -43441,6 +43936,195 @@ export interface paths {
43441
43936
  patch?: never;
43442
43937
  trace?: never;
43443
43938
  };
43939
+ "/v4/outfits/create": {
43940
+ parameters: {
43941
+ query?: never;
43942
+ header?: never;
43943
+ path?: never;
43944
+ cookie?: never;
43945
+ };
43946
+ get?: never;
43947
+ put?: never;
43948
+ /**
43949
+ * Creates a new outfit.
43950
+ * @description Fails if any of the assetIds are not owned by the user, or not wearable types.
43951
+ * The name property of the request is optional as one will be auto-generated when the request has a null name.
43952
+ */
43953
+ post: {
43954
+ parameters: {
43955
+ query?: never;
43956
+ header?: {
43957
+ "Roblox-Place-Id"?: number;
43958
+ };
43959
+ path?: never;
43960
+ cookie?: never;
43961
+ };
43962
+ /** @description The outfit definition to create. */
43963
+ requestBody: {
43964
+ content: {
43965
+ "application/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Request.CreateOutfitDefinitionRequestV4"];
43966
+ "text/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Request.CreateOutfitDefinitionRequestV4"];
43967
+ };
43968
+ };
43969
+ responses: {
43970
+ /** @description OK */
43971
+ 200: {
43972
+ headers: {
43973
+ [name: string]: unknown;
43974
+ };
43975
+ content: {
43976
+ "application/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.CreateOutfitDefinitionResponseV4"];
43977
+ "text/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.CreateOutfitDefinitionResponseV4"];
43978
+ };
43979
+ };
43980
+ /**
43981
+ * @description 3: Body colors must be valid BrickColor IDs
43982
+ * 4: Invalid outfit name
43983
+ * 5: Asset is not wearable by you and was not added to the outfit
43984
+ * 7: Invalid Player Avatar Type. Valid types are R6 and R15
43985
+ * 8: Invalid assetIds
43986
+ * 9: Meta does not apply to specified asset type
43987
+ * 10: Required meta is not provided for the specific asset type
43988
+ * 12: Outfit type invalid or not permitted
43989
+ * 13: Invalid Scale
43990
+ */
43991
+ 400: {
43992
+ headers: {
43993
+ [name: string]: unknown;
43994
+ };
43995
+ content?: never;
43996
+ };
43997
+ /** @description 0: Authorization has been denied for this request. */
43998
+ 401: {
43999
+ headers: {
44000
+ [name: string]: unknown;
44001
+ };
44002
+ content?: never;
44003
+ };
44004
+ /**
44005
+ * @description 0: Token Validation Failed
44006
+ * 1: You already have the maximum number of outfits
44007
+ */
44008
+ 403: {
44009
+ headers: {
44010
+ [name: string]: unknown;
44011
+ };
44012
+ content?: never;
44013
+ };
44014
+ /** @description 6: An error occurred while creating the outfit */
44015
+ 500: {
44016
+ headers: {
44017
+ [name: string]: unknown;
44018
+ };
44019
+ content?: never;
44020
+ };
44021
+ };
44022
+ };
44023
+ delete?: never;
44024
+ options?: never;
44025
+ head?: never;
44026
+ patch?: never;
44027
+ trace?: never;
44028
+ };
44029
+ "/v4/outfits/{outfitId}": {
44030
+ parameters: {
44031
+ query?: never;
44032
+ header?: never;
44033
+ path?: never;
44034
+ cookie?: never;
44035
+ };
44036
+ get?: never;
44037
+ put?: never;
44038
+ post?: never;
44039
+ delete?: never;
44040
+ options?: never;
44041
+ head?: never;
44042
+ /**
44043
+ * Updates the contents of an outfit.
44044
+ * @description Fails if the user does not own any of the assetIds or if they are not wearable asset types.
44045
+ * Accepts partial updates via update types.
44046
+ */
44047
+ patch: {
44048
+ parameters: {
44049
+ query?: never;
44050
+ header?: {
44051
+ "Roblox-Place-Id"?: number;
44052
+ };
44053
+ path: {
44054
+ /** @description The user outfit id. */
44055
+ outfitId: string;
44056
+ };
44057
+ cookie?: never;
44058
+ };
44059
+ /** @description The outfit definition fields to update. */
44060
+ requestBody: {
44061
+ content: {
44062
+ "application/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Request.UpdateOutfitDefinitionRequestV4"];
44063
+ "text/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Request.UpdateOutfitDefinitionRequestV4"];
44064
+ };
44065
+ };
44066
+ responses: {
44067
+ /** @description OK */
44068
+ 200: {
44069
+ headers: {
44070
+ [name: string]: unknown;
44071
+ };
44072
+ content: {
44073
+ "application/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.UpdateOutfitDefinitionResponseV4"];
44074
+ "text/json": components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.UpdateOutfitDefinitionResponseV4"];
44075
+ };
44076
+ };
44077
+ /**
44078
+ * @description 3: Body colors must be valid BrickColor IDs
44079
+ * 4: Invalid outfit name
44080
+ * 5: Asset is not wearable by you
44081
+ * 8: Invalid Player Avatar Type. Valid types are R6 and R15
44082
+ * 11: Meta does not apply to specified asset type
44083
+ * 12: Meta is required for this specific asset type
44084
+ * 13: Invalid Outfit Type
44085
+ * 14: Invalid scale
44086
+ */
44087
+ 400: {
44088
+ headers: {
44089
+ [name: string]: unknown;
44090
+ };
44091
+ content?: never;
44092
+ };
44093
+ /** @description 0: Authorization has been denied for this request. */
44094
+ 401: {
44095
+ headers: {
44096
+ [name: string]: unknown;
44097
+ };
44098
+ content?: never;
44099
+ };
44100
+ /**
44101
+ * @description 0: Token Validation Failed
44102
+ * 2: You don't have permission to update this outfit.
44103
+ */
44104
+ 403: {
44105
+ headers: {
44106
+ [name: string]: unknown;
44107
+ };
44108
+ content?: never;
44109
+ };
44110
+ /** @description 1: The specified userOutfit does not exist! */
44111
+ 404: {
44112
+ headers: {
44113
+ [name: string]: unknown;
44114
+ };
44115
+ content?: never;
44116
+ };
44117
+ /** @description 6: An error occurred while trying to update the outfit */
44118
+ 500: {
44119
+ headers: {
44120
+ [name: string]: unknown;
44121
+ };
44122
+ content?: never;
44123
+ };
44124
+ };
44125
+ };
44126
+ trace?: never;
44127
+ };
43444
44128
  "/v4/outfits/{outfitId}/details": {
43445
44129
  parameters: {
43446
44130
  query?: never;
@@ -43814,7 +44498,7 @@ export interface components {
43814
44498
  * @description Enums for customized error code in error responses.
43815
44499
  * @enum {string}
43816
44500
  */
43817
- "AssetPermissions.ErrorCode": "UnknownError" | "InvalidRequest" | "AssetNotFound" | "CannotManageAsset" | "PublicAssetCannotBeGrantedTo" | "CannotManageSubject" | "SubjectNotFound" | "AssetTypeNotEnabled" | "PermissionLimitReached" | "DependenciesLimitReached" | "NotRequestable" | "RequesterNotConnected" | "AlreadyPending" | "AlreadyHasAccess" | "RequestNotFound" | "InvalidRequestStatus" | "RateLimited" | "CallerNotOwner" | "BatchSizeLimitExceeded";
44501
+ "AssetPermissions.ErrorCode": "UnknownError" | "InvalidRequest" | "AssetNotFound" | "CannotManageAsset" | "PublicAssetCannotBeGrantedTo" | "CannotManageSubject" | "SubjectNotFound" | "AssetTypeNotEnabled" | "PermissionLimitReached" | "DependenciesLimitReached" | "NotRequestable" | "RequesterNotAConnection" | "AlreadyPending" | "AlreadyHasAccess" | "RequestNotFound" | "InvalidRequestStatus" | "RateLimited" | "CallerNotOwner" | "BatchSizeLimitExceeded";
43818
44502
  /** @description The error object for responses. */
43819
44503
  "AssetPermissions.ErrorResponse": {
43820
44504
  error?: components["schemas"]["AssetPermissions.Error"];
@@ -44072,6 +44756,58 @@ export interface components {
44072
44756
  */
44073
44757
  deletedCount?: number;
44074
44758
  } | null;
44759
+ /**
44760
+ * @description Request body for
44761
+ * `POST /v1/experimentation/universes/{universeId}/experiments:calculateMde`.
44762
+ */
44763
+ CalculateExperimentMdeData: {
44764
+ /**
44765
+ * Format: int32
44766
+ * @description Exposure percent in range 0-100. Percent of eligible users seeing the experiment.
44767
+ */
44768
+ exposurePercent?: number;
44769
+ /**
44770
+ * Format: int64
44771
+ * @description Planned duration of the experiment in whole seconds.
44772
+ * Values must be an exact multiple of `86400`.
44773
+ */
44774
+ durationSeconds?: number;
44775
+ /**
44776
+ * Format: double
44777
+ * @description Relative weight (in [0, 100]) for the baseline (control) variant.
44778
+ */
44779
+ baselineWeight?: number;
44780
+ /** @description Relative weights (each in [0, 100]) for each non-baseline variant. */
44781
+ variantWeights?: number[] | null;
44782
+ /**
44783
+ * @description The goal metric whose detectable effect is being calculated.
44784
+ *
44785
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_SESSION_TIME
44786
+ *
44787
+ * UNIVERSE_EXPERIMENT_METRIC_PLAYTIME_PER_USER
44788
+ *
44789
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_1_RETENTION
44790
+ *
44791
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_7_RETENTION
44792
+ *
44793
+ * UNIVERSE_EXPERIMENT_METRIC_PAYER_CONVERSION_RATE
44794
+ *
44795
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_USER
44796
+ *
44797
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_PAYING_USER
44798
+ */
44799
+ universeGoalMetric?: components["schemas"]["UniverseExperimentMetric"];
44800
+ /** @description Targeting criteria used to scope the analytics window. */
44801
+ targetingCriteria?: components["schemas"]["TargetingCriteria"] | null;
44802
+ };
44803
+ /**
44804
+ * @description Response body for
44805
+ * `POST /v1/experimentation/universes/{universeId}/experiments:calculateMde`.
44806
+ */
44807
+ CalculateExperimentMdeResponse: {
44808
+ /** @description The MDE async operation. */
44809
+ operation?: components["schemas"]["MdeOperation"] | null;
44810
+ };
44075
44811
  CanInviteUserResponse: {
44076
44812
  canInvite?: boolean;
44077
44813
  doesOwnerPrivacyRestrictJoins?: boolean;
@@ -44088,6 +44824,14 @@ export interface components {
44088
44824
  /** Format: int32 */
44089
44825
  rank?: number;
44090
44826
  };
44827
+ "ClientSettingsApi.Roblox.ClientSettings.Api.Models.Response.ClientVersionResponse": {
44828
+ version?: string;
44829
+ clientVersionUpload?: string;
44830
+ bootstrapperVersion?: string;
44831
+ nextClientVersionUpload?: string;
44832
+ nextClientVersion?: string;
44833
+ forceInstall?: boolean;
44834
+ };
44091
44835
  /** @description Get Client Status request. */
44092
44836
  ClientStatusGetRequest: {
44093
44837
  /**
@@ -44106,7 +44850,26 @@ export interface components {
44106
44850
  */
44107
44851
  browserTrackerId?: number | null;
44108
44852
  };
44109
- /** @description JSON shape of an RPN conditional rule in public API requests, aligned with `roblox.creatorexperienceconfig.conditionrules.v1.RpnRule`. */
44853
+ /**
44854
+ * @description Request body for
44855
+ * `POST /v1/experimentation/universes/{universeId}/experiments/{experimentId}:complete`.
44856
+ */
44857
+ CompleteExperimentRequest: {
44858
+ /**
44859
+ * @description ID of the variant to roll out as the winning variant. If omitted, the experiment is
44860
+ * stopped without rolling out a winner.
44861
+ */
44862
+ variantId?: string | null;
44863
+ };
44864
+ /**
44865
+ * @description Response body for
44866
+ * `POST /v1/experimentation/universes/{universeId}/experiments/{experimentId}:complete`.
44867
+ */
44868
+ CompleteExperimentResponse: {
44869
+ /** @description The async operation that completed the experiment. */
44870
+ operation?: components["schemas"]["ExperimentOperation"] | null;
44871
+ };
44872
+ /** @description JSON shape of an RPN conditional rule in public API requests. */
44110
44873
  ConditionalRuleDefinition: {
44111
44874
  /** @description Postfix RPN token sequence. */
44112
44875
  tokens?: components["schemas"]["RpnTokenDto"][] | null;
@@ -44272,6 +45035,53 @@ export interface components {
44272
45035
  */
44273
45036
  value: number;
44274
45037
  };
45038
+ /**
45039
+ * @description Request body for `POST /v1/experimentation/universes/{universeId}/experiments`.
45040
+ * Payload describing a new experiment.
45041
+ */
45042
+ CreateExperimentData: {
45043
+ /** @description Experiment display name. */
45044
+ name?: string | null;
45045
+ /** @description Experiment description. */
45046
+ description?: string | null;
45047
+ /** @description Experiment configuration (variants + product-type-specific data). */
45048
+ experimentConfiguration?: components["schemas"]["ExperimentConfiguration"] | null;
45049
+ /**
45050
+ * Format: int32
45051
+ * @description Exposure percent in range 0-100. Percent of eligible users seeing the experiment.
45052
+ */
45053
+ exposurePercent?: number;
45054
+ /** @description Targeting criteria scoping which users are eligible for the experiment. */
45055
+ targetingCriteria?: components["schemas"]["TargetingCriteria"] | null;
45056
+ /**
45057
+ * Format: int64
45058
+ * @description Experiment duration in whole seconds.
45059
+ */
45060
+ durationSeconds?: number;
45061
+ /**
45062
+ * @description Goal metric for the experiment.
45063
+ *
45064
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_SESSION_TIME
45065
+ *
45066
+ * UNIVERSE_EXPERIMENT_METRIC_PLAYTIME_PER_USER
45067
+ *
45068
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_1_RETENTION
45069
+ *
45070
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_7_RETENTION
45071
+ *
45072
+ * UNIVERSE_EXPERIMENT_METRIC_PAYER_CONVERSION_RATE
45073
+ *
45074
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_USER
45075
+ *
45076
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_PAYING_USER
45077
+ */
45078
+ universeGoalMetric?: components["schemas"]["UniverseExperimentMetric"];
45079
+ };
45080
+ /** @description Response body for POST /v1/universes/{universeId}/experiment. */
45081
+ CreateExperimentResponse: {
45082
+ /** @description Resulting async operation describing the create call. */
45083
+ operation?: components["schemas"]["ExperimentOperation"] | null;
45084
+ };
44275
45085
  /** @description Optional event configuration block (recurrence + notification audience) on the v3 Create body. */
44276
45086
  CreateGameEventConfigRequest: {
44277
45087
  /** @description Cron expression for recurrence. Null = no recurrence. Validated server-side. */
@@ -44923,6 +45733,11 @@ export interface components {
44923
45733
  response?: components["schemas"]["AnalyticsQueryPublicApi.DimensionValuesResponse"];
44924
45734
  metadata?: components["schemas"]["AnalyticsQueryPublicApi.OperationMetadata"];
44925
45735
  };
45736
+ /** @description Response body for DELETE /v1/universes/{universeId}/experiment/{experimentId}. */
45737
+ DiscardExperimentResponse: {
45738
+ /** @description Resulting async operation describing the delete call. */
45739
+ operation?: components["schemas"]["ExperimentOperation"] | null;
45740
+ };
44926
45741
  /** @description Discards read items from the front of the queue. */
44927
45742
  DiscardMemoryStoreQueueItemsRequest: {
44928
45743
  /**
@@ -45035,6 +45850,321 @@ export interface components {
45035
45850
  * @enum {string}
45036
45851
  */
45037
45852
  EventVisibility: "private" | "public" | "moderated";
45853
+ /** @description Application-layer error emitted on a failed experiment operation. */
45854
+ ExperimentApiError: {
45855
+ /**
45856
+ * @description Broad category of the failure.
45857
+ *
45858
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_VARIANT_CONFIGURATION
45859
+ *
45860
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_VARIANT_LABEL
45861
+ *
45862
+ * EXPERIMENT_API_ERROR_TYPE_MUST_HAVE_EXACTLY_ONE_BASELINE_VARIANT
45863
+ *
45864
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_OVERLAPPING_RUNTIME
45865
+ *
45866
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_INVALID_SCORING_CONFIGURATIONS
45867
+ *
45868
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_UNEXPECTED_PRODUCT_TYPE
45869
+ *
45870
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_EMPTY_CONFIGURATION
45871
+ *
45872
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_EMPTY_VARIANT_METADATA
45873
+ *
45874
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_WEIGHT_MUST_BE_POSITIVE
45875
+ *
45876
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_WEIGHTS_UNBALANCED
45877
+ *
45878
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_PLACE_CONFIG_REQUIRES_SCORING_ID_OR_DEFAULT
45879
+ *
45880
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_MISSING_VARIANT
45881
+ *
45882
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_MISSING_KEY
45883
+ *
45884
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_MISSING_VALUE
45885
+ *
45886
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_KEY_ALREADY_IN_USE
45887
+ *
45888
+ * EXPERIMENT_API_ERROR_TYPE_SYSTEM_ERROR
45889
+ *
45890
+ * EXPERIMENT_API_ERROR_TYPE_EXPERIMENT_RESULTS_NOT_FOUND
45891
+ *
45892
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_TARGETING_CRITERIA
45893
+ *
45894
+ * EXPERIMENT_API_ERROR_TYPE_TARGETING_NOT_ALLOWED
45895
+ *
45896
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_DURATION
45897
+ *
45898
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_CONFIG_NOT_FOUND
45899
+ *
45900
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_EXPERIMENT_NAME
45901
+ *
45902
+ * EXPERIMENT_API_ERROR_TYPE_CONDITIONAL_CONFIG_REQUIRES_NULL_BASELINE
45903
+ *
45904
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_CONTROL_VARIANT_MUST_MATCH_CURRENT_CONFIGURATION
45905
+ *
45906
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANTS_MUST_COVER_SAME_PLACES
45907
+ *
45908
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_HAS_DUPLICATE_PLACES
45909
+ */
45910
+ errorType?: components["schemas"]["ExperimentApiErrorType"];
45911
+ /** @description Stable machine-readable error code. */
45912
+ errorCode?: string | null;
45913
+ /** @description Human-readable description of the failure. */
45914
+ errorMessage?: string | null;
45915
+ /** @description Optional structured context about the failure (field paths, offending values, etc.). */
45916
+ errorContext?: {
45917
+ [key: string]: string | null;
45918
+ } | null;
45919
+ };
45920
+ /**
45921
+ * @description Validation failures.
45922
+ *
45923
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_VARIANT_CONFIGURATION
45924
+ *
45925
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_VARIANT_LABEL
45926
+ *
45927
+ * EXPERIMENT_API_ERROR_TYPE_MUST_HAVE_EXACTLY_ONE_BASELINE_VARIANT
45928
+ *
45929
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_OVERLAPPING_RUNTIME
45930
+ *
45931
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_INVALID_SCORING_CONFIGURATIONS
45932
+ *
45933
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_UNEXPECTED_PRODUCT_TYPE
45934
+ *
45935
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_EMPTY_CONFIGURATION
45936
+ *
45937
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_EMPTY_VARIANT_METADATA
45938
+ *
45939
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_WEIGHT_MUST_BE_POSITIVE
45940
+ *
45941
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_WEIGHTS_UNBALANCED
45942
+ *
45943
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_PLACE_CONFIG_REQUIRES_SCORING_ID_OR_DEFAULT
45944
+ *
45945
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_MISSING_VARIANT
45946
+ *
45947
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_MISSING_KEY
45948
+ *
45949
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_MISSING_VALUE
45950
+ *
45951
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_KEY_ALREADY_IN_USE
45952
+ *
45953
+ * EXPERIMENT_API_ERROR_TYPE_SYSTEM_ERROR
45954
+ *
45955
+ * EXPERIMENT_API_ERROR_TYPE_EXPERIMENT_RESULTS_NOT_FOUND
45956
+ *
45957
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_TARGETING_CRITERIA
45958
+ *
45959
+ * EXPERIMENT_API_ERROR_TYPE_TARGETING_NOT_ALLOWED
45960
+ *
45961
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_DURATION
45962
+ *
45963
+ * EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_CONFIG_NOT_FOUND
45964
+ *
45965
+ * EXPERIMENT_API_ERROR_TYPE_INVALID_EXPERIMENT_NAME
45966
+ *
45967
+ * EXPERIMENT_API_ERROR_TYPE_CONDITIONAL_CONFIG_REQUIRES_NULL_BASELINE
45968
+ *
45969
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_CONTROL_VARIANT_MUST_MATCH_CURRENT_CONFIGURATION
45970
+ *
45971
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANTS_MUST_COVER_SAME_PLACES
45972
+ *
45973
+ * EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_HAS_DUPLICATE_PLACES
45974
+ * @enum {string}
45975
+ */
45976
+ ExperimentApiErrorType: "EXPERIMENT_API_ERROR_TYPE_INVALID_VARIANT_CONFIGURATION" | "EXPERIMENT_API_ERROR_TYPE_INVALID_VARIANT_LABEL" | "EXPERIMENT_API_ERROR_TYPE_MUST_HAVE_EXACTLY_ONE_BASELINE_VARIANT" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_OVERLAPPING_RUNTIME" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_INVALID_SCORING_CONFIGURATIONS" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_UNEXPECTED_PRODUCT_TYPE" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_EMPTY_CONFIGURATION" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_EMPTY_VARIANT_METADATA" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_WEIGHT_MUST_BE_POSITIVE" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_WEIGHTS_UNBALANCED" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_PLACE_CONFIG_REQUIRES_SCORING_ID_OR_DEFAULT" | "EXPERIMENT_API_ERROR_TYPE_CONFIGS_MISSING_VARIANT" | "EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_MISSING_KEY" | "EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_MISSING_VALUE" | "EXPERIMENT_API_ERROR_TYPE_CONFIGS_KEY_ALREADY_IN_USE" | "EXPERIMENT_API_ERROR_TYPE_SYSTEM_ERROR" | "EXPERIMENT_API_ERROR_TYPE_EXPERIMENT_RESULTS_NOT_FOUND" | "EXPERIMENT_API_ERROR_TYPE_INVALID_TARGETING_CRITERIA" | "EXPERIMENT_API_ERROR_TYPE_TARGETING_NOT_ALLOWED" | "EXPERIMENT_API_ERROR_TYPE_INVALID_DURATION" | "EXPERIMENT_API_ERROR_TYPE_CONFIGS_VARIANT_CONFIG_NOT_FOUND" | "EXPERIMENT_API_ERROR_TYPE_INVALID_EXPERIMENT_NAME" | "EXPERIMENT_API_ERROR_TYPE_CONDITIONAL_CONFIG_REQUIRES_NULL_BASELINE" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_CONTROL_VARIANT_MUST_MATCH_CURRENT_CONFIGURATION" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANTS_MUST_COVER_SAME_PLACES" | "EXPERIMENT_API_ERROR_TYPE_MATCHMAKING_VARIANT_HAS_DUPLICATE_PLACES";
45977
+ ExperimentConfigEntry: {
45978
+ /** @description The config key this variant overrides. Must match across variants in the same experiment. */
45979
+ key?: string | null;
45980
+ /**
45981
+ * @description The value assigned to Key for this variant. Can be a string, number, bool, array, object,
45982
+ * or null.
45983
+ */
45984
+ entryValue?: unknown;
45985
+ /** @description Optional human-readable description carried alongside the value. */
45986
+ description?: string | null;
45987
+ };
45988
+ /**
45989
+ * @description Union of per-product experiment configurations. At most one of InGameConfigExperimentConfiguration or
45990
+ * MatchmakingExperimentConfiguration may be set.
45991
+ */
45992
+ ExperimentConfiguration: {
45993
+ /**
45994
+ * @description Discriminator selecting which configuration variant is populated.
45995
+ *
45996
+ * EXPERIMENT_PRODUCT_TYPE_IN_GAME_CONFIGS
45997
+ *
45998
+ * EXPERIMENT_PRODUCT_TYPE_MATCHMAKING
45999
+ */
46000
+ productType?: components["schemas"]["ExperimentProductType"];
46001
+ /** @description Populated when ProductType is InGameConfigExperimentConfiguration, null otherwise. */
46002
+ inGameConfigExperimentConfiguration?: components["schemas"]["InGameConfigExperimentConfiguration"] | null;
46003
+ /** @description Populated when ProductType is MatchmakingExperimentConfiguration, null otherwise. */
46004
+ matchmakingExperimentConfiguration?: components["schemas"]["MatchmakingExperimentConfiguration"] | null;
46005
+ };
46006
+ /**
46007
+ * @description Async operation result for an experiment Create / Update / Discard call. When
46008
+ * Done is true, at most one of Error or Experiment is set; when false, neither is. A successful delete is the
46009
+ * one case where a done operation carries neither: the experiment no longer exists, so
46010
+ * no Experiment body is returned.
46011
+ */
46012
+ ExperimentOperation: {
46013
+ /** @description Stable operation ID. */
46014
+ operationId?: string | null;
46015
+ /**
46016
+ * @description Current operational status of the operation.
46017
+ *
46018
+ * OPERATIONAL_STATUS_READY
46019
+ *
46020
+ * OPERATIONAL_STATUS_CREATING
46021
+ *
46022
+ * OPERATIONAL_STATUS_UPDATING
46023
+ *
46024
+ * OPERATIONAL_STATUS_STARTING
46025
+ *
46026
+ * OPERATIONAL_STATUS_STOPPING
46027
+ *
46028
+ * OPERATIONAL_STATUS_SCHEDULING
46029
+ *
46030
+ * OPERATIONAL_STATUS_DELETING
46031
+ *
46032
+ * OPERATIONAL_STATUS_RAMPING_UP
46033
+ *
46034
+ * OPERATIONAL_STATUS_SYNCING
46035
+ *
46036
+ * OPERATIONAL_STATUS_ROLLING_OUT
46037
+ */
46038
+ status?: components["schemas"]["OperationalStatus"];
46039
+ /**
46040
+ * Format: date-time
46041
+ * @description UTC time the operation was created.
46042
+ */
46043
+ createdTime?: string;
46044
+ /**
46045
+ * @description True once the operation terminates (success or failure). When false, neither
46046
+ * Error nor Experiment is populated.
46047
+ */
46048
+ done?: boolean;
46049
+ /** @description Error outcome. Populated iff Done is true and the operation failed. */
46050
+ error?: components["schemas"]["ExperimentApiError"] | null;
46051
+ /**
46052
+ * @description Successful outcome. Populated iff Done is true and the operation
46053
+ * succeeded and returned an experiment resource.
46054
+ */
46055
+ experiment?: components["schemas"]["ProductExperiment"] | null;
46056
+ };
46057
+ /**
46058
+ * @description Type of product the experiment is targeting.
46059
+ *
46060
+ * EXPERIMENT_PRODUCT_TYPE_IN_GAME_CONFIGS
46061
+ *
46062
+ * EXPERIMENT_PRODUCT_TYPE_MATCHMAKING
46063
+ * @enum {string}
46064
+ */
46065
+ ExperimentProductType: "EXPERIMENT_PRODUCT_TYPE_IN_GAME_CONFIGS" | "EXPERIMENT_PRODUCT_TYPE_MATCHMAKING";
46066
+ /**
46067
+ * @description Lifecycle state of an experiment.
46068
+ *
46069
+ * EXPERIMENT_STATE_DRAFT
46070
+ *
46071
+ * EXPERIMENT_STATE_SCHEDULED
46072
+ *
46073
+ * EXPERIMENT_STATE_RUNNING
46074
+ *
46075
+ * EXPERIMENT_STATE_COMPLETED
46076
+ *
46077
+ * EXPERIMENT_STATE_CANCELLED
46078
+ *
46079
+ * EXPERIMENT_STATE_DELETED
46080
+ * @enum {string}
46081
+ */
46082
+ ExperimentState: "EXPERIMENT_STATE_DRAFT" | "EXPERIMENT_STATE_SCHEDULED" | "EXPERIMENT_STATE_RUNNING" | "EXPERIMENT_STATE_COMPLETED" | "EXPERIMENT_STATE_CANCELLED" | "EXPERIMENT_STATE_DELETED";
46083
+ /** @description Computed stats for a running experiment. */
46084
+ ExperimentStats: {
46085
+ /** @description True if Sample Ratio Mismatch (SRM) was detected for the experiment. */
46086
+ isSrmDetected?: boolean;
46087
+ };
46088
+ /**
46089
+ * @description Async operation for fetching experiment stats. When Done is true exactly
46090
+ * one of Error or ExperimentStats is set; when false, neither is.
46091
+ */
46092
+ ExperimentStatsOperation: {
46093
+ /**
46094
+ * Format: int64
46095
+ * @description Experiment ID the stats are for.
46096
+ */
46097
+ experimentId?: number;
46098
+ /** @description UTC time the operation was last modified. */
46099
+ lastModifiedTime?: string | null;
46100
+ /** @description True once the stats fetch terminates (success or failure). */
46101
+ done?: boolean;
46102
+ /** @description Error outcome, when Done is true and the fetch failed. */
46103
+ error?: components["schemas"]["ExperimentApiError"] | null;
46104
+ /** @description Successful outcome, when Done is true and stats are available. */
46105
+ experimentStats?: components["schemas"]["ExperimentStats"] | null;
46106
+ };
46107
+ /**
46108
+ * @description Summary view of an experiment returned by the list endpoint. Does not include the variant /
46109
+ * configuration payload; clients should call Get for the full payload.
46110
+ */
46111
+ ExperimentSummary: {
46112
+ /** @description Experiment ID. */
46113
+ id?: string | null;
46114
+ /** @description Experiment display name. */
46115
+ name?: string | null;
46116
+ /** @description Experiment description. */
46117
+ description?: string | null;
46118
+ /**
46119
+ * Format: date-time
46120
+ * @description UTC time the experiment was created.
46121
+ */
46122
+ createdTime?: string;
46123
+ /** @description UTC time the experiment was last updated. */
46124
+ lastUpdatedTime?: string | null;
46125
+ /** @description UTC time the experiment was started, if running. */
46126
+ startedTime?: string | null;
46127
+ /** @description UTC time the experiment was stopped, if completed/cancelled. */
46128
+ stoppedTime?: string | null;
46129
+ /**
46130
+ * @description Lifecycle state.
46131
+ *
46132
+ * EXPERIMENT_STATE_DRAFT
46133
+ *
46134
+ * EXPERIMENT_STATE_SCHEDULED
46135
+ *
46136
+ * EXPERIMENT_STATE_RUNNING
46137
+ *
46138
+ * EXPERIMENT_STATE_COMPLETED
46139
+ *
46140
+ * EXPERIMENT_STATE_CANCELLED
46141
+ *
46142
+ * EXPERIMENT_STATE_DELETED
46143
+ */
46144
+ state?: components["schemas"]["ExperimentState"];
46145
+ /** @description User ID of the creator of the experiment. */
46146
+ createdBy?: string | null;
46147
+ /**
46148
+ * @description Convenience field exposing the first config key referenced by the first variant
46149
+ * (in-game-configs experiments only). Empty for matchmaking.
46150
+ */
46151
+ experimentConfigKey?: string | null;
46152
+ /** @description UTC time the experiment is scheduled to start, if scheduled. */
46153
+ scheduledTime?: string | null;
46154
+ /**
46155
+ * Format: int64
46156
+ * @description Planned experiment duration in whole seconds.
46157
+ */
46158
+ durationSeconds?: number;
46159
+ /**
46160
+ * @description Product type.
46161
+ *
46162
+ * EXPERIMENT_PRODUCT_TYPE_IN_GAME_CONFIGS
46163
+ *
46164
+ * EXPERIMENT_PRODUCT_TYPE_MATCHMAKING
46165
+ */
46166
+ productType?: components["schemas"]["ExperimentProductType"];
46167
+ };
45038
46168
  /**
45039
46169
  * @description The featuring status of a virtual event.
45040
46170
  * @enum {string}
@@ -45351,6 +46481,27 @@ export interface components {
45351
46481
  amount?: number;
45352
46482
  type?: components["schemas"]["TransactionRecordsApi.CurrencyType"];
45353
46483
  };
46484
+ /**
46485
+ * @description Response body for
46486
+ * `GET /v1/experimentation/universes/{universeId}/operations/{operationId}`.
46487
+ */
46488
+ GetExperimentOperationStatusResponse: {
46489
+ /** @description The current state of the async operation. */
46490
+ operation?: components["schemas"]["ExperimentOperation"] | null;
46491
+ };
46492
+ /** @description Response body for GET /v1/universes/{universeId}/experiment/{experimentId}. */
46493
+ GetExperimentResponse: {
46494
+ /** @description The requested experiment. */
46495
+ experiment?: components["schemas"]["ProductExperiment"] | null;
46496
+ };
46497
+ /**
46498
+ * @description Response body for
46499
+ * `GET /v1/experimentation/universes/{universeId}/experiments/{experimentId}/stats`.
46500
+ */
46501
+ GetExperimentStatsResponse: {
46502
+ /** @description The async operation containing the experiment stats. */
46503
+ operation?: components["schemas"]["ExperimentStatsOperation"] | null;
46504
+ };
45354
46505
  /**
45355
46506
  * @description Represents metadata about the long-running operation corresponding to a
45356
46507
  * GetInstance request.
@@ -46018,6 +47169,11 @@ export interface components {
46018
47169
  /** @description The asset that was saved. */
46019
47170
  creatorStoreAsset?: components["schemas"]["CreatorStoreAsset"] | null;
46020
47171
  } | null;
47172
+ /** @description Configuration for an in-game-config experiment. */
47173
+ InGameConfigExperimentConfiguration: {
47174
+ /** @description Variants participating in the experiment. Exactly one must have IsBaseline set. */
47175
+ variants?: components["schemas"]["SingleConfigExperimentVariant"][] | null;
47176
+ };
46021
47177
  /**
46022
47178
  * @description Increments the entry value.
46023
47179
  *
@@ -46454,6 +47610,17 @@ export interface components {
46454
47610
  /** @description A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. */
46455
47611
  nextPageToken?: string;
46456
47612
  };
47613
+ /** @description Response body for `GET /v1/experimentation/universes/{universeId}/experiments`. */
47614
+ ListExperimentsResponse: {
47615
+ /** @description The page of experiments matching the query. */
47616
+ experiments?: components["schemas"]["ExperimentSummary"][] | null;
47617
+ /**
47618
+ * Format: int32
47619
+ * @description Total number of experiments for the universe matching the filters
47620
+ * (independent of pagination).
47621
+ */
47622
+ total?: number;
47623
+ };
46457
47624
  /** @description Response for listing game pass configuration details by universe */
46458
47625
  ListGamePassConfigsByUniverseResponse: {
46459
47626
  /** @description The list of game passes with their corresponding configuration details. */
@@ -46646,7 +47813,7 @@ export interface components {
46646
47813
  */
46647
47814
  nextPageToken?: string;
46648
47815
  };
46649
- /** @description Literal constant for an RPN operand (proto `LiteralValue` oneof as independent fields for JSON). */
47816
+ /** @description Literal constant for an RPN operand. */
46650
47817
  LiteralValueDto: {
46651
47818
  booleanValue?: string | null;
46652
47819
  integerValue?: string | null;
@@ -47016,6 +48183,18 @@ export interface components {
47016
48183
  /** @description Whether text chat signal is enabled for Custom Matchmaking. */
47017
48184
  isMatchmakingTextChatSignalEnabled?: boolean;
47018
48185
  };
48186
+ /** @description Configuration for a matchmaking experiment. */
48187
+ MatchmakingExperimentConfiguration: {
48188
+ /** @description Variants participating in the experiment. */
48189
+ variants?: components["schemas"]["MatchmakingExperimentVariant"][] | null;
48190
+ };
48191
+ /** @description Variant definition for a matchmaking experiment. */
48192
+ MatchmakingExperimentVariant: {
48193
+ /** @description Metadata common to all variants. */
48194
+ variantMeta?: components["schemas"]["VariantMeta"] | null;
48195
+ /** @description Per-place matchmaking scoring configurations applied when this variant is selected. */
48196
+ placeMatchmakingConfigs?: components["schemas"]["PlaceScoringConfig"][] | null;
48197
+ };
47019
48198
  /**
47020
48199
  * @description The numerical attribute comparison type for matchmaking.
47021
48200
  * @enum {string}
@@ -47139,6 +48318,40 @@ export interface components {
47139
48318
  weight?: number;
47140
48319
  signalType?: components["schemas"]["MatchmakingSignalType"];
47141
48320
  };
48321
+ /**
48322
+ * @description Async operation result for a `:calculateMde` call. When Done is true
48323
+ * exactly one of Error or Mde is set; when false, neither is.
48324
+ */
48325
+ MdeOperation: {
48326
+ /** @description Stable operation ID. */
48327
+ operationId?: string | null;
48328
+ /** @description UTC time the operation was last modified. */
48329
+ lastModifiedTime?: string | null;
48330
+ /** @description True once the calculation terminates (success or failure). */
48331
+ done?: boolean;
48332
+ /** @description Error outcome, when Done is true and the calculation failed. */
48333
+ error?: components["schemas"]["ExperimentApiError"] | null;
48334
+ /** @description Successful outcome, when Done is true and a result is available. */
48335
+ mde?: components["schemas"]["MdeResult"] | null;
48336
+ };
48337
+ /**
48338
+ * @description MDE calculation result. Returned in the `operation.result` field on a successful
48339
+ * `POST .../experiments:calculateMde` call.
48340
+ */
48341
+ MdeResult: {
48342
+ /**
48343
+ * Format: int32
48344
+ * @description Estimated total sample size required for the experiment.
48345
+ */
48346
+ totalSampleSize?: number;
48347
+ /** @description MDE expressed as a relative percentage of the goal metric, per non-baseline variant. */
48348
+ mdeRelativePercentages?: number[] | null;
48349
+ /**
48350
+ * Format: int32
48351
+ * @description Below this sample-size threshold the MDE estimate is unreliable.
48352
+ */
48353
+ minimumSampleSizeThreshold?: number;
48354
+ };
47142
48355
  /** @description Represents the memory store of the universe. */
47143
48356
  MemoryStore: {
47144
48357
  /**
@@ -47549,6 +48762,31 @@ export interface components {
47549
48762
  done?: boolean;
47550
48763
  metadata?: components["schemas"]["AnalyticsQueryPublicApi.OperationMetadata"];
47551
48764
  };
48765
+ /**
48766
+ * @description Current operational status reported on an experiment or an async operation performed on one.
48767
+ *
48768
+ * OPERATIONAL_STATUS_READY
48769
+ *
48770
+ * OPERATIONAL_STATUS_CREATING
48771
+ *
48772
+ * OPERATIONAL_STATUS_UPDATING
48773
+ *
48774
+ * OPERATIONAL_STATUS_STARTING
48775
+ *
48776
+ * OPERATIONAL_STATUS_STOPPING
48777
+ *
48778
+ * OPERATIONAL_STATUS_SCHEDULING
48779
+ *
48780
+ * OPERATIONAL_STATUS_DELETING
48781
+ *
48782
+ * OPERATIONAL_STATUS_RAMPING_UP
48783
+ *
48784
+ * OPERATIONAL_STATUS_SYNCING
48785
+ *
48786
+ * OPERATIONAL_STATUS_ROLLING_OUT
48787
+ * @enum {string}
48788
+ */
48789
+ OperationalStatus: "OPERATIONAL_STATUS_READY" | "OPERATIONAL_STATUS_CREATING" | "OPERATIONAL_STATUS_UPDATING" | "OPERATIONAL_STATUS_STARTING" | "OPERATIONAL_STATUS_STOPPING" | "OPERATIONAL_STATUS_SCHEDULING" | "OPERATIONAL_STATUS_DELETING" | "OPERATIONAL_STATUS_RAMPING_UP" | "OPERATIONAL_STATUS_SYNCING" | "OPERATIONAL_STATUS_ROLLING_OUT";
47552
48790
  /** @description A key-value entry in an ordered data store. */
47553
48791
  OrderedDataStoreEntry: {
47554
48792
  /**
@@ -47691,6 +48929,21 @@ export interface components {
47691
48929
  /** @description Latest version at the time of the restart. */
47692
48930
  latestVersion?: string | null;
47693
48931
  };
48932
+ /** @description Matchmaking scoring configuration applied to a single place in an experiment variant. */
48933
+ PlaceScoringConfig: {
48934
+ /**
48935
+ * Format: int64
48936
+ * @description Place ID this scoring config applies to.
48937
+ */
48938
+ placeId?: number;
48939
+ /** @description Matchmaking scoring config ID for this place. Ignored when UsePlatformDefault is true. */
48940
+ matchmakingScoringConfigId?: string | null;
48941
+ /**
48942
+ * @description When true, this place uses the platform default matchmaking scoring config instead of
48943
+ * MatchmakingScoringConfigId.
48944
+ */
48945
+ usePlatformDefault?: boolean;
48946
+ };
47694
48947
  /** @description Per-place forecast data for a game restart. */
47695
48948
  PlaceSummaryForGameRestart: {
47696
48949
  /**
@@ -47966,7 +49219,7 @@ export interface components {
47966
49219
  metadata?: components["schemas"]["PrivateServerSubscriptionMetadata"] | null;
47967
49220
  };
47968
49221
  /** @enum {string} */
47969
- PrivateServerSubscriptionTag: "Invalid" | "RobloxSubscription";
49222
+ PrivateServerSubscriptionTag: "Invalid" | "RobloxSubscription" | "RobloxSubscriptionActiveBenefit";
47970
49223
  PrivateServerUpdatePermissionsRequest: {
47971
49224
  clanAllowed?: boolean | null;
47972
49225
  /** Format: int64 */
@@ -48025,6 +49278,89 @@ export interface components {
48025
49278
  } & {
48026
49279
  [key: string]: unknown;
48027
49280
  }) | null;
49281
+ /**
49282
+ * @description Config-based experiment for a given product. Returned by the Get endpoint and embedded in
49283
+ * a successful experiment operation.
49284
+ */
49285
+ ProductExperiment: {
49286
+ /** @description Experiment ID. */
49287
+ id?: string | null;
49288
+ /** @description Experiment display name. */
49289
+ name?: string | null;
49290
+ /** @description Experiment description. */
49291
+ description?: string | null;
49292
+ /**
49293
+ * Format: date-time
49294
+ * @description UTC time the experiment was created.
49295
+ */
49296
+ createdTime?: string;
49297
+ /** @description UTC time the experiment was last updated. */
49298
+ lastUpdatedTime?: string | null;
49299
+ /** @description UTC time the experiment was started (running), if it has been. */
49300
+ startedTime?: string | null;
49301
+ /** @description UTC time the experiment was stopped, if it has been. */
49302
+ stoppedTime?: string | null;
49303
+ /**
49304
+ * @description Lifecycle state.
49305
+ *
49306
+ * EXPERIMENT_STATE_DRAFT
49307
+ *
49308
+ * EXPERIMENT_STATE_SCHEDULED
49309
+ *
49310
+ * EXPERIMENT_STATE_RUNNING
49311
+ *
49312
+ * EXPERIMENT_STATE_COMPLETED
49313
+ *
49314
+ * EXPERIMENT_STATE_CANCELLED
49315
+ *
49316
+ * EXPERIMENT_STATE_DELETED
49317
+ */
49318
+ state?: components["schemas"]["ExperimentState"];
49319
+ /** @description Experiment configuration (variants and product-type-specific data). */
49320
+ experimentConfiguration?: components["schemas"]["ExperimentConfiguration"] | null;
49321
+ /**
49322
+ * Format: int32
49323
+ * @description Exposure percent in range 0-100.
49324
+ */
49325
+ exposurePercent?: number;
49326
+ /** @description Targeting criteria scoping which users are eligible for the experiment. */
49327
+ targetingCriteria?: components["schemas"]["TargetingCriteria"] | null;
49328
+ /**
49329
+ * @description Current operational status of an in-flight async operation (if any).
49330
+ *
49331
+ * OPERATIONAL_STATUS_READY
49332
+ *
49333
+ * OPERATIONAL_STATUS_CREATING
49334
+ *
49335
+ * OPERATIONAL_STATUS_UPDATING
49336
+ *
49337
+ * OPERATIONAL_STATUS_STARTING
49338
+ *
49339
+ * OPERATIONAL_STATUS_STOPPING
49340
+ *
49341
+ * OPERATIONAL_STATUS_SCHEDULING
49342
+ *
49343
+ * OPERATIONAL_STATUS_DELETING
49344
+ *
49345
+ * OPERATIONAL_STATUS_RAMPING_UP
49346
+ *
49347
+ * OPERATIONAL_STATUS_SYNCING
49348
+ *
49349
+ * OPERATIONAL_STATUS_ROLLING_OUT
49350
+ */
49351
+ operationalStatus?: components["schemas"]["OperationalStatus"];
49352
+ /** @description User ID of the creator of the experiment. */
49353
+ createdBy?: string | null;
49354
+ /** @description UTC time the experiment is scheduled to start, if scheduled. */
49355
+ scheduledTime?: string | null;
49356
+ /**
49357
+ * Format: int64
49358
+ * @description Experiment duration in whole seconds.
49359
+ */
49360
+ durationSeconds?: number;
49361
+ /** @description Metric configuration (goal + learning metrics). */
49362
+ universeMetricConfiguration?: components["schemas"]["UniverseMetricConfiguration"] | null;
49363
+ };
48028
49364
  /** @description Request model for publishing a draft. */
48029
49365
  PublishDraftRequest: {
48030
49366
  /** @description The draft hash for concurrency control. If provided, the publish will fail if it doesn't match. */
@@ -49512,6 +50848,19 @@ export interface components {
49512
50848
  /** @description List of asset Ids used to equip pants for default clothing when the avatar appears nude. */
49513
50849
  defaultPantAssetIds?: number[];
49514
50850
  };
50851
+ /** @description Request model to equip a emote */
50852
+ "Roblox.Api.Avatar.Models.EmoteRequestModel": {
50853
+ /**
50854
+ * Format: int64
50855
+ * @description The asset id of the emote
50856
+ */
50857
+ assetId?: number;
50858
+ /**
50859
+ * Format: int32
50860
+ * @description The position to equip the emote to
50861
+ */
50862
+ position?: number;
50863
+ };
49515
50864
  /** @description Response object representing a user's emote */
49516
50865
  "Roblox.Api.Avatar.Models.EmoteResponseModel": {
49517
50866
  /**
@@ -49548,6 +50897,40 @@ export interface components {
49548
50897
  /** @description Moderation status */
49549
50898
  moderationStatus?: string;
49550
50899
  };
50900
+ "Roblox.Api.Avatar.Models.InvalidBackgroundResponse": {
50901
+ /**
50902
+ * Format: int64
50903
+ * @description The asset id of the emote
50904
+ */
50905
+ BackgroundAssetId?: number;
50906
+ /** @description The error associated with the background. */
50907
+ Error?: string;
50908
+ };
50909
+ /** @description Response object representing an invalid emote */
50910
+ "Roblox.Api.Avatar.Models.InvalidEmoteResponseModel": {
50911
+ /**
50912
+ * Format: int64
50913
+ * @description The asset id of the emote
50914
+ */
50915
+ assetId?: number;
50916
+ /**
50917
+ * Format: int32
50918
+ * @description The position the emote is equipped to
50919
+ */
50920
+ position?: number;
50921
+ /** @description The error occured while trying to equip this emote */
50922
+ error?: string;
50923
+ };
50924
+ /** @description Validation error for a profile frame that could not be applied. */
50925
+ "Roblox.Api.Avatar.Models.InvalidProfileFrameResponse": {
50926
+ /**
50927
+ * Format: int64
50928
+ * @description The asset id of the profile frame.
50929
+ */
50930
+ FrameAssetId?: number;
50931
+ /** @description The error associated with the profile frame. */
50932
+ Error?: string;
50933
+ };
49551
50934
  /** @description A model containing details about a user outfit */
49552
50935
  "Roblox.Api.Avatar.Models.OutfitDetailsModel": {
49553
50936
  /**
@@ -49691,10 +51074,57 @@ export interface components {
49691
51074
  assetTypeID?: number;
49692
51075
  isPlayerChoice?: boolean;
49693
51076
  };
51077
+ /** @description A model containing details about an avatar. */
51078
+ "Roblox.Api.Avatar.Models.UpdateAvatarDataModel": {
51079
+ scales?: components["schemas"]["Roblox.Web.Responses.Avatar.ScaleModel"];
51080
+ /**
51081
+ * Format: int32
51082
+ * @description The avatar type.
51083
+ * @enum {integer}
51084
+ */
51085
+ playerAvatarType?: 1 | 3;
51086
+ bodyColors?: components["schemas"]["Roblox.Api.Avatar.Models.BodyColors3Model"];
51087
+ /** @description The assets worn on the character. */
51088
+ assets?: components["schemas"]["Roblox.Api.Avatar.Models.AssetWearModel"][];
51089
+ };
51090
+ /** @description A model containing details about an avatar update request. */
51091
+ "Roblox.Api.Avatar.Models.UpdateAvatarRequestModel": {
51092
+ /**
51093
+ * @description Update mask specifying which avatar fields to update (can include multiple).
51094
+ * Acceptable values:
51095
+ * - UpdateAvatarType: updates avatar.type (R6/R15)
51096
+ * - UpdateScales: updates avatar.scale
51097
+ * - UpdateBodyColors: updates avatar.body_color_set
51098
+ * - UpdateAssets: updates avatar.avatar_assets
51099
+ */
51100
+ updateMask?: (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8)[];
51101
+ data?: components["schemas"]["Roblox.Api.Avatar.Models.UpdateAvatarDataModel"];
51102
+ };
51103
+ /** @description A model for update avatar responses. */
51104
+ "Roblox.Api.Avatar.Models.UpdateAvatarResponseModel": {
51105
+ /**
51106
+ * @description The assets that could not be worn
51107
+ * Unlike invalidAssetIds, only contains assets that are wearable types.
51108
+ */
51109
+ invalidAssets?: components["schemas"]["Roblox.Api.Avatar.Models.AssetModelV2"][];
51110
+ /** @description Whether or not all the outfit contents were successfully worn. */
51111
+ success?: boolean;
51112
+ };
49694
51113
  /** @description A model containing avatar background data. */
49695
51114
  "Roblox.Api.Avatar.Models.V4.AvatarBackgroundModel": {
49696
51115
  backgroundAsset?: components["schemas"]["Roblox.Api.Avatar.Models.AssetModelV2"];
49697
51116
  };
51117
+ /**
51118
+ * @description A model which contains the asset id of the background. This can be
51119
+ * extended to have more attributes in the future.
51120
+ */
51121
+ "Roblox.Api.Avatar.Models.V4.AvatarBackgroundRequestModel": {
51122
+ /**
51123
+ * Format: int64
51124
+ * @description An asset id.
51125
+ */
51126
+ id?: number;
51127
+ };
49698
51128
  /** @description Avatar config details. */
49699
51129
  "Roblox.Api.Avatar.Models.V4.AvatarConfigurations": {
49700
51130
  /** @description The emotes on the character. */
@@ -49726,6 +51156,14 @@ export interface components {
49726
51156
  "Roblox.Api.Avatar.Models.V4.AvatarProfileFrameModel": {
49727
51157
  frameAsset?: components["schemas"]["Roblox.Api.Avatar.Models.AssetModelV2"];
49728
51158
  };
51159
+ /** @description A model which contains the asset id of the profile frame. */
51160
+ "Roblox.Api.Avatar.Models.V4.AvatarProfileFrameRequestModel": {
51161
+ /**
51162
+ * Format: int64
51163
+ * @description An asset id. Use 0 to clear the equipped frame.
51164
+ */
51165
+ id?: number;
51166
+ };
49729
51167
  /** @description Background configuration for an outfit. */
49730
51168
  "Roblox.Api.Avatar.Models.V4.OutfitConfigurations": {
49731
51169
  background?: components["schemas"]["Roblox.Api.Avatar.Models.V4.AvatarBackgroundModel"];
@@ -49774,6 +51212,129 @@ export interface components {
49774
51212
  */
49775
51213
  playerAvatarType?: 1 | 3;
49776
51214
  };
51215
+ /** @description Request model for creating an outfit (V4). */
51216
+ "Roblox.Api.Avatar.Models.V4.Request.CreateOutfitDefinitionRequestV4": {
51217
+ outfitDefinition?: components["schemas"]["Roblox.Api.Avatar.Models.V4.UpdateOutfitDefinition"];
51218
+ };
51219
+ /** @description Request model for updating an avatar definition (V4). */
51220
+ "Roblox.Api.Avatar.Models.V4.Request.UpdateAvatarDefinitionRequestV4": {
51221
+ /** @description The list of data needed to be updated. */
51222
+ updateTypes?: (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8)[];
51223
+ avatarDefinition?: components["schemas"]["Roblox.Api.Avatar.Models.V4.UpdateAvatarDefinition"];
51224
+ };
51225
+ /** @description Request model for updating an outfit (V4). */
51226
+ "Roblox.Api.Avatar.Models.V4.Request.UpdateOutfitDefinitionRequestV4": {
51227
+ /** @description The list of data needed to be updated. */
51228
+ updateTypes?: (0 | 1 | 2 | 3 | 4 | 5 | 6)[];
51229
+ outfitDefinition?: components["schemas"]["Roblox.Api.Avatar.Models.V4.UpdateOutfitDefinition"];
51230
+ };
51231
+ /** @description Validation details for avatar mutation responses when one or more inputs could not be applied. */
51232
+ "Roblox.Api.Avatar.Models.V4.Response.AvatarValidationResultV4": {
51233
+ /** @description Assets that could not be worn. */
51234
+ invalidAssets?: components["schemas"]["Roblox.Api.Avatar.Models.AssetModelV2"][];
51235
+ /** @description Background assets that could not be applied. */
51236
+ invalidBackground?: components["schemas"]["Roblox.Api.Avatar.Models.InvalidBackgroundResponse"][];
51237
+ /** @description Profile frame assets that could not be applied. */
51238
+ invalidProfileFrame?: components["schemas"]["Roblox.Api.Avatar.Models.InvalidProfileFrameResponse"][];
51239
+ /** @description Emotes that could not be equipped. */
51240
+ invalidEmotes?: components["schemas"]["Roblox.Api.Avatar.Models.InvalidEmoteResponseModel"][];
51241
+ /** @description Thumbnail customizations that could not be applied. */
51242
+ invalidThumbnailCustomizations?: components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.InvalidThumbnailCustomizationResponse"][];
51243
+ };
51244
+ /** @description Response model for create outfit (V4). */
51245
+ "Roblox.Api.Avatar.Models.V4.Response.CreateOutfitDefinitionResponseV4": {
51246
+ /** @description Whether all requested changes were successfully applied. */
51247
+ success?: boolean;
51248
+ validation?: components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.OutfitValidationResultV4"];
51249
+ };
51250
+ "Roblox.Api.Avatar.Models.V4.Response.InvalidThumbnailCustomizationResponse": {
51251
+ ThumbnailCustomizationModel?: components["schemas"]["Roblox.Api.Avatar.Models.AvatarThumbnailCustomizationModel"];
51252
+ /** @description The error associated with the thumbnail customization */
51253
+ Error?: string;
51254
+ };
51255
+ /** @description Validation details for outfit mutation responses when one or more inputs could not be applied. */
51256
+ "Roblox.Api.Avatar.Models.V4.Response.OutfitValidationResultV4": {
51257
+ /** @description Assets that could not be worn. */
51258
+ unwornAssets?: components["schemas"]["Roblox.Api.Avatar.Models.AssetModelV2"][];
51259
+ /** @description Background assets that could not be applied. */
51260
+ invalidBackground?: components["schemas"]["Roblox.Api.Avatar.Models.InvalidBackgroundResponse"][];
51261
+ };
51262
+ /** @description Response model for update avatar (V4). */
51263
+ "Roblox.Api.Avatar.Models.V4.Response.UpdateAvatarDefinitionResponseV4": {
51264
+ /** @description Whether all requested changes were successfully applied. */
51265
+ success?: boolean;
51266
+ /**
51267
+ * @description Temporary top-level mirror of Roblox.Api.Avatar.Models.V4.Response.AvatarValidationResultV4.InvalidAssets to unblock
51268
+ * clients that still read `invalidAssets` at the response root during backgrounds rollout.
51269
+ * Prefer Roblox.Api.Avatar.Models.V4.Response.UpdateAvatarDefinitionResponseV4.Validation.Roblox.Api.Avatar.Models.V4.Response.AvatarValidationResultV4.InvalidAssets.
51270
+ * Will be reverted once the engine fix is fully deployed.
51271
+ */
51272
+ invalidAssets?: components["schemas"]["Roblox.Api.Avatar.Models.AssetModelV2"][];
51273
+ validation?: components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.AvatarValidationResultV4"];
51274
+ };
51275
+ /** @description Response model for update outfit (V4). */
51276
+ "Roblox.Api.Avatar.Models.V4.Response.UpdateOutfitDefinitionResponseV4": {
51277
+ /** @description Whether all requested changes were successfully applied. */
51278
+ success?: boolean;
51279
+ validation?: components["schemas"]["Roblox.Api.Avatar.Models.V4.Response.OutfitValidationResultV4"];
51280
+ };
51281
+ /** @description A model containing avatar config fields to update. */
51282
+ "Roblox.Api.Avatar.Models.V4.UpdateAvatarConfig": {
51283
+ /** @description The avatar's emotes. */
51284
+ emoteRequestModels?: components["schemas"]["Roblox.Api.Avatar.Models.EmoteRequestModel"][];
51285
+ /** @description The avatar's thumbnail customizations. */
51286
+ thumbnailCustomizationModels?: components["schemas"]["Roblox.Api.Avatar.Models.AvatarThumbnailCustomizationModel"][];
51287
+ backgroundRequestModel?: components["schemas"]["Roblox.Api.Avatar.Models.V4.AvatarBackgroundRequestModel"];
51288
+ profileFrameRequestModel?: components["schemas"]["Roblox.Api.Avatar.Models.V4.AvatarProfileFrameRequestModel"];
51289
+ };
51290
+ /** @description A model containing details about an avatar update. */
51291
+ "Roblox.Api.Avatar.Models.V4.UpdateAvatarDefinition": {
51292
+ updateAvatarModel?: components["schemas"]["Roblox.Api.Avatar.Models.V4.UpdateAvatarModelV4"];
51293
+ updateAvatarConfig?: components["schemas"]["Roblox.Api.Avatar.Models.V4.UpdateAvatarConfig"];
51294
+ };
51295
+ /** @description A model containing avatar model fields to update. */
51296
+ "Roblox.Api.Avatar.Models.V4.UpdateAvatarModelV4": {
51297
+ scales?: components["schemas"]["Roblox.Web.Responses.Avatar.ScaleModel"];
51298
+ /**
51299
+ * Format: int32
51300
+ * @description The avatar type.
51301
+ * @enum {integer}
51302
+ */
51303
+ playerAvatarType?: 1 | 3;
51304
+ bodyColors?: components["schemas"]["Roblox.Api.Avatar.Models.BodyColorsModelV4"];
51305
+ /** @description The assets worn on the character. */
51306
+ assets?: components["schemas"]["Roblox.Api.Avatar.Models.AssetWearModel"][];
51307
+ };
51308
+ /** @description A model containing outfit config fields to update. */
51309
+ "Roblox.Api.Avatar.Models.V4.UpdateOutfitConfig": {
51310
+ backgroundRequestModel?: components["schemas"]["Roblox.Api.Avatar.Models.V4.AvatarBackgroundRequestModel"];
51311
+ };
51312
+ /** @description A model containing outfit fields to create or update. */
51313
+ "Roblox.Api.Avatar.Models.V4.UpdateOutfitDefinition": {
51314
+ updateOutfitModel?: components["schemas"]["Roblox.Api.Avatar.Models.V4.UpdateOutfitModelV4"];
51315
+ updateOutfitConfig?: components["schemas"]["Roblox.Api.Avatar.Models.V4.UpdateOutfitConfig"];
51316
+ };
51317
+ /** @description A model containing core outfit fields to update. */
51318
+ "Roblox.Api.Avatar.Models.V4.UpdateOutfitModelV4": {
51319
+ /** @description The outfit name. */
51320
+ name?: string;
51321
+ bodyColors?: components["schemas"]["Roblox.Api.Avatar.Models.BodyColorsModelV4"];
51322
+ /** @description The assets on the outfit. */
51323
+ assets?: components["schemas"]["Roblox.Api.Avatar.Models.AssetWearModel"][];
51324
+ scale?: components["schemas"]["Roblox.Web.Responses.Avatar.ScaleModel"];
51325
+ /**
51326
+ * Format: int32
51327
+ * @description The player avatar type.
51328
+ * @enum {integer}
51329
+ */
51330
+ playerAvatarType?: 1 | 3;
51331
+ /**
51332
+ * Format: int32
51333
+ * @description The type of outfit (for example Avatar or Makeup). Defaults to Avatar when omitted.
51334
+ * @enum {integer}
51335
+ */
51336
+ outfitType?: 0 | 1 | 2 | 4 | 5;
51337
+ };
49777
51338
  /** @description A model that contains a list of AssetWear models */
49778
51339
  "Roblox.Api.Avatar.Models.WearRequestModel": {
49779
51340
  /** @description The asset ids */
@@ -51833,10 +53394,10 @@ export interface components {
51833
53394
  sourceUniverseId?: number;
51834
53395
  /**
51835
53396
  * Format: int32
51836
- * @description The origin source type associated with the friend request. ['Unknown' = 0, 'PlayerSearch' = 1, 'QrCode' = 2, 'InGame' = 3, 'UserProfile' = 4, 'QqContactImporter' = 5, 'WeChatContactImporter' = 6, 'ProfileShare' = 7, 'PhoneContactImporter' = 8, 'FriendRecommendations' = 9, 'UserCommunities' = 10, 'TrustedFriend' = 11]
53397
+ * @description The origin source type associated with the friend request. ['Unknown' = 0, 'PlayerSearch' = 1, 'QrCode' = 2, 'InGame' = 3, 'UserProfile' = 4, 'QqContactImporter' = 5, 'WeChatContactImporter' = 6, 'ProfileShare' = 7, 'PhoneContactImporter' = 8, 'FriendRecommendations' = 9, 'UserCommunities' = 10, 'TrustedFriend' = 11, 'SchoolMemberList' = 12]
51837
53398
  * @enum {integer}
51838
53399
  */
51839
- originSourceType?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;
53400
+ originSourceType?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
51840
53401
  /** @description The contact name associated with the friend request. */
51841
53402
  contactName?: string;
51842
53403
  /** @description The nickname associated with the friend request. */
@@ -54166,6 +55727,7 @@ export interface components {
54166
55727
  /** Format: date-time */
54167
55728
  lastEvaluatedTime?: string;
54168
55729
  requirements?: components["schemas"]["Roblox.Groups.Client.TierRequirement"][];
55730
+ capabilities?: components["schemas"]["Roblox.Groups.Client.TierCapabilities"];
54169
55731
  };
54170
55732
  "Roblox.Groups.Client.CreateBlockedKeywordsResponse": {
54171
55733
  createdKeywords?: components["schemas"]["Roblox.Groups.Client.BlockedKeywordModel"][];
@@ -54190,6 +55752,9 @@ export interface components {
54190
55752
  contentType?: string;
54191
55753
  contentId?: string;
54192
55754
  };
55755
+ "Roblox.Groups.Client.TierCapabilities": {
55756
+ isEligibleForUnrestrictedMessages?: boolean;
55757
+ };
54193
55758
  "Roblox.Groups.Client.TierEvaluationResultResponse": {
54194
55759
  tierInfo?: components["schemas"]["Roblox.Groups.Client.CommunityTierInfoResponse"];
54195
55760
  passedSignals?: string[];
@@ -54474,6 +56039,90 @@ export interface components {
54474
56039
  /** @description The asset name. */
54475
56040
  name?: string;
54476
56041
  };
56042
+ "Roblox.ItemConfiguration.Api.Models.Request.PublishingPreferences.CreatePublishingPreferencesRequest": {
56043
+ /** Format: int64 */
56044
+ creatorUserId?: number;
56045
+ /** Format: int64 */
56046
+ creatorGroupId?: number;
56047
+ /**
56048
+ * Format: int32
56049
+ * @description Publishing type for the collectible. Currently can be either Limited or NonLimited. ['Invalid' = 0, 'Limited' = 1, 'NonLimited' = 2]
56050
+ * @enum {integer}
56051
+ */
56052
+ publishingType?: 0 | 1 | 2;
56053
+ /**
56054
+ * Format: int32
56055
+ * @description Represents possible SaleLocation types of the Collectibles System. ['SALE_LOCATION_TYPE_INVALID' = 0, 'SALE_LOCATION_TYPE_SHOP_AND_ALL_EXPERIENCES' = 1, 'SALE_LOCATION_EXPERIENCES_AND_DEV_API_ONLY' = 2, 'SALE_LOCATION_TYPE_SHOP_ONLY' = 3, 'SALE_LOCATION_TYPE_SHOP_AND_EXPERIENCES_BY_ID' = 4]
56056
+ * @enum {integer}
56057
+ */
56058
+ saleLocationType?: 0 | 1 | 2 | 3 | 4;
56059
+ places?: number[];
56060
+ /** Format: int64 */
56061
+ priceInRobux?: number;
56062
+ /** Format: int64 */
56063
+ priceOffset?: number;
56064
+ isFree?: boolean;
56065
+ enableRegionalPricing?: boolean;
56066
+ isRentalOptIn?: boolean;
56067
+ autoPublishEnabled?: boolean;
56068
+ };
56069
+ "Roblox.ItemConfiguration.Api.Models.Request.PublishingPreferences.UpdatePublishingPreferencesRequest": {
56070
+ /** Format: int64 */
56071
+ creatorUserId?: number;
56072
+ /** Format: int64 */
56073
+ creatorGroupId?: number;
56074
+ /**
56075
+ * Format: int32
56076
+ * @enum {integer}
56077
+ */
56078
+ publishingType?: 0 | 1 | 2;
56079
+ /**
56080
+ * Format: int32
56081
+ * @enum {integer}
56082
+ */
56083
+ saleLocationType?: 0 | 1 | 2 | 3 | 4;
56084
+ places?: number[];
56085
+ /** Format: int64 */
56086
+ priceInRobux?: number;
56087
+ /** Format: int64 */
56088
+ priceOffset?: number;
56089
+ isFree?: boolean;
56090
+ enableRegionalPricing?: boolean;
56091
+ isRentalOptIn?: boolean;
56092
+ autoPublishEnabled?: boolean;
56093
+ };
56094
+ "Roblox.ItemConfiguration.Api.Models.Response.PublishingPreferences.PublishingPreferencesResponse": {
56095
+ id?: string;
56096
+ /** Format: int64 */
56097
+ creatorUserId?: number;
56098
+ /** Format: int64 */
56099
+ creatorGroupId?: number;
56100
+ /**
56101
+ * Format: int32
56102
+ * @description Publishing type for the collectible. Currently can be either Limited or NonLimited. ['Invalid' = 0, 'Limited' = 1, 'NonLimited' = 2]
56103
+ * @enum {integer}
56104
+ */
56105
+ publishingType?: 0 | 1 | 2;
56106
+ /**
56107
+ * Format: int32
56108
+ * @description Represents possible SaleLocation types of the Collectibles System. ['SALE_LOCATION_TYPE_INVALID' = 0, 'SALE_LOCATION_TYPE_SHOP_AND_ALL_EXPERIENCES' = 1, 'SALE_LOCATION_EXPERIENCES_AND_DEV_API_ONLY' = 2, 'SALE_LOCATION_TYPE_SHOP_ONLY' = 3, 'SALE_LOCATION_TYPE_SHOP_AND_EXPERIENCES_BY_ID' = 4]
56109
+ * @enum {integer}
56110
+ */
56111
+ saleLocationType?: 0 | 1 | 2 | 3 | 4;
56112
+ places?: number[];
56113
+ /** Format: int64 */
56114
+ priceInRobux?: number;
56115
+ /** Format: int64 */
56116
+ priceOffset?: number;
56117
+ isFree?: boolean;
56118
+ enableRegionalPricing?: boolean;
56119
+ isRentalOptIn?: boolean;
56120
+ autoPublishEnabled?: boolean;
56121
+ /** Format: date-time */
56122
+ created?: string;
56123
+ /** Format: date-time */
56124
+ updated?: string;
56125
+ };
54477
56126
  /** @description Model for Country Regions */
54478
56127
  "Roblox.Locale.Api.CountryRegion": {
54479
56128
  /** @description code of country region */
@@ -56617,16 +58266,16 @@ export interface components {
56617
58266
  /** Format: double */
56618
58267
  standard?: number | null;
56619
58268
  };
56620
- /** @description RPN operand: attribute reference or literal value (same concepts as the proto `RpnOperand` oneof). */
58269
+ /** @description RPN operand: attribute reference or literal value. */
56621
58270
  RpnOperandDto: {
56622
58271
  attributeReference?: string | null;
56623
- /** @description Literal constant for an RPN operand (proto `LiteralValue` oneof as independent fields for JSON). */
58272
+ /** @description Literal constant for an RPN operand. */
56624
58273
  literalValue?: components["schemas"]["LiteralValueDto"] | null;
56625
58274
  };
56626
- /** @description One RPN token: either a logical/comparison CreatorConfigsPublicApi.Models.ConditionalRuleOperator (proto JSON `OPERATOR_*`) or an operand object. */
58275
+ /** @description One RPN token: either a logical/comparison ConditionalRuleOperator or an operand object. */
56627
58276
  RpnTokenDto: {
56628
58277
  operator?: string | null;
56629
- /** @description RPN operand: attribute reference or literal value (same concepts as the proto `RpnOperand` oneof). */
58278
+ /** @description RPN operand: attribute reference or literal value. */
56630
58279
  operand?: components["schemas"]["RpnOperandDto"] | null;
56631
58280
  };
56632
58281
  /**
@@ -56660,6 +58309,22 @@ export interface components {
56660
58309
  * @enum {string}
56661
58310
  */
56662
58311
  SavesSortCategory: "Name" | "Creator" | "Ratings" | "TargetType" | "DateSaved" | "LastModified" | "Price";
58312
+ /**
58313
+ * @description Request body for
58314
+ * `POST /v1/experimentation/universes/{universeId}/experiments/{experimentId}:schedule`.
58315
+ */
58316
+ ScheduleExperimentRequest: {
58317
+ /** @description UTC time at which the experiment should be auto-started. */
58318
+ scheduledStartTime?: string | null;
58319
+ };
58320
+ /**
58321
+ * @description Response body for
58322
+ * `POST /v1/experimentation/universes/{universeId}/experiments/{experimentId}:schedule`.
58323
+ */
58324
+ ScheduleExperimentResponse: {
58325
+ /** @description The async operation that scheduled the experiment. */
58326
+ operation?: components["schemas"]["ExperimentOperation"] | null;
58327
+ };
56663
58328
  /**
56664
58329
  * @description Represents audio type values that will be properly displayed in Swagger UI.
56665
58330
  * @enum {string}
@@ -57023,6 +58688,13 @@ export interface components {
57023
58688
  */
57024
58689
  gameId?: string | null;
57025
58690
  };
58691
+ /** @description Variant definition for an in-game-config experiment (CreatorConfigsPublicApi.Models.Experimentation.InGameConfigExperimentConfiguration). */
58692
+ SingleConfigExperimentVariant: {
58693
+ /** @description Metadata common to all variants. */
58694
+ variantMeta?: components["schemas"]["VariantMeta"] | null;
58695
+ /** @description The config entry value for this variant. Required for non-`IsBaseline` variants. */
58696
+ configEntry?: components["schemas"]["ExperimentConfigEntry"] | null;
58697
+ };
57026
58698
  SkinnyUserResponse: {
57027
58699
  /** Format: int64 */
57028
58700
  id?: number;
@@ -57083,6 +58755,14 @@ export interface components {
57083
58755
  /** @description The sound effect subcategory. */
57084
58756
  subcategory?: string | null;
57085
58757
  } & components["schemas"]["Audio"]) | null;
58758
+ /**
58759
+ * @description Response body for
58760
+ * `POST /v1/experimentation/universes/{universeId}/experiments/{experimentId}:start`.
58761
+ */
58762
+ StartExperimentResponse: {
58763
+ /** @description The async operation that started the experiment. */
58764
+ operation?: components["schemas"]["ExperimentOperation"] | null;
58765
+ };
57086
58766
  /**
57087
58767
  * @description Whether the asset is active or archived. Unspecified isn't used.
57088
58768
  * @enum {string}
@@ -57254,6 +58934,14 @@ export interface components {
57254
58934
  */
57255
58935
  reason?: "EXPIRATION_REASON_UNSPECIFIED" | "PRODUCT_INACTIVE" | "PRODUCT_DELETED" | "SUBSCRIBER_CANCELLED" | "SUBSCRIBER_REFUNDED" | "LAPSED";
57256
58936
  };
58937
+ /** @description Eligibility criteria scoping which users an experiment can apply to. */
58938
+ TargetingCriteria: {
58939
+ /**
58940
+ * @description RPN rule that decides whether an evaluator (user, request, etc.) is eligible for the
58941
+ * experiment. `null` means no targeting (every otherwise-eligible user is in scope).
58942
+ */
58943
+ rule?: components["schemas"]["ConditionalRuleDefinition"] | null;
58944
+ };
57257
58945
  /** @enum {string} */
57258
58946
  "ThumbnailPersonalizationApi.ModerationStatus": "Reviewing" | "Rejected" | "Approved" | "Unspecified";
57259
58947
  ThumbnailResponse: {
@@ -57707,6 +59395,48 @@ export interface components {
57707
59395
  UniverseEligibility: {
57708
59396
  eligible?: boolean;
57709
59397
  };
59398
+ /**
59399
+ * @description Metric tracked for a universe experiment.
59400
+ *
59401
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_SESSION_TIME
59402
+ *
59403
+ * UNIVERSE_EXPERIMENT_METRIC_PLAYTIME_PER_USER
59404
+ *
59405
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_1_RETENTION
59406
+ *
59407
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_7_RETENTION
59408
+ *
59409
+ * UNIVERSE_EXPERIMENT_METRIC_PAYER_CONVERSION_RATE
59410
+ *
59411
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_USER
59412
+ *
59413
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_PAYING_USER
59414
+ * @enum {string}
59415
+ */
59416
+ UniverseExperimentMetric: "UNIVERSE_EXPERIMENT_METRIC_AVERAGE_SESSION_TIME" | "UNIVERSE_EXPERIMENT_METRIC_PLAYTIME_PER_USER" | "UNIVERSE_EXPERIMENT_METRIC_DAY_1_RETENTION" | "UNIVERSE_EXPERIMENT_METRIC_DAY_7_RETENTION" | "UNIVERSE_EXPERIMENT_METRIC_PAYER_CONVERSION_RATE" | "UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_USER" | "UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_PAYING_USER";
59417
+ /** @description Metric configuration for an experiment. */
59418
+ UniverseMetricConfiguration: {
59419
+ /**
59420
+ * @description Goal metric.
59421
+ *
59422
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_SESSION_TIME
59423
+ *
59424
+ * UNIVERSE_EXPERIMENT_METRIC_PLAYTIME_PER_USER
59425
+ *
59426
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_1_RETENTION
59427
+ *
59428
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_7_RETENTION
59429
+ *
59430
+ * UNIVERSE_EXPERIMENT_METRIC_PAYER_CONVERSION_RATE
59431
+ *
59432
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_USER
59433
+ *
59434
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_PAYING_USER
59435
+ */
59436
+ goalMetric?: components["schemas"]["UniverseExperimentMetric"];
59437
+ /** @description Learning (observation-only) metrics. */
59438
+ learningMetrics?: components["schemas"]["UniverseExperimentMetric"][] | null;
59439
+ };
57710
59440
  /**
57711
59441
  * @description A social link that may be associated with the universe.
57712
59442
  *
@@ -57756,6 +59486,54 @@ export interface components {
57756
59486
  */
57757
59487
  value: number;
57758
59488
  };
59489
+ /**
59490
+ * @description Request body for
59491
+ * `PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.
59492
+ * Mirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields.
59493
+ */
59494
+ UpdateExperimentData: {
59495
+ /** @description Experiment display name. */
59496
+ name?: string | null;
59497
+ /** @description Experiment description. */
59498
+ description?: string | null;
59499
+ /** @description Experiment configuration (variants + product-type-specific data). */
59500
+ experimentConfiguration?: components["schemas"]["ExperimentConfiguration"] | null;
59501
+ /**
59502
+ * Format: int32
59503
+ * @description Exposure percent in range 0-100.
59504
+ */
59505
+ exposurePercent?: number;
59506
+ /** @description Targeting criteria scoping which users are eligible for the experiment. */
59507
+ targetingCriteria?: components["schemas"]["TargetingCriteria"] | null;
59508
+ /**
59509
+ * Format: int64
59510
+ * @description Experiment duration in whole seconds.
59511
+ */
59512
+ durationSeconds?: number;
59513
+ /**
59514
+ * @description Goal metric for the experiment.
59515
+ *
59516
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_SESSION_TIME
59517
+ *
59518
+ * UNIVERSE_EXPERIMENT_METRIC_PLAYTIME_PER_USER
59519
+ *
59520
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_1_RETENTION
59521
+ *
59522
+ * UNIVERSE_EXPERIMENT_METRIC_DAY_7_RETENTION
59523
+ *
59524
+ * UNIVERSE_EXPERIMENT_METRIC_PAYER_CONVERSION_RATE
59525
+ *
59526
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_USER
59527
+ *
59528
+ * UNIVERSE_EXPERIMENT_METRIC_AVERAGE_REVENUE_PER_PAYING_USER
59529
+ */
59530
+ universeGoalMetric?: components["schemas"]["UniverseExperimentMetric"];
59531
+ };
59532
+ /** @description Response body for PATCH /v1/universes/{universeId}/experiment/{experimentId}. */
59533
+ UpdateExperimentResponse: {
59534
+ /** @description Resulting async operation describing the update call. */
59535
+ operation?: components["schemas"]["ExperimentOperation"] | null;
59536
+ };
57759
59537
  /** @description Optional config block on the v3 PATCH body. Null sub-fields = no change. */
57760
59538
  UpdateGameEventConfigRequest: {
57761
59539
  /** @description New cron recurrence expression. Null = no change. Validated server-side. */
@@ -58284,6 +60062,28 @@ export interface components {
58284
60062
  */
58285
60063
  visibility?: "SOCIAL_NETWORK_VISIBILITY_UNSPECIFIED" | "NO_ONE" | "FRIENDS" | "FRIENDS_AND_FOLLOWING" | "FRIENDS_FOLLOWING_AND_FOLLOWERS" | "EVERYONE";
58286
60064
  };
60065
+ /** @description Metadata shared by every experiment variant. */
60066
+ VariantMeta: {
60067
+ /**
60068
+ * @description Unique identifier for the variant. Only assigned once the experiment starts running;
60069
+ * empty or null for draft variants.
60070
+ */
60071
+ variantId?: string | null;
60072
+ /**
60073
+ * @description Human-readable label for the variant, e.g. `Control`, `Treatment A`. Non-empty,
60074
+ * at most 50 characters; must start with a letter and contain only letters, digits, spaces,
60075
+ * underscores, or hyphens.
60076
+ */
60077
+ label?: string | null;
60078
+ /** @description True iff this variant is the baseline. Exactly one variant must be the baseline. */
60079
+ isBaseline?: boolean;
60080
+ /**
60081
+ * Format: int32
60082
+ * @description Relative traffic weight for this variant. The platform normalizes across all variants,
60083
+ * so weights do not have to sum to 100.
60084
+ */
60085
+ weight?: number;
60086
+ };
58287
60087
  VerifiedBadgeUserResponse: {
58288
60088
  /** Format: int64 */
58289
60089
  id?: number;
@@ -62985,6 +64785,596 @@ export interface operations {
62985
64785
  };
62986
64786
  };
62987
64787
  };
64788
+ PublicExperimentation_ListExperiments: {
64789
+ parameters: {
64790
+ query?: {
64791
+ maxPageSize?: string;
64792
+ skip?: string;
64793
+ searchKey?: string;
64794
+ stateFilters?: components["schemas"]["ExperimentState"][];
64795
+ sortOrder?: string;
64796
+ sortKey?: string;
64797
+ productTypeFilter?: string;
64798
+ };
64799
+ header?: never;
64800
+ path: {
64801
+ universeId: number;
64802
+ };
64803
+ cookie?: never;
64804
+ };
64805
+ requestBody?: never;
64806
+ responses: {
64807
+ /** @description OK */
64808
+ 200: {
64809
+ headers: {
64810
+ [name: string]: unknown;
64811
+ };
64812
+ content: {
64813
+ "application/json": components["schemas"]["ListExperimentsResponse"];
64814
+ };
64815
+ };
64816
+ /** @description Bad Request */
64817
+ 400: {
64818
+ headers: {
64819
+ [name: string]: unknown;
64820
+ };
64821
+ content: {
64822
+ "application/json": components["schemas"]["ActionResult"];
64823
+ };
64824
+ };
64825
+ /** @description Unauthorized */
64826
+ 401: {
64827
+ headers: {
64828
+ [name: string]: unknown;
64829
+ };
64830
+ content: {
64831
+ "application/json": components["schemas"]["ActionResult"];
64832
+ };
64833
+ };
64834
+ /** @description Not Found */
64835
+ 404: {
64836
+ headers: {
64837
+ [name: string]: unknown;
64838
+ };
64839
+ content: {
64840
+ "application/json": components["schemas"]["ActionResult"];
64841
+ };
64842
+ };
64843
+ };
64844
+ };
64845
+ PublicExperimentation_CreateExperiment: {
64846
+ parameters: {
64847
+ query?: never;
64848
+ header?: never;
64849
+ path: {
64850
+ universeId: number;
64851
+ };
64852
+ cookie?: never;
64853
+ };
64854
+ requestBody: {
64855
+ content: {
64856
+ "application/json-patch+json": components["schemas"]["CreateExperimentData"];
64857
+ "application/json": components["schemas"]["CreateExperimentData"];
64858
+ "text/json": components["schemas"]["CreateExperimentData"];
64859
+ "application/*+json": components["schemas"]["CreateExperimentData"];
64860
+ };
64861
+ };
64862
+ responses: {
64863
+ /** @description OK */
64864
+ 200: {
64865
+ headers: {
64866
+ [name: string]: unknown;
64867
+ };
64868
+ content: {
64869
+ "application/json": components["schemas"]["CreateExperimentResponse"];
64870
+ };
64871
+ };
64872
+ /** @description Bad Request */
64873
+ 400: {
64874
+ headers: {
64875
+ [name: string]: unknown;
64876
+ };
64877
+ content: {
64878
+ "application/json": components["schemas"]["ActionResult"];
64879
+ };
64880
+ };
64881
+ /** @description Unauthorized */
64882
+ 401: {
64883
+ headers: {
64884
+ [name: string]: unknown;
64885
+ };
64886
+ content: {
64887
+ "application/json": components["schemas"]["ActionResult"];
64888
+ };
64889
+ };
64890
+ /** @description Not Found */
64891
+ 404: {
64892
+ headers: {
64893
+ [name: string]: unknown;
64894
+ };
64895
+ content: {
64896
+ "application/json": components["schemas"]["ActionResult"];
64897
+ };
64898
+ };
64899
+ };
64900
+ };
64901
+ PublicExperimentation_GetExperiment: {
64902
+ parameters: {
64903
+ query?: never;
64904
+ header?: never;
64905
+ path: {
64906
+ universeId: number;
64907
+ experimentId: string;
64908
+ };
64909
+ cookie?: never;
64910
+ };
64911
+ requestBody?: never;
64912
+ responses: {
64913
+ /** @description OK */
64914
+ 200: {
64915
+ headers: {
64916
+ [name: string]: unknown;
64917
+ };
64918
+ content: {
64919
+ "application/json": components["schemas"]["GetExperimentResponse"];
64920
+ };
64921
+ };
64922
+ /** @description Bad Request */
64923
+ 400: {
64924
+ headers: {
64925
+ [name: string]: unknown;
64926
+ };
64927
+ content: {
64928
+ "application/json": components["schemas"]["ActionResult"];
64929
+ };
64930
+ };
64931
+ /** @description Unauthorized */
64932
+ 401: {
64933
+ headers: {
64934
+ [name: string]: unknown;
64935
+ };
64936
+ content: {
64937
+ "application/json": components["schemas"]["ActionResult"];
64938
+ };
64939
+ };
64940
+ /** @description Not Found */
64941
+ 404: {
64942
+ headers: {
64943
+ [name: string]: unknown;
64944
+ };
64945
+ content: {
64946
+ "application/json": components["schemas"]["ActionResult"];
64947
+ };
64948
+ };
64949
+ };
64950
+ };
64951
+ PublicExperimentation_DiscardExperiment: {
64952
+ parameters: {
64953
+ query?: never;
64954
+ header?: never;
64955
+ path: {
64956
+ universeId: number;
64957
+ experimentId: string;
64958
+ };
64959
+ cookie?: never;
64960
+ };
64961
+ requestBody?: never;
64962
+ responses: {
64963
+ /** @description OK */
64964
+ 200: {
64965
+ headers: {
64966
+ [name: string]: unknown;
64967
+ };
64968
+ content: {
64969
+ "application/json": components["schemas"]["DiscardExperimentResponse"];
64970
+ };
64971
+ };
64972
+ /** @description Bad Request */
64973
+ 400: {
64974
+ headers: {
64975
+ [name: string]: unknown;
64976
+ };
64977
+ content: {
64978
+ "application/json": components["schemas"]["ActionResult"];
64979
+ };
64980
+ };
64981
+ /** @description Unauthorized */
64982
+ 401: {
64983
+ headers: {
64984
+ [name: string]: unknown;
64985
+ };
64986
+ content: {
64987
+ "application/json": components["schemas"]["ActionResult"];
64988
+ };
64989
+ };
64990
+ /** @description Not Found */
64991
+ 404: {
64992
+ headers: {
64993
+ [name: string]: unknown;
64994
+ };
64995
+ content: {
64996
+ "application/json": components["schemas"]["ActionResult"];
64997
+ };
64998
+ };
64999
+ };
65000
+ };
65001
+ PublicExperimentation_UpdateExperiment: {
65002
+ parameters: {
65003
+ query?: never;
65004
+ header?: never;
65005
+ path: {
65006
+ universeId: number;
65007
+ experimentId: string;
65008
+ };
65009
+ cookie?: never;
65010
+ };
65011
+ requestBody: {
65012
+ content: {
65013
+ "application/json-patch+json": components["schemas"]["UpdateExperimentData"];
65014
+ "application/json": components["schemas"]["UpdateExperimentData"];
65015
+ "text/json": components["schemas"]["UpdateExperimentData"];
65016
+ "application/*+json": components["schemas"]["UpdateExperimentData"];
65017
+ };
65018
+ };
65019
+ responses: {
65020
+ /** @description OK */
65021
+ 200: {
65022
+ headers: {
65023
+ [name: string]: unknown;
65024
+ };
65025
+ content: {
65026
+ "application/json": components["schemas"]["UpdateExperimentResponse"];
65027
+ };
65028
+ };
65029
+ /** @description Bad Request */
65030
+ 400: {
65031
+ headers: {
65032
+ [name: string]: unknown;
65033
+ };
65034
+ content: {
65035
+ "application/json": components["schemas"]["ActionResult"];
65036
+ };
65037
+ };
65038
+ /** @description Unauthorized */
65039
+ 401: {
65040
+ headers: {
65041
+ [name: string]: unknown;
65042
+ };
65043
+ content: {
65044
+ "application/json": components["schemas"]["ActionResult"];
65045
+ };
65046
+ };
65047
+ /** @description Not Found */
65048
+ 404: {
65049
+ headers: {
65050
+ [name: string]: unknown;
65051
+ };
65052
+ content: {
65053
+ "application/json": components["schemas"]["ActionResult"];
65054
+ };
65055
+ };
65056
+ };
65057
+ };
65058
+ PublicExperimentation_GetExperimentStats: {
65059
+ parameters: {
65060
+ query?: never;
65061
+ header?: never;
65062
+ path: {
65063
+ universeId: number;
65064
+ experimentId: string;
65065
+ };
65066
+ cookie?: never;
65067
+ };
65068
+ requestBody?: never;
65069
+ responses: {
65070
+ /** @description OK */
65071
+ 200: {
65072
+ headers: {
65073
+ [name: string]: unknown;
65074
+ };
65075
+ content: {
65076
+ "application/json": components["schemas"]["GetExperimentStatsResponse"];
65077
+ };
65078
+ };
65079
+ /** @description Bad Request */
65080
+ 400: {
65081
+ headers: {
65082
+ [name: string]: unknown;
65083
+ };
65084
+ content: {
65085
+ "application/json": components["schemas"]["ActionResult"];
65086
+ };
65087
+ };
65088
+ /** @description Unauthorized */
65089
+ 401: {
65090
+ headers: {
65091
+ [name: string]: unknown;
65092
+ };
65093
+ content: {
65094
+ "application/json": components["schemas"]["ActionResult"];
65095
+ };
65096
+ };
65097
+ /** @description Not Found */
65098
+ 404: {
65099
+ headers: {
65100
+ [name: string]: unknown;
65101
+ };
65102
+ content: {
65103
+ "application/json": components["schemas"]["ActionResult"];
65104
+ };
65105
+ };
65106
+ };
65107
+ };
65108
+ PublicExperimentation_CompleteExperiment: {
65109
+ parameters: {
65110
+ query?: never;
65111
+ header?: never;
65112
+ path: {
65113
+ universeId: number;
65114
+ experimentId: string;
65115
+ };
65116
+ cookie?: never;
65117
+ };
65118
+ requestBody: {
65119
+ content: {
65120
+ "application/json-patch+json": components["schemas"]["CompleteExperimentRequest"];
65121
+ "application/json": components["schemas"]["CompleteExperimentRequest"];
65122
+ "text/json": components["schemas"]["CompleteExperimentRequest"];
65123
+ "application/*+json": components["schemas"]["CompleteExperimentRequest"];
65124
+ };
65125
+ };
65126
+ responses: {
65127
+ /** @description OK */
65128
+ 200: {
65129
+ headers: {
65130
+ [name: string]: unknown;
65131
+ };
65132
+ content: {
65133
+ "application/json": components["schemas"]["CompleteExperimentResponse"];
65134
+ };
65135
+ };
65136
+ /** @description Bad Request */
65137
+ 400: {
65138
+ headers: {
65139
+ [name: string]: unknown;
65140
+ };
65141
+ content: {
65142
+ "application/json": components["schemas"]["ActionResult"];
65143
+ };
65144
+ };
65145
+ /** @description Unauthorized */
65146
+ 401: {
65147
+ headers: {
65148
+ [name: string]: unknown;
65149
+ };
65150
+ content: {
65151
+ "application/json": components["schemas"]["ActionResult"];
65152
+ };
65153
+ };
65154
+ /** @description Not Found */
65155
+ 404: {
65156
+ headers: {
65157
+ [name: string]: unknown;
65158
+ };
65159
+ content: {
65160
+ "application/json": components["schemas"]["ActionResult"];
65161
+ };
65162
+ };
65163
+ };
65164
+ };
65165
+ PublicExperimentation_ScheduleExperiment: {
65166
+ parameters: {
65167
+ query?: never;
65168
+ header?: never;
65169
+ path: {
65170
+ universeId: number;
65171
+ experimentId: string;
65172
+ };
65173
+ cookie?: never;
65174
+ };
65175
+ requestBody: {
65176
+ content: {
65177
+ "application/json-patch+json": components["schemas"]["ScheduleExperimentRequest"];
65178
+ "application/json": components["schemas"]["ScheduleExperimentRequest"];
65179
+ "text/json": components["schemas"]["ScheduleExperimentRequest"];
65180
+ "application/*+json": components["schemas"]["ScheduleExperimentRequest"];
65181
+ };
65182
+ };
65183
+ responses: {
65184
+ /** @description OK */
65185
+ 200: {
65186
+ headers: {
65187
+ [name: string]: unknown;
65188
+ };
65189
+ content: {
65190
+ "application/json": components["schemas"]["ScheduleExperimentResponse"];
65191
+ };
65192
+ };
65193
+ /** @description Bad Request */
65194
+ 400: {
65195
+ headers: {
65196
+ [name: string]: unknown;
65197
+ };
65198
+ content: {
65199
+ "application/json": components["schemas"]["ActionResult"];
65200
+ };
65201
+ };
65202
+ /** @description Unauthorized */
65203
+ 401: {
65204
+ headers: {
65205
+ [name: string]: unknown;
65206
+ };
65207
+ content: {
65208
+ "application/json": components["schemas"]["ActionResult"];
65209
+ };
65210
+ };
65211
+ /** @description Not Found */
65212
+ 404: {
65213
+ headers: {
65214
+ [name: string]: unknown;
65215
+ };
65216
+ content: {
65217
+ "application/json": components["schemas"]["ActionResult"];
65218
+ };
65219
+ };
65220
+ };
65221
+ };
65222
+ PublicExperimentation_StartExperiment: {
65223
+ parameters: {
65224
+ query?: never;
65225
+ header?: never;
65226
+ path: {
65227
+ universeId: number;
65228
+ experimentId: string;
65229
+ };
65230
+ cookie?: never;
65231
+ };
65232
+ requestBody?: never;
65233
+ responses: {
65234
+ /** @description OK */
65235
+ 200: {
65236
+ headers: {
65237
+ [name: string]: unknown;
65238
+ };
65239
+ content: {
65240
+ "application/json": components["schemas"]["StartExperimentResponse"];
65241
+ };
65242
+ };
65243
+ /** @description Bad Request */
65244
+ 400: {
65245
+ headers: {
65246
+ [name: string]: unknown;
65247
+ };
65248
+ content: {
65249
+ "application/json": components["schemas"]["ActionResult"];
65250
+ };
65251
+ };
65252
+ /** @description Unauthorized */
65253
+ 401: {
65254
+ headers: {
65255
+ [name: string]: unknown;
65256
+ };
65257
+ content: {
65258
+ "application/json": components["schemas"]["ActionResult"];
65259
+ };
65260
+ };
65261
+ /** @description Not Found */
65262
+ 404: {
65263
+ headers: {
65264
+ [name: string]: unknown;
65265
+ };
65266
+ content: {
65267
+ "application/json": components["schemas"]["ActionResult"];
65268
+ };
65269
+ };
65270
+ };
65271
+ };
65272
+ PublicExperimentation_CalculateExperimentMde: {
65273
+ parameters: {
65274
+ query?: never;
65275
+ header?: never;
65276
+ path: {
65277
+ universeId: number;
65278
+ };
65279
+ cookie?: never;
65280
+ };
65281
+ requestBody: {
65282
+ content: {
65283
+ "application/json-patch+json": components["schemas"]["CalculateExperimentMdeData"];
65284
+ "application/json": components["schemas"]["CalculateExperimentMdeData"];
65285
+ "text/json": components["schemas"]["CalculateExperimentMdeData"];
65286
+ "application/*+json": components["schemas"]["CalculateExperimentMdeData"];
65287
+ };
65288
+ };
65289
+ responses: {
65290
+ /** @description OK */
65291
+ 200: {
65292
+ headers: {
65293
+ [name: string]: unknown;
65294
+ };
65295
+ content: {
65296
+ "application/json": components["schemas"]["CalculateExperimentMdeResponse"];
65297
+ };
65298
+ };
65299
+ /** @description Bad Request */
65300
+ 400: {
65301
+ headers: {
65302
+ [name: string]: unknown;
65303
+ };
65304
+ content: {
65305
+ "application/json": components["schemas"]["ActionResult"];
65306
+ };
65307
+ };
65308
+ /** @description Unauthorized */
65309
+ 401: {
65310
+ headers: {
65311
+ [name: string]: unknown;
65312
+ };
65313
+ content: {
65314
+ "application/json": components["schemas"]["ActionResult"];
65315
+ };
65316
+ };
65317
+ /** @description Not Found */
65318
+ 404: {
65319
+ headers: {
65320
+ [name: string]: unknown;
65321
+ };
65322
+ content: {
65323
+ "application/json": components["schemas"]["ActionResult"];
65324
+ };
65325
+ };
65326
+ };
65327
+ };
65328
+ PublicExperimentation_GetExperimentOperationStatus: {
65329
+ parameters: {
65330
+ query?: never;
65331
+ header?: never;
65332
+ path: {
65333
+ universeId: number;
65334
+ operationId: string;
65335
+ };
65336
+ cookie?: never;
65337
+ };
65338
+ requestBody?: never;
65339
+ responses: {
65340
+ /** @description OK */
65341
+ 200: {
65342
+ headers: {
65343
+ [name: string]: unknown;
65344
+ };
65345
+ content: {
65346
+ "application/json": components["schemas"]["GetExperimentOperationStatusResponse"];
65347
+ };
65348
+ };
65349
+ /** @description Bad Request */
65350
+ 400: {
65351
+ headers: {
65352
+ [name: string]: unknown;
65353
+ };
65354
+ content: {
65355
+ "application/json": components["schemas"]["ActionResult"];
65356
+ };
65357
+ };
65358
+ /** @description Unauthorized */
65359
+ 401: {
65360
+ headers: {
65361
+ [name: string]: unknown;
65362
+ };
65363
+ content: {
65364
+ "application/json": components["schemas"]["ActionResult"];
65365
+ };
65366
+ };
65367
+ /** @description Not Found */
65368
+ 404: {
65369
+ headers: {
65370
+ [name: string]: unknown;
65371
+ };
65372
+ content: {
65373
+ "application/json": components["schemas"]["ActionResult"];
65374
+ };
65375
+ };
65376
+ };
65377
+ };
62988
65378
  Datastores_ListDatastoresAsync: {
62989
65379
  parameters: {
62990
65380
  query?: {