/// <param name="request">Request object for CreateLobby</param>
/// <param name="operationConfiguration">Configuration for CreateLobby</param>
/// <returns>Task for a Response object containing status code, headers, and Lobby object</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for DeleteLobby</param>
/// <param name="operationConfiguration">Configuration for DeleteLobby</param>
/// <returns>Task for a Response object containing status code, headers</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for GetLobby</param>
/// <param name="operationConfiguration">Configuration for GetLobby</param>
/// <returns>Task for a Response object containing status code, headers, and Lobby object</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for Heartbeat</param>
/// <param name="operationConfiguration">Configuration for Heartbeat</param>
/// <returns>Task for a Response object containing status code, headers</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="operationConfiguration">Configuration for JoinLobbyByCode</param>
/// <returns>Task for a Response object containing status code, headers, and Lobby object</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for JoinLobbyById</param>
/// <param name="operationConfiguration">Configuration for JoinLobbyById</param>
/// <returns>Task for a Response object containing status code, headers, and Lobby object</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for QueryLobbies</param>
/// <param name="operationConfiguration">Configuration for QueryLobbies</param>
/// <returns>Task for a Response object containing status code, headers, and QueryResponse object</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for QuickJoinLobby</param>
/// <param name="operationConfiguration">Configuration for QuickJoinLobby</param>
/// <returns>Task for a Response object containing status code, headers, and Lobby object</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for RemovePlayer</param>
/// <param name="operationConfiguration">Configuration for RemovePlayer</param>
/// <returns>Task for a Response object containing status code, headers</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for UpdateLobby</param>
/// <param name="operationConfiguration">Configuration for UpdateLobby</param>
/// <returns>Task for a Response object containing status code, headers, and Lobby object</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="request">Request object for UpdatePlayer</param>
/// <param name="operationConfiguration">Configuration for UpdatePlayer</param>
/// <returns>Task for a Response object containing status code, headers, and Lobby object</returns>
/// <exception cref="Unity.Services.Lobbies.Http.HttpException">An exception containing the HttpClientResponse with headers, response code, and string of error.</exception>
/// <param name="name">The name of the lobby that should be displayed to users. All whitespace will be trimmed from name.</param>
/// <param name="maxPlayers">The maximum number of players allowed in the lobby.</param>
/// <param name="isPrivate">Indicates whether or not the lobby is publicly visible and will show up in query results. If the lobby is not publicly visible, the creator can share the `lobbyCode` with other users who can use it to join this lobby.</param>
/// <param name="player">player param</param>
/// <param name="data">Custom game-specific properties that apply to the lobby (e.g. `mapName` or `gameType`).</param>
[Preserve]
[DataContract(Name = "CreateRequest")]
publicclassCreateRequest
/// <param name="player">player param</param>
/// <param name="data">Custom game-specific properties that apply to the lobby (e.g. `mapName` or `gameType`).</param>
/// <param name="value">The value of the custom property. This property can be set to null or empty string. If this property is indexed (by setting the `index` field) then the length of the value must be less than 128 bytes.</param>
/// <param name="visibility">Indicates for whom the property should be visible. If `public`, the property will be visible to everyone and will be included in query results. If `member` the data will only be visible to users who are members of the lobby (i.e. those who have successfully joined). If `private`, the metadata will only be visible to the host.</param>
/// <param name="index">The name of the column to index this property value under, either `S#` for strings or `N#` for numeric values. If an index is specified on a property, then you can use that index name in a `QueryFilter` to filter results by that property. If You will not be prevented from indexing multiple objects having properties different with names but the same the same index, but you will likely receive unexpected results from a query.</param>
[Preserve]
[DataContract(Name = "DataObject")]
publicclassDataObject
/// <param name="value">The value of the custom property. This property can be set to null or empty string. If this property is indexed (by setting the `index` field) then the length of the value must be less than 128 bytes.</param>
/// <param name="index">The name of the column to index this property value under, either `S#` for strings or `N#` for numeric values. If an index is specified on a property, then you can use that index name in a `QueryFilter` to filter results by that property. If You will not be prevented from indexing multiple objects having properties different with names but the same the same index, but you will likely receive unexpected results from a query.</param>
/// The value of the custom property. This property can be set to null or empty string. If this property is indexed (by setting the `index` field) then the length of the value must be less than 128 bytes.
/// Indicates for whom the property should be visible. If `public`, the property will be visible to everyone and will be included in query results. If `member` the data will only be visible to users who are members of the lobby (i.e. those who have successfully joined). If `private`, the metadata will only be visible to the host.
/// </summary>
publicVisibilityOptionsVisibility{get;}
/// <summary>
/// The value of the custom property. This property can be set to null or empty string. If this property is indexed (by setting the `index` field) then the length of the value must be less than 128 bytes.
/// The name of the column to index this property value under, either `S#` for strings or `N#` for numeric values. If an index is specified on a property, then you can use that index name in a `QueryFilter` to filter results by that property. If You will not be prevented from indexing multiple objects having properties different with names but the same the same index, but you will likely receive unexpected results from a query.
/// </summary>
[Preserve]
[Preserve]
[JsonConverter(typeof(StringEnumConverter))]
publicenumVisibilityOptions
{
/// The name of the column to index this property value under, either `S#` for strings or `N#` for numeric values. If an index is specified on a property, then you can use that index name in a `QueryFilter` to filter results by that property. If You will not be prevented from indexing multiple objects having properties different with names but the same the same index, but you will likely receive unexpected results from a query.
/// </summary>
/// <value>The name of the column to index this property value under, either `S#` for strings or `N#` for numeric values. If an index is specified on a property, then you can use that index name in a `QueryFilter` to filter results by that property. If You will not be prevented from indexing multiple objects having properties different with names but the same the same index, but you will likely receive unexpected results from a query.</value>
/// The body that will be returned for any failing request. We are using the [RFC 7807 Error Format](https://www.rfc-editor.org/rfc/rfc7807.html#section-3.1).
/// The body of a Join Lobby request using lobby code.
/// <param name="lobbyCode">The lobby code of the lobby the join. Mutually exclusive with `id`. This is used to join a private lobby where the lobby code was shared to other users manually.</param>
/// <param name="player">player param</param>
[Preserve]
[DataContract(Name = "JoinByCodeRequest")]
publicclassJoinByCodeRequest
/// <param name="lobbyCode">The lobby code of the lobby the join. Mutually exclusive with `id`. This is used to join a private lobby where the lobby code was shared to other users manually.</param>
/// The lobby code of the lobby the join. Mutually exclusive with `id`. This is used to join a private lobby where the lobby code was shared to other users manually.
/// <param name="lobbyCode">A short code that be used to join a lobby. This is only visible to lobby members. Typically this is displayed to the user so they can share it with other players out of game. Users with the code can join the lobby even when it is private.</param>
/// <param name="upid">The Unity project ID of the game.</param>
/// <param name="name">The name of the lobby. Typically this shown in game UI to represent the lobby.</param>
/// <param name="maxPlayers">The maximum number of players that can be members of the lobby.</param>
/// <param name="availableSlots">The number of remaining open slots for players before the lobby becomes full.</param>
/// <param name="isPrivate">Whether the lobby is private or not. Private lobbies do not appear in query results.</param>
/// <param name="players">The members of the lobby.</param>
/// <param name="data">Properties of the lobby set by the host.</param>
/// <param name="hostId">The ID of the player that is the lobby host.</param>
/// <param name="created">When the lobby was created. The timestamp is in UTC and conforms to ISO 8601.</param>
/// <param name="lastUpdated">When the lobby was last updated. The timestamp is in UTC and conforms to ISO 8601.</param>
[Preserve]
[DataContract(Name = "Lobby")]
publicclassLobby
/// <param name="created">When the lobby was created. The timestamp is in UTC and conforms to ISO 8601.</param>
/// <param name="lastUpdated">When the lobby was last updated. The timestamp is in UTC and conforms to ISO 8601.</param>
/// Information about a specific player creating, joining, or already in a lobby.
/// <param name="id">The unique identifier for the player. If not provided for a create or join request it will be set to the id of the caller.</param>
/// <param name="connectionInfo">(TBD) Connection information for connecting to a relay with this player.</param>
/// <param name="data">Custom game-specific properties that apply to an individual player (e.g. `role` or `skill`).</param>
/// <param name="allocationId">An id that associates this player in this lobby with a persistent connection. When a disconnect notification is recevied, this value is used to identify the associated player in a lobby to mark them as disconnected.</param>
/// <param name="joined">The time at which the player joined the lobby.</param>
/// <param name="lastUpdated">The last time the metadata for this player was updated.</param>
[Preserve]
[DataContract(Name = "Player")]
publicclassPlayer
/// <param name="joined">The time at which the player joined the lobby.</param>
/// <param name="lastUpdated">The last time the metadata for this player was updated.</param>
/// <param name="value">The value of the custom property. This property can be set to null or empty string.</param>
/// <param name="visibility">Indicates for whom the property should be visible. If `public`, the property will be visible to everyone and will be included in query results. If `member` the data will only be visible to users who are members of the lobby (i.e. those who have successfully joined). If `private`, the metadata will only be visible to the the player.</param>
[Preserve]
[DataContract(Name = "PlayerDataObject")]
publicclassPlayerDataObject
/// <param name="visibility">Indicates for whom the property should be visible. If `public`, the property will be visible to everyone and will be included in query results. If `member` the data will only be visible to users who are members of the lobby (i.e. those who have successfully joined). If `private`, the metadata will only be visible to the the player.</param>
/// <param name="value">The value of the custom property. This property can be set to null or empty string.</param>
/// Indicates for whom the property should be visible. If `public`, the property will be visible to everyone and will be included in query results. If `member` the data will only be visible to users who are members of the lobby (i.e. those who have successfully joined). If `private`, the metadata will only be visible to the the player.
/// The value of the custom property. This property can be set to null or empty string.
/// The value of the custom property. This property can be set to null or empty string.
/// Indicates for whom the property should be visible. If `public`, the property will be visible to everyone and will be included in query results. If `member` the data will only be visible to users who are members of the lobby (i.e. those who have successfully joined). If `private`, the metadata will only be visible to the the player.
/// <param name="connectionInfo">(TBD) Connection information for connecting to a relay with this player.</param>
/// <param name="data">Custom game-specific properties to add, update, or remove from the player (e.g. `role` or `skill`). To remove an existing property, include it in `data` but set the property object to `null`. To update the value to `null`, set the `value` property of the object to `null`.</param>
/// <param name="allocationId">An id that associates this player in this lobby with a persistent connection. When a disconnect notification is recevied, this value is used to identify the associated player in a lobby to mark them as disconnected.</param>
[Preserve]
[DataContract(Name = "PlayerUpdateRequest")]
publicclassPlayerUpdateRequest
/// <param name="data">Custom game-specific properties to add, update, or remove from the player (e.g. `role` or `skill`). To remove an existing property, include it in `data` but set the property object to `null`. To update the value to `null`, set the `value` property of the object to `null`.</param>
/// <param name="allocationId">An id that associates this player in this lobby with a persistent connection. When a disconnect notification is recevied, this value is used to identify the associated player in a lobby to mark them as disconnected.</param>
/// (TBD) Connection information for connecting to a relay with this player.
/// </summary>
/// Custom game-specific properties to add, update, or remove from the player (e.g. `role` or `skill`). To remove an existing property, include it in `data` but set the property object to `null`. To update the value to `null`, set the `value` property of the object to `null`.
/// An id that associates this player in this lobby with a persistent connection. When a disconnect notification is recevied, this value is used to identify the associated player in a lobby to mark them as disconnected.
/// A filter for an individual field that is applied to a query.
/// <param name="field">The name of the field to filter on. For custom data fields, the name of the index must be used instead of the field name.</param>
/// <param name="value">The value to compare to the field being filtered. This value must be a string and it must be parsable as the same type as `field` (e.g. `integer` for MaxPlayers, `datetime` for Created, etc.). The value for `datetime` fields (Created, LastUpdated) must be in RFC3339 format. For example, in C# this can be achieved using the \"o\" format specifier: `return dateTime.ToString(\"o\", DateTimeFormatInfo.InvariantInfo);`. Refer to your language documentation for other methods to generate RFC3339-compatible datetime strings.</param>
/// <param name="op">The operator used to compare the field to the filter value. Supports `CONTAINS` (only on the `Name` field), `EQ` (Equal), `NE` (Not Equal), `LT` (Less Than), `LE` (Less Than or Equal), `GT` (Greater Than), or `GE` (Greater Than or Equal).</param>
[Preserve]
[DataContract(Name = "QueryFilter")]
publicclassQueryFilter
Op=op;
}
/// <summary>
/// The name of the field to filter on. For custom data fields, the name of the index must be used instead of the field name.
/// </summary>
/// The name of the field to filter on. For custom data fields, the name of the index must be used instead of the field name.
/// </summary>
/// <value>The name of the field to filter on. For custom data fields, the name of the index must be used instead of the field name.</value>
[Preserve]
[JsonConverter(typeof(StringEnumConverter))]
publicenumFieldOptions
{
/// The operator used to compare the field to the filter value. Supports `CONTAINS` (only on the `Name` field), `EQ` (Equal), `NE` (Not Equal), `LT` (Less Than), `LE` (Less Than or Equal), `GT` (Greater Than), or `GE` (Greater Than or Equal).
/// </summary>
/// <value>The operator used to compare the field to the filter value. Supports `CONTAINS` (only on the `Name` field), `EQ` (Equal), `NE` (Not Equal), `LT` (Less Than), `LE` (Less Than or Equal), `GT` (Greater Than), or `GE` (Greater Than or Equal).</value>
/// <param name="name">The name of the lobby that should be displayed to users. All whitespace will be trimmed from name.</param>
/// <param name="maxPlayers">The maximum number of players allowed in the lobby. Must be greater than or equal to the current number of players in the lobby.</param>
/// <param name="isPrivate">Indicates whether or not the lobby is publicly visible and will show up in query results. If the lobby is not publicly visible, the creator can share the `lobbyCode` with other users who can use it to join this lobby.</param>
/// <param name="data">Custom game-specific properties to add, update, or remove from the lobby (e.g. `mapName` or `gameType`). To remove an existing property, include it in `data` but set the property object to `null`. To update the value to `null`, set the `value` property of the object to `null`.</param>
/// <param name="hostId">The id of the player to make the host of the lobby. As soon as this is updated the current host will no longer have permission to modify the lobby.</param>
[Preserve]
[DataContract(Name = "UpdateRequest")]
publicclassUpdateRequest
/// <param name="data">Custom game-specific properties to add, update, or remove from the lobby (e.g. `mapName` or `gameType`). To remove an existing property, include it in `data` but set the property object to `null`. To update the value to `null`, set the `value` property of the object to `null`.</param>
/// <param name="hostId">The id of the player to make the host of the lobby. As soon as this is updated the current host will no longer have permission to modify the lobby.</param>
/// The name of the lobby that should be displayed to users. All whitespace will be trimmed from name.
/// </summary>
/// Custom game-specific properties to add, update, or remove from the lobby (e.g. `mapName` or `gameType`). To remove an existing property, include it in `data` but set the property object to `null`. To update the value to `null`, set the `value` property of the object to `null`.
/// </summary>
[Preserve]
[JsonConverter(typeof(JsonObjectConverter))]
publicDictionary<string,DataObject>Data{get;}
publicJsonObjectData{get;}
/// <summary>
/// The id of the player to make the host of the lobby. As soon as this is updated the current host will no longer have permission to modify the lobby.
## If you are interested in contributing, here are some ground rules:
* ... Define guidelines & rules for what contributors need to know to successfully make Pull requests against your repo ...
## All contributions are subject to the [Unity Contribution Agreement(UCA)](https://unity3d.com/legal/licenses/Unity_Contribution_Agreement)
By making a pull request, you are confirming agreement to the terms and conditions of the UCA, including that your Contributions are your original creation and that you have complete right and authority to make your Contributions.
## Once you have a change ready following these ground rules. Simply make a pull request