Goran Lazarevski b65e388284
Some checks failed
Unreal Engine Build / macos-build (push) Failing after 29s
Unreal Engine Build / build-and-release (push) Failing after 1m19s
Link artifact in release
2025-04-01 19:26:21 +02:00

28509 lines
1.3 MiB

<?xml version="1.0"?>
<doc>
<assembly>
<name>EpicGames.Horde</name>
</assembly>
<members>
<member name="T:EpicGames.Horde.Accounts.AccountId">
<summary>
Identifier for a user account
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Accounts.AccountId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a user account
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Accounts.AccountId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Accounts.AccountId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Accounts.AccountId.TryParse(System.ReadOnlySpan{System.Char},EpicGames.Horde.Accounts.AccountId@)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.TryParse(System.ReadOnlySpan{System.Char},EpicGames.Horde.BinaryId@)"/>
</member>
<member name="M:EpicGames.Horde.Accounts.AccountId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Accounts.AccountIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.BinaryId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Accounts.AccountIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Accounts.AccountIdConverter.ToBinaryId(EpicGames.Horde.Accounts.AccountId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Accounts.CreateAccountRequest">
<summary>
Creates a new user account
</summary>
<param name="Name">Name of the user</param>
<param name="Login">Perforce login identifier</param>
<param name="Claims">Claims for the user</param>
<param name="Description">Description for the account</param>
<param name="Email">User's email address</param>
<param name="Password">Password for the user</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="M:EpicGames.Horde.Accounts.CreateAccountRequest.#ctor(System.String,System.String,System.Collections.Generic.List{EpicGames.Horde.Accounts.AccountClaimMessage},System.String,System.String,System.String,System.Nullable{System.Boolean})">
<summary>
Creates a new user account
</summary>
<param name="Name">Name of the user</param>
<param name="Login">Perforce login identifier</param>
<param name="Claims">Claims for the user</param>
<param name="Description">Description for the account</param>
<param name="Email">User's email address</param>
<param name="Password">Password for the user</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAccountRequest.Name">
<summary>Name of the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAccountRequest.Login">
<summary>Perforce login identifier</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAccountRequest.Claims">
<summary>Claims for the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAccountRequest.Description">
<summary>Description for the account</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAccountRequest.Email">
<summary>User's email address</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAccountRequest.Password">
<summary>Password for the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAccountRequest.Enabled">
<summary>Whether the account is enabled</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.CreateAdminAccountRequest">
<summary>
Creates the admin account
</summary>
<param name="Password">Password for the user</param>
</member>
<member name="M:EpicGames.Horde.Accounts.CreateAdminAccountRequest.#ctor(System.String)">
<summary>
Creates the admin account
</summary>
<param name="Password">Password for the user</param>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAdminAccountRequest.Password">
<summary>Password for the user</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.CreateAccountResponse">
<summary>
Response from the request to create a new user account
</summary>
<param name="Id">The created account id</param>
</member>
<member name="M:EpicGames.Horde.Accounts.CreateAccountResponse.#ctor(EpicGames.Horde.Accounts.AccountId)">
<summary>
Response from the request to create a new user account
</summary>
<param name="Id">The created account id</param>
</member>
<member name="P:EpicGames.Horde.Accounts.CreateAccountResponse.Id">
<summary>The created account id</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.UpdateAccountRequest">
<summary>
Update request for a user account
</summary>
<param name="Name">Name of the user</param>
<param name="Login">Perforce login identifier</param>
<param name="Claims">Claims for the user</param>
<param name="Description">Description for the account</param>
<param name="Email">User's email address</param>
<param name="SecretToken">Optional secret token for API access</param>
<param name="Password">Password for the user</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="M:EpicGames.Horde.Accounts.UpdateAccountRequest.#ctor(System.String,System.String,System.Collections.Generic.List{EpicGames.Horde.Accounts.AccountClaimMessage},System.String,System.String,System.String,System.String,System.Nullable{System.Boolean})">
<summary>
Update request for a user account
</summary>
<param name="Name">Name of the user</param>
<param name="Login">Perforce login identifier</param>
<param name="Claims">Claims for the user</param>
<param name="Description">Description for the account</param>
<param name="Email">User's email address</param>
<param name="SecretToken">Optional secret token for API access</param>
<param name="Password">Password for the user</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateAccountRequest.Name">
<summary>Name of the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateAccountRequest.Login">
<summary>Perforce login identifier</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateAccountRequest.Claims">
<summary>Claims for the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateAccountRequest.Description">
<summary>Description for the account</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateAccountRequest.Email">
<summary>User's email address</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateAccountRequest.SecretToken">
<summary>Optional secret token for API access</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateAccountRequest.Password">
<summary>Password for the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateAccountRequest.Enabled">
<summary>Whether the account is enabled</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.UpdateCurrentAccountRequest">
<summary>
Update request for the current user account
</summary>
<param name="OldPassword">Old password for the user</param>
<param name="NewPassword">New password for the user</param>
</member>
<member name="M:EpicGames.Horde.Accounts.UpdateCurrentAccountRequest.#ctor(System.String,System.String)">
<summary>
Update request for the current user account
</summary>
<param name="OldPassword">Old password for the user</param>
<param name="NewPassword">New password for the user</param>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateCurrentAccountRequest.OldPassword">
<summary>Old password for the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.UpdateCurrentAccountRequest.NewPassword">
<summary>New password for the user</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.GetAccountResponse">
<summary>
Creates a new user account
</summary>
<param name="Id">Id of the account</param>
<param name="Name">Name of the user</param>
<param name="Login">Perforce login identifier</param>
<param name="Claims">Claims for the user</param>
<param name="Description">Description for the account</param>
<param name="Email">User's email address</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="M:EpicGames.Horde.Accounts.GetAccountResponse.#ctor(EpicGames.Horde.Accounts.AccountId,System.String,System.String,System.Collections.Generic.List{EpicGames.Horde.Accounts.AccountClaimMessage},System.String,System.String,System.Boolean)">
<summary>
Creates a new user account
</summary>
<param name="Id">Id of the account</param>
<param name="Name">Name of the user</param>
<param name="Login">Perforce login identifier</param>
<param name="Claims">Claims for the user</param>
<param name="Description">Description for the account</param>
<param name="Email">User's email address</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountResponse.Id">
<summary>Id of the account</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountResponse.Name">
<summary>Name of the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountResponse.Login">
<summary>Perforce login identifier</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountResponse.Claims">
<summary>Claims for the user</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountResponse.Description">
<summary>Description for the account</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountResponse.Email">
<summary>User's email address</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountResponse.Enabled">
<summary>Whether the account is enabled</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.AccountClaimMessage">
<summary>
Message describing a claim for an account
</summary>
<param name="Type">Claim type</param>
<param name="Value">Value of the claim</param>
</member>
<member name="M:EpicGames.Horde.Accounts.AccountClaimMessage.#ctor(System.String,System.String)">
<summary>
Message describing a claim for an account
</summary>
<param name="Type">Claim type</param>
<param name="Value">Value of the claim</param>
</member>
<member name="P:EpicGames.Horde.Accounts.AccountClaimMessage.Type">
<summary>Claim type</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.AccountClaimMessage.Value">
<summary>Value of the claim</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.DashboardLoginRequest">
<summary>
Dashboard login request
</summary>
<param name="Username">Username</param>
<param name="Password">Password</param>
<param name="ReturnUrl">Url to return to upon success</param>
</member>
<member name="M:EpicGames.Horde.Accounts.DashboardLoginRequest.#ctor(System.String,System.String,System.String)">
<summary>
Dashboard login request
</summary>
<param name="Username">Username</param>
<param name="Password">Password</param>
<param name="ReturnUrl">Url to return to upon success</param>
</member>
<member name="P:EpicGames.Horde.Accounts.DashboardLoginRequest.Username">
<summary>Username</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.DashboardLoginRequest.Password">
<summary>Password</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.DashboardLoginRequest.ReturnUrl">
<summary>Url to return to upon success</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.GetAccountEntitlementsResponse">
<summary>
Gets all entitlements for an account
</summary>
<param name="Administrator">Whether the user is an administrator</param>
<param name="Scopes">List of scopes with entitlements</param>
</member>
<member name="M:EpicGames.Horde.Accounts.GetAccountEntitlementsResponse.#ctor(System.Boolean,System.Collections.Generic.List{EpicGames.Horde.Accounts.GetAccountScopeEntitlementsResponse})">
<summary>
Gets all entitlements for an account
</summary>
<param name="Administrator">Whether the user is an administrator</param>
<param name="Scopes">List of scopes with entitlements</param>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountEntitlementsResponse.Administrator">
<summary>Whether the user is an administrator</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountEntitlementsResponse.Scopes">
<summary>List of scopes with entitlements</summary>
</member>
<member name="T:EpicGames.Horde.Accounts.GetAccountScopeEntitlementsResponse">
<summary>
Creates a new user account
</summary>
<param name="Name">Name of the scope</param>
<param name="Actions">Actions for this scope</param>
</member>
<member name="M:EpicGames.Horde.Accounts.GetAccountScopeEntitlementsResponse.#ctor(System.String,System.Collections.Generic.List{EpicGames.Horde.Acls.AclAction})">
<summary>
Creates a new user account
</summary>
<param name="Name">Name of the scope</param>
<param name="Actions">Actions for this scope</param>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountScopeEntitlementsResponse.Name">
<summary>Name of the scope</summary>
</member>
<member name="P:EpicGames.Horde.Accounts.GetAccountScopeEntitlementsResponse.Actions">
<summary>Actions for this scope</summary>
</member>
<member name="T:EpicGames.Horde.Acls.AclAction">
<summary>
Wraps a string used to describe an ACL action
</summary>
<param name="Name">Name of the action</param>
</member>
<member name="M:EpicGames.Horde.Acls.AclAction.#ctor(System.String)">
<summary>
Wraps a string used to describe an ACL action
</summary>
<param name="Name">Name of the action</param>
</member>
<member name="P:EpicGames.Horde.Acls.AclAction.Name">
<summary>Name of the action</summary>
</member>
<member name="M:EpicGames.Horde.Acls.AclAction.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Acls.AclActionJsonConverter">
<summary>
Type converter for NamespaceId to and from JSON
</summary>
</member>
<member name="M:EpicGames.Horde.Acls.AclActionJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Acls.AclActionJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Acls.AclAction,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Acls.AclActionTypeConverter">
<summary>
Type converter from strings to NamespaceId objects
</summary>
</member>
<member name="M:EpicGames.Horde.Acls.AclActionTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Acls.AclActionTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Acls.AclScopeName">
<summary>
Name of an ACL scope
</summary>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeName.#ctor(System.String)">
<summary>
Name of an ACL scope
</summary>
</member>
<member name="P:EpicGames.Horde.Acls.AclScopeName.Root">
<summary>
The root scope name
</summary>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeName.Append(System.String)">
<summary>
Append another name to this scope
</summary>
<param name="name">Name to append</param>
<returns>New scope name</returns>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeName.Equals(EpicGames.Horde.Acls.AclScopeName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeName.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeName.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Acls.AclScopeNameJsonConverter">
<summary>
Serializes <see cref="T:EpicGames.Horde.Acls.AclScopeName"/> objects to JSON
</summary>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeNameJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeNameJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Acls.AclScopeName,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Acls.AclScopeNameTypeConverter">
<summary>
Converts <see cref="T:EpicGames.Horde.Acls.AclScopeName"/> objects to strings
</summary>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeNameTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeNameTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeNameTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Acls.AclScopeNameTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Acls.IAclClaim">
<summary>
Claim for an ACL
</summary>
</member>
<member name="P:EpicGames.Horde.Acls.IAclClaim.Type">
<summary>
Type of the claim
</summary>
</member>
<member name="P:EpicGames.Horde.Acls.IAclClaim.Value">
<summary>
Value for the claim
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.AgentId">
<summary>
Normalized hostname of an agent
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.AgentId._name">
<summary>
The text representing this id
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.AgentId.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="name">Hostname of the agent</param>
</member>
<member name="M:EpicGames.Horde.Agents.AgentId.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.AgentId.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.AgentId.CompareTo(EpicGames.Horde.Agents.AgentId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.AgentId.Equals(EpicGames.Horde.Agents.AgentId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.AgentId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.AgentIdTypeConverter">
<summary>
Type converter from strings to PropertyFilter objects
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.AgentIdTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.AgentIdTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.AgentIdTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.AgentIdTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.AgentIdJsonConverter">
<summary>
Class which serializes AgentId objects to JSON
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.AgentIdJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.AgentIdJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Agents.AgentId,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.AgentStatus">
<summary>
Status of an agent. Must match RpcAgentStatus.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.AgentStatus.Unspecified">
<summary>
Unspecified state.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.AgentStatus.Ok">
<summary>
Agent is running normally.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.AgentStatus.Stopping">
<summary>
Agent is currently shutting down, and should not be assigned new leases.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.AgentStatus.Unhealthy">
<summary>
Agent is in an unhealthy state and should not be assigned new leases.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.AgentStatus.Stopped">
<summary>
Agent is currently stopped.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.AgentStatus.Busy">
<summary>
Agent is busy performing other work (eg. serving an interactive user)
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.UpdateAgentRequest">
<summary>
Parameters to update an agent
</summary>
<param name="Enabled"> Whether the agent is currently enabled </param>
<param name="Ephemeral"> Whether the agent is ephemeral </param>
<param name="RequestConform"> Request a conform be performed using the current agent set </param>
<param name="RequestFullConform"> Request that a full conform be performed, removing all intermediate files </param>
<param name="RequestRestart"> Request the machine be restarted </param>
<param name="RequestShutdown"> Request the machine be shut down </param>
<param name="RequestForceRestart"> Request the machine be restarted without waiting for leases to complete </param>
<param name="Pools"> Pools for this agent </param>
<param name="Comment"> New comment </param>
</member>
<member name="M:EpicGames.Horde.Agents.UpdateAgentRequest.#ctor(System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Collections.Generic.List{System.String},System.String)">
<summary>
Parameters to update an agent
</summary>
<param name="Enabled"> Whether the agent is currently enabled </param>
<param name="Ephemeral"> Whether the agent is ephemeral </param>
<param name="RequestConform"> Request a conform be performed using the current agent set </param>
<param name="RequestFullConform"> Request that a full conform be performed, removing all intermediate files </param>
<param name="RequestRestart"> Request the machine be restarted </param>
<param name="RequestShutdown"> Request the machine be shut down </param>
<param name="RequestForceRestart"> Request the machine be restarted without waiting for leases to complete </param>
<param name="Pools"> Pools for this agent </param>
<param name="Comment"> New comment </param>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.Enabled">
<summary> Whether the agent is currently enabled </summary>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.Ephemeral">
<summary> Whether the agent is ephemeral </summary>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.RequestConform">
<summary> Request a conform be performed using the current agent set </summary>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.RequestFullConform">
<summary> Request that a full conform be performed, removing all intermediate files </summary>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.RequestRestart">
<summary> Request the machine be restarted </summary>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.RequestShutdown">
<summary> Request the machine be shut down </summary>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.RequestForceRestart">
<summary> Request the machine be restarted without waiting for leases to complete </summary>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.Pools">
<summary> Pools for this agent </summary>
</member>
<member name="P:EpicGames.Horde.Agents.UpdateAgentRequest.Comment">
<summary> New comment </summary>
</member>
<member name="T:EpicGames.Horde.Agents.GetAgentLeaseResponse">
<summary>
Response for queries to find a particular lease within an agent
</summary>
<param name="Id"> Identifier for the lease </param>
<param name="ParentId"> Identifier for the parent lease. Used to terminate hierarchies of leases. </param>
<param name="AgentId"> The agent id </param>
<param name="AgentRate"> Cost of this agent, per hour </param>
<param name="Name"> Name of the lease </param>
<param name="LogId"> Log id for this lease </param>
<param name="StartTime"> Time at which the lease started (UTC) </param>
<param name="FinishTime"> Time at which the lease started (UTC) </param>
<param name="Executing"> Whether this lease has started executing on the agent yet </param>
<param name="Details"> Details of the payload being executed </param>
<param name="Outcome"> Outcome of the lease </param>
<param name="State"> State of the lease (for AgentLeases) </param>
</member>
<member name="M:EpicGames.Horde.Agents.GetAgentLeaseResponse.#ctor(EpicGames.Horde.Agents.Leases.LeaseId,System.Nullable{EpicGames.Horde.Agents.Leases.LeaseId},System.Nullable{EpicGames.Horde.Agents.AgentId},System.Nullable{System.Double},System.String,System.Nullable{EpicGames.Horde.Logs.LogId},System.DateTime,System.Nullable{System.DateTime},System.Boolean,System.Collections.Generic.Dictionary{System.String,System.String},System.Nullable{EpicGames.Horde.Agents.Leases.LeaseOutcome},System.Nullable{EpicGames.Horde.Agents.Leases.LeaseState})">
<summary>
Response for queries to find a particular lease within an agent
</summary>
<param name="Id"> Identifier for the lease </param>
<param name="ParentId"> Identifier for the parent lease. Used to terminate hierarchies of leases. </param>
<param name="AgentId"> The agent id </param>
<param name="AgentRate"> Cost of this agent, per hour </param>
<param name="Name"> Name of the lease </param>
<param name="LogId"> Log id for this lease </param>
<param name="StartTime"> Time at which the lease started (UTC) </param>
<param name="FinishTime"> Time at which the lease started (UTC) </param>
<param name="Executing"> Whether this lease has started executing on the agent yet </param>
<param name="Details"> Details of the payload being executed </param>
<param name="Outcome"> Outcome of the lease </param>
<param name="State"> State of the lease (for AgentLeases) </param>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.Id">
<summary> Identifier for the lease </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.ParentId">
<summary> Identifier for the parent lease. Used to terminate hierarchies of leases. </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.AgentId">
<summary> The agent id </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.AgentRate">
<summary> Cost of this agent, per hour </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.Name">
<summary> Name of the lease </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.LogId">
<summary> Log id for this lease </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.StartTime">
<summary> Time at which the lease started (UTC) </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.FinishTime">
<summary> Time at which the lease started (UTC) </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.Executing">
<summary> Whether this lease has started executing on the agent yet </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.Details">
<summary> Details of the payload being executed </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.Outcome">
<summary> Outcome of the lease </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentLeaseResponse.State">
<summary> State of the lease (for AgentLeases) </summary>
</member>
<member name="T:EpicGames.Horde.Agents.GetAgentWorkspaceResponse">
<summary>
Information about a workspace synced on an agent
</summary>
<param name="Cluster"> The Perforce server and port to connect to </param>
<param name="UserName"> User to log into Perforce with (eg. buildmachine) </param>
<param name="Identifier"> Identifier to distinguish this workspace from other workspaces </param>
<param name="Stream"> The stream to sync </param>
<param name="View"> Custom view for the workspace </param>
<param name="BIncremental"> Whether to use an incremental workspace </param>
<param name="Method"> Method to use when syncing/materializing data from Perforce </param>
<param name="MinScratchSpace">Minimum disk space that must be available *after* syncing this workspace (in megabytes)</param>
<param name="ConformDiskFreeSpace">Threshold for when to trigger an automatic conform of agent. Measured in megabytes free on disk</param>
</member>
<member name="M:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.#ctor(System.String,System.String,System.String,System.String,System.Collections.Generic.List{System.String},System.Boolean,System.String,System.Nullable{System.Int64},System.Nullable{System.Int64})">
<summary>
Information about a workspace synced on an agent
</summary>
<param name="Cluster"> The Perforce server and port to connect to </param>
<param name="UserName"> User to log into Perforce with (eg. buildmachine) </param>
<param name="Identifier"> Identifier to distinguish this workspace from other workspaces </param>
<param name="Stream"> The stream to sync </param>
<param name="View"> Custom view for the workspace </param>
<param name="BIncremental"> Whether to use an incremental workspace </param>
<param name="Method"> Method to use when syncing/materializing data from Perforce </param>
<param name="MinScratchSpace">Minimum disk space that must be available *after* syncing this workspace (in megabytes)</param>
<param name="ConformDiskFreeSpace">Threshold for when to trigger an automatic conform of agent. Measured in megabytes free on disk</param>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.Cluster">
<summary> The Perforce server and port to connect to </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.UserName">
<summary> User to log into Perforce with (eg. buildmachine) </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.Identifier">
<summary> Identifier to distinguish this workspace from other workspaces </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.Stream">
<summary> The stream to sync </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.View">
<summary> Custom view for the workspace </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.BIncremental">
<summary> Whether to use an incremental workspace </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.Method">
<summary> Method to use when syncing/materializing data from Perforce </summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.MinScratchSpace">
<summary>Minimum disk space that must be available *after* syncing this workspace (in megabytes)</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentWorkspaceResponse.ConformDiskFreeSpace">
<summary>Threshold for when to trigger an automatic conform of agent. Measured in megabytes free on disk</summary>
</member>
<member name="T:EpicGames.Horde.Agents.GetAgentResponse">
<summary>
Information about an agent
</summary>
<param name="Id">The agent's unique ID</param>
<param name="Name">Friendly name of the agent</param>
<param name="Enabled">Whether the agent is currently enabled</param>
<param name="Status">Status of the agent</param>
<param name="Rate">Cost estimate per-hour for this agent</param>
<param name="SessionId">The current session id</param>
<param name="Ephemeral">Whether the agent is ephemeral</param>
<param name="Online">Whether the agent is currently online</param>
<param name="Deleted">Whether this agent has expired</param>
<param name="PendingConform">Whether a conform job is pending</param>
<param name="PendingFullConform">Whether a full conform job is pending</param>
<param name="PendingRestart">Whether a restart is pending</param>
<param name="PendingShutdown">Whether a shutdown is pending</param>
<param name="LastShutdownReason">The reason for the last shutdown</param>
<param name="LastConformTime">Last time a conform was attempted</param>
<param name="ConformAttemptCount">Number of times a conform has been attempted</param>
<param name="NextConformTime">Last time a conform was attempted</param>
<param name="Version">The current client version</param>
<param name="Properties">Properties for the agent</param>
<param name="Resources">Resources for the agent</param>
<param name="UpdateTime">Last update time of this agent</param>
<param name="LastOnlineTime">Last time that the agent was online</param>
<param name="Pools">Pools for this agent</param>
<param name="Capabilities">Capabilities of this agent</param>
<param name="Leases">Array of active leases.</param>
<param name="Workspaces">Current workspaces synced on the agent</param>
<param name="Comment">Comment for this agent</param>
</member>
<member name="M:EpicGames.Horde.Agents.GetAgentResponse.#ctor(EpicGames.Horde.Agents.AgentId,System.String,System.Boolean,EpicGames.Horde.Agents.AgentStatus,System.Nullable{System.Double},System.Nullable{EpicGames.Horde.Agents.Sessions.SessionId},System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.String,System.DateTime,System.Nullable{System.Int32},System.Nullable{System.DateTime},System.String,System.Collections.Generic.List{System.String},System.Collections.Generic.Dictionary{System.String,System.Int32},System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.Collections.Generic.List{System.String},System.Object,System.Collections.Generic.List{EpicGames.Horde.Agents.GetAgentLeaseResponse},System.Collections.Generic.List{EpicGames.Horde.Agents.GetAgentWorkspaceResponse},System.String)">
<summary>
Information about an agent
</summary>
<param name="Id">The agent's unique ID</param>
<param name="Name">Friendly name of the agent</param>
<param name="Enabled">Whether the agent is currently enabled</param>
<param name="Status">Status of the agent</param>
<param name="Rate">Cost estimate per-hour for this agent</param>
<param name="SessionId">The current session id</param>
<param name="Ephemeral">Whether the agent is ephemeral</param>
<param name="Online">Whether the agent is currently online</param>
<param name="Deleted">Whether this agent has expired</param>
<param name="PendingConform">Whether a conform job is pending</param>
<param name="PendingFullConform">Whether a full conform job is pending</param>
<param name="PendingRestart">Whether a restart is pending</param>
<param name="PendingShutdown">Whether a shutdown is pending</param>
<param name="LastShutdownReason">The reason for the last shutdown</param>
<param name="LastConformTime">Last time a conform was attempted</param>
<param name="ConformAttemptCount">Number of times a conform has been attempted</param>
<param name="NextConformTime">Last time a conform was attempted</param>
<param name="Version">The current client version</param>
<param name="Properties">Properties for the agent</param>
<param name="Resources">Resources for the agent</param>
<param name="UpdateTime">Last update time of this agent</param>
<param name="LastOnlineTime">Last time that the agent was online</param>
<param name="Pools">Pools for this agent</param>
<param name="Capabilities">Capabilities of this agent</param>
<param name="Leases">Array of active leases.</param>
<param name="Workspaces">Current workspaces synced on the agent</param>
<param name="Comment">Comment for this agent</param>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Id">
<summary>The agent's unique ID</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Name">
<summary>Friendly name of the agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Enabled">
<summary>Whether the agent is currently enabled</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Status">
<summary>Status of the agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Rate">
<summary>Cost estimate per-hour for this agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.SessionId">
<summary>The current session id</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Ephemeral">
<summary>Whether the agent is ephemeral</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Online">
<summary>Whether the agent is currently online</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Deleted">
<summary>Whether this agent has expired</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.PendingConform">
<summary>Whether a conform job is pending</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.PendingFullConform">
<summary>Whether a full conform job is pending</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.PendingRestart">
<summary>Whether a restart is pending</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.PendingShutdown">
<summary>Whether a shutdown is pending</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.LastShutdownReason">
<summary>The reason for the last shutdown</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.LastConformTime">
<summary>Last time a conform was attempted</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.ConformAttemptCount">
<summary>Number of times a conform has been attempted</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.NextConformTime">
<summary>Last time a conform was attempted</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Version">
<summary>The current client version</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Properties">
<summary>Properties for the agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Resources">
<summary>Resources for the agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.UpdateTime">
<summary>Last update time of this agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.LastOnlineTime">
<summary>Last time that the agent was online</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Pools">
<summary>Pools for this agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Capabilities">
<summary>Capabilities of this agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Leases">
<summary>Array of active leases.</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Workspaces">
<summary>Current workspaces synced on the agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.GetAgentResponse.Comment">
<summary>Comment for this agent</summary>
</member>
<member name="T:EpicGames.Horde.Agents.GetAgentTelemetryResponse">
<summary>
Telemetry data for an agent
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.GetAgentTelemetryResponse.#ctor(System.Collections.Generic.List{EpicGames.Horde.Agents.GetAgentTelemetrySampleResponse})">
<summary>
Telemetry data for an agent
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.GetAgentTelemetrySampleResponse">
<summary>
Telemetry data sample
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.GetAgentTelemetrySampleResponse.#ctor(System.DateTime,System.Single,System.Single,System.Single,System.Int32,System.Int32,System.Int32,System.Int64,System.Int64)">
<summary>
Telemetry data sample
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Enrollment.GetPendingAgentsResponse">
<summary>
Updates an existing lease
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.Enrollment.GetPendingAgentsResponse.#ctor(System.Collections.Generic.List{EpicGames.Horde.Agents.Enrollment.GetPendingAgentResponse})">
<summary>
Updates an existing lease
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Enrollment.GetPendingAgentResponse">
<summary>
Information about an agent pending admission to the farm
</summary>
<param name="Key">Unique key used to identify this agent</param>
<param name="HostName">Agent host name</param>
<param name="Description">Description for the agent</param>
</member>
<member name="M:EpicGames.Horde.Agents.Enrollment.GetPendingAgentResponse.#ctor(System.String,System.String,System.String)">
<summary>
Information about an agent pending admission to the farm
</summary>
<param name="Key">Unique key used to identify this agent</param>
<param name="HostName">Agent host name</param>
<param name="Description">Description for the agent</param>
</member>
<member name="P:EpicGames.Horde.Agents.Enrollment.GetPendingAgentResponse.Key">
<summary>Unique key used to identify this agent</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Enrollment.GetPendingAgentResponse.HostName">
<summary>Agent host name</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Enrollment.GetPendingAgentResponse.Description">
<summary>Description for the agent</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Enrollment.ApproveAgentsRequest">
<summary>
Approve an agent for admission to the farm
</summary>
<param name="Agents">Agents to approve</param>
</member>
<member name="M:EpicGames.Horde.Agents.Enrollment.ApproveAgentsRequest.#ctor(System.Collections.Generic.List{EpicGames.Horde.Agents.Enrollment.ApproveAgentRequest})">
<summary>
Approve an agent for admission to the farm
</summary>
<param name="Agents">Agents to approve</param>
</member>
<member name="P:EpicGames.Horde.Agents.Enrollment.ApproveAgentsRequest.Agents">
<summary>Agents to approve</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Enrollment.ApproveAgentRequest">
<summary>
Approve an agent for admission to the farm
</summary>
<param name="Key">Unique key for identifying the machine</param>
<param name="AgentId">Agent id to use for the machine. Set to null to use the default.</param>
</member>
<member name="M:EpicGames.Horde.Agents.Enrollment.ApproveAgentRequest.#ctor(System.String,System.Nullable{EpicGames.Horde.Agents.AgentId})">
<summary>
Approve an agent for admission to the farm
</summary>
<param name="Key">Unique key for identifying the machine</param>
<param name="AgentId">Agent id to use for the machine. Set to null to use the default.</param>
</member>
<member name="P:EpicGames.Horde.Agents.Enrollment.ApproveAgentRequest.Key">
<summary>Unique key for identifying the machine</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Enrollment.ApproveAgentRequest.AgentId">
<summary>Agent id to use for the machine. Set to null to use the default.</summary>
</member>
<member name="T:EpicGames.Horde.Agents.KnownPropertyNames">
<summary>
Well-known property names for agents
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.Id">
<summary>
The agent id
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.Platform">
<summary>
The UBT platform enum
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.PlatformGroup">
<summary>
The UBT platform group enum
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.OsFamily">
<summary>
The operating system (Linux, MacOS, Windows)
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.OsFamilyCompatibility">
<summary>
Compatible operating system (mainly for Linux WINE agents to advertise Windows support)
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.SelfContained">
<summary>
Whether the agent is a .NET self-contained app
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.Pool">
<summary>
Pools that this agent belongs to
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.RequestedPools">
<summary>
Pools requested by the agent to join when registering with server
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.DiskTotalSize">
<summary>
The total size of storage space on drive, in bytes
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.DiskFreeSpace">
<summary>
Amount of available free space on drive, in bytes
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.ComputeIp">
<summary>
IP address used for sending compute task payloads
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.ComputePort">
<summary>
Port used for sending compute task payloads
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.ComputeProtocol">
<summary>
Protocol version for compute task payloads
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.AwsInstanceId">
<summary>
AWS: Instance ID
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.AwsInstanceType">
<summary>
AWS: Instance type
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.WineEnabled">
<summary>
Whether the Wine compatibility layer is enabled (for running Windows applications on Linux)
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownPropertyNames.Trusted">
<summary>
Whether the agent is trusted
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.KnownResourceNames">
<summary>
Standard resource names
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownResourceNames.LogicalCores">
<summary>
Number of logical cores
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.KnownResourceNames.Ram">
<summary>
Amount of RAM, in GB
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Leases.LeaseId">
<summary>
Identifier for a user
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Agents.Leases.LeaseId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a user
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Agents.Leases.LeaseId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Agents.Leases.LeaseId.TryParse(System.String,EpicGames.Horde.Agents.Leases.LeaseId@)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.TryParse(System.String,EpicGames.Horde.BinaryId@)"/>
</member>
<member name="M:EpicGames.Horde.Agents.Leases.LeaseId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Agents.Leases.LeaseId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.Leases.LeaseIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.BinaryId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.Leases.LeaseIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.Leases.LeaseIdConverter.ToBinaryId(EpicGames.Horde.Agents.Leases.LeaseId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.Leases.LeaseOutcome">
<summary>
Outcome from a lease. Values must match lease_outcome.proto.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseOutcome.Unspecified">
<summary>
Default value.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseOutcome.Success">
<summary>
The lease was executed successfully
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseOutcome.Failed">
<summary>
The lease was not executed succesfully, but cannot be run again.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseOutcome.Cancelled">
<summary>
The lease was cancelled by request
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Leases.LeaseState">
<summary>
State of a lease. Values must match lease_state.proto.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseState.Unspecified">
<summary>
Default value.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseState.Pending">
<summary>
Set by the server when waiting for an agent to accept the lease. Once processed, the agent should transition the lease state to active.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseState.Active">
<summary>
The agent is actively working on this lease.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseState.Completed">
<summary>
The agent has finished working on this lease.
</summary>
</member>
<member name="F:EpicGames.Horde.Agents.Leases.LeaseState.Cancelled">
<summary>
Set by the server to indicate that the lease should be cancelled.
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Leases.UpdateLeaseRequest">
<summary>
Updates an existing lease
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Leases.UpdateLeaseRequest.Aborted">
<summary>
Mark this lease as aborted
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Pools.PoolId">
<summary>
Identifier for a pool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Agents.Pools.PoolId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a pool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Agents.Pools.PoolId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Agents.Pools.PoolId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Pools.PoolId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Agents.Pools.PoolId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.Pools.PoolIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.Pools.PoolIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.Pools.PoolIdConverter.ToStringId(EpicGames.Horde.Agents.Pools.PoolId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.Sessions.SessionId">
<summary>
Identifier for a session
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Agents.Sessions.SessionId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a session
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Agents.Sessions.SessionId.Id">
<summary>Id to construct from</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Sessions.SessionId.Empty">
<summary>
Default empty value for session id
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.Sessions.SessionId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Agents.Sessions.SessionId.TryParse(System.String,EpicGames.Horde.Agents.Sessions.SessionId@)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.TryParse(System.String,EpicGames.Horde.BinaryId@)"/>
</member>
<member name="M:EpicGames.Horde.Agents.Sessions.SessionId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.Sessions.SessionIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.BinaryId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Agents.Sessions.SessionIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Agents.Sessions.SessionIdConverter.ToBinaryId(EpicGames.Horde.Agents.Sessions.SessionId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Agents.Sessions.GetSessionResponse">
<summary>
Information about a session
</summary>
<param name="Id">Unique id for this session</param>
<param name="StartTime">Start time for this session</param>
<param name="FinishTime">Finishing time for this session</param>
<param name="Version"> Version of the software running during this session </param>
</member>
<member name="M:EpicGames.Horde.Agents.Sessions.GetSessionResponse.#ctor(EpicGames.Horde.Agents.Sessions.SessionId,System.DateTime,System.Nullable{System.DateTime},System.String)">
<summary>
Information about a session
</summary>
<param name="Id">Unique id for this session</param>
<param name="StartTime">Start time for this session</param>
<param name="FinishTime">Finishing time for this session</param>
<param name="Version"> Version of the software running during this session </param>
</member>
<member name="P:EpicGames.Horde.Agents.Sessions.GetSessionResponse.Id">
<summary>Unique id for this session</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Sessions.GetSessionResponse.StartTime">
<summary>Start time for this session</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Sessions.GetSessionResponse.FinishTime">
<summary>Finishing time for this session</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Sessions.GetSessionResponse.Version">
<summary> Version of the software running during this session </summary>
</member>
<member name="T:EpicGames.Horde.Agents.Telemetry.GetUtilizationDataResponse">
<summary>
Response data for a utilization request
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationDataResponse.StartTime">
<summary>
Start hour
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationDataResponse.FinishTime">
<summary>
End hour
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationDataResponse.Pools">
<summary>
List of pools
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationDataResponse.AdminTime">
<summary>
Total admin time
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationDataResponse.HibernatingTime">
<summary>
Total hibernating time
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationDataResponse.NumAgents">
<summary>
Total agents
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Telemetry.GetUtilizationPoolDataResponse">
<summary>
Representation of an hour of time
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationPoolDataResponse.PoolId">
<summary>
Pool id
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationPoolDataResponse.NumAgents">
<summary>
Number of agents in this pool
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationPoolDataResponse.AdminTime">
<summary>
Total time spent doing admin work
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationPoolDataResponse.HibernatingTime">
<summary>
Time spent hibernating
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationPoolDataResponse.OtherTime">
<summary>
Total time agents in this pool were doing work for other pools
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationPoolDataResponse.Streams">
<summary>
List of streams
</summary>
</member>
<member name="T:EpicGames.Horde.Agents.Telemetry.GetUtilizationStreamDataResponse">
<summary>
Represents one stream in one pool in one hour of telemetry
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationStreamDataResponse.StreamId">
<summary>
Stream Id
</summary>
</member>
<member name="P:EpicGames.Horde.Agents.Telemetry.GetUtilizationStreamDataResponse.Time">
<summary>
Total time
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ArtifactDescriptor">
<summary>
Class which describes an artifact on Horde which can be serialized to JSON.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.Name">
<summary>
Name of the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.Type">
<summary>
Type of the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.Description">
<summary>
Artifact description
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.BaseUrl">
<summary>
Base URL for downloading from
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.RefName">
<summary>
Name of the ref to download
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.JobUrl">
<summary>
Optional URL to the job that produced this artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.Keys">
<summary>
Keys associated with the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.Metadata">
<summary>
Metadata associated with the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ArtifactDescriptor.Filter">
<summary>
Filter for the files selected for download
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ArtifactDescriptor.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ArtifactDescriptor.#ctor(System.Uri,EpicGames.Horde.Storage.RefName,System.Collections.Generic.IReadOnlyCollection{System.String})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ArtifactDescriptor.Deserialize(System.ReadOnlySpan{System.Byte})">
<summary>
Deserialize a descriptor from utf8 bytes
</summary>
<param name="data">Data to deserialize from</param>
<returns>New descriptor instance</returns>
</member>
<member name="M:EpicGames.Horde.Storage.ArtifactDescriptor.ReadAsync(EpicGames.Core.FileReference,System.Threading.CancellationToken)">
<summary>
Writes this descriptor to storage
</summary>
<param name="file">File to read from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.ArtifactDescriptor.Serialize">
<summary>
Serializes a descriptor
</summary>
<returns>Data for the serialized descriptor</returns>
</member>
<member name="M:EpicGames.Horde.Storage.ArtifactDescriptor.WriteAsync(EpicGames.Core.FileReference,System.Threading.CancellationToken)">
<summary>
Writes this descriptor to storage
</summary>
<param name="file">File to write to</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.Backends.FileStorageBackend">
<summary>
Storage backend that utilizes the local filesystem
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Backends.FileStorageBackend.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.#ctor(EpicGames.Horde.Storage.ObjectStores.FileObjectStore,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="objectStore">The backing object store</param>
<param name="logger">Logger interface</param>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.#ctor(EpicGames.Core.DirectoryReference,EpicGames.Core.MemoryMappedFileCache,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.GetBlobFile(EpicGames.Horde.Storage.BlobLocator)">
<summary>
Gets the path for storing a file on disk
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.OpenBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.Read(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32})">
<summary>
Maps a file into memory for reading, and returns a handle to it
</summary>
<param name="locator">Path to the file</param>
<param name="offset">Offset of the data to retrieve</param>
<param name="length">Length of the data</param>
<returns>Handle to the data. Must be disposed by the caller.</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.ReadBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.WriteBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.WriteBlobAsync(System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.TryGetBlobReadRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.TryGetBlobWriteRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.TryGetBlobWriteRedirectAsync(System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.ReadRefAsync(EpicGames.Core.FileReference)">
<summary>
Reads a ref from a file on disk
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.EnumerateRefs(EpicGames.Core.DirectoryReference)">
<summary>
Enumerate all the refs in a file store
</summary>
<param name="rootDir">Root directory to search</param>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.AddAliasAsync(System.String,EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.RemoveAliasAsync(System.String,EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.DeleteRef(EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.WriteRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.HashedBlobRefValue,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.UpdateMetadataAsync(EpicGames.Horde.Storage.UpdateMetadataRequest,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.FileStorageBackend.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Backends.HttpStorageBackend">
<summary>
Storage backend which communicates with the Horde server over HTTP for content
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Backends.HttpStorageBackend.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.#ctor(System.String,System.Func{System.Net.Http.HttpClient},System.Func{System.Net.Http.HttpClient},Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.OpenBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.ReadBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.WriteBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.WriteBlobAsync(System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.WriteBlobAsync(System.Nullable{EpicGames.Horde.Storage.BlobLocator},System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.TryGetBlobReadRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.TryGetBlobWriteRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.TryGetBlobWriteRedirectAsync(System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.UpdateMetadataAsync(EpicGames.Horde.Storage.UpdateMetadataRequest,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackend.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Backends.HttpStorageBackendFactory">
<summary>
Factory for constructing HttpStorageBackend instances
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackendFactory.#ctor(System.Net.Http.IHttpClientFactory,EpicGames.Horde.Storage.StorageBackendCache,Microsoft.Extensions.Logging.ILogger{EpicGames.Horde.Storage.Backends.HttpStorageBackend})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackendFactory.CreateBackend(System.String,System.String,System.Boolean)">
<summary>
Creates a new HTTP storage backend
</summary>
<param name="basePath">Base path for all requests</param>
<param name="accessToken">Custom access token to use for requests</param>
<param name="withBackendCache"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.HttpStorageBackendFactory.CreateBackend(EpicGames.Horde.Storage.NamespaceId,System.String,System.Boolean)">
<summary>
Creates a new HTTP storage backend
</summary>
<param name="namespaceId">Namespace to create a client for</param>
<param name="accessToken">Custom access token to use for requests</param>
<param name="withBackendCache">Whether to enable the backend cache, which caches full bundles to disk</param>
</member>
<member name="T:EpicGames.Horde.Storage.Backends.JupiterStorageBackend">
<summary>
Storage backend which communicates with Jupiter over HTTP
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.#ctor(EpicGames.Horde.Storage.NamespaceId,System.String,System.Func{System.Net.Http.HttpClient},Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.OpenBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.ReadBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.WriteBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.WriteBlobAsync(System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.TryGetBlobReadRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.TryGetBlobWriteRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.TryGetBlobWriteRedirectAsync(System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.AddAliasAsync(System.String,EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.RemoveAliasAsync(System.String,EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.DeleteRefAsync(EpicGames.Horde.Storage.RefName,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.WriteRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.HashedBlobRefValue,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.UpdateMetadataAsync(EpicGames.Horde.Storage.UpdateMetadataRequest,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.JupiterStorageBackend.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Backends.MemoryStorageBackend">
<summary>
In-memory implementation of a storage backend
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.Blobs">
<summary>
All data stored by the client
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.Refs">
<summary>
Accessor for all refs stored by the client
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.OpenBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.ReadBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.WriteBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.WriteBlobAsync(System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.TryGetBlobReadRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.TryGetBlobWriteRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.TryGetBlobWriteRedirectAsync(System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.AddAlias(System.String,EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte})">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.RemoveAlias(System.String,EpicGames.Horde.Storage.BlobLocator)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.UpdateMetadataAsync(EpicGames.Horde.Storage.UpdateMetadataRequest,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Backends.MemoryStorageBackend.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BlobReadRequest">
<summary>
Request for a blob to be read
</summary>
<param name="BlobRef">Reference to the blob data</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobReadRequest.#ctor(EpicGames.Horde.Storage.IHashedBlobRef)">
<summary>
Request for a blob to be read
</summary>
<param name="BlobRef">Reference to the blob data</param>
</member>
<member name="P:EpicGames.Horde.Storage.BlobReadRequest.BlobRef">
<summary>Reference to the blob data</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobReadResponse`1">
<summary>
Response from a read request
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobReadResponse`1.#ctor(`0,EpicGames.Horde.Storage.BlobData)">
<summary>
Response from a read request
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobReadResponse`1.Dispose">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BatchReaderStats">
<summary>
Stats for a batch read
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchReaderStats.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int64,System.Int64)">
<summary>
Stats for a batch read
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BatchBlobReader`1">
<summary>
Implements an efficient pipeline for streaming blob data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchBlobReader`1.MinQueueLength">
<summary>
Number of items to read from the input queue before partitioning into batches
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchBlobReader`1.CoalesceReadsBelowSize">
<summary>
Maximum gap between reads that should be coalesced and executed together
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchBlobReader`1.VerifyHashes">
<summary>
Whether to verify hashes of data read from storage
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchBlobReader`1.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchBlobReader`1.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BatchBlobReader`1.Dispose(System.Boolean)">
<summary>
Overridable dispose method
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchBlobReader`1.GetStats">
<summary>
Gets stats for the reader
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchBlobReader`1.AddToPipeline(EpicGames.Core.AsyncPipeline,System.Int32,System.Int32,System.Threading.Channels.ChannelReader{`0})">
<summary>
Adds a batch reader to the given pipeline
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchBlobReader`1.HandleResponsesAsync(System.Collections.Generic.List{EpicGames.Horde.Storage.BlobReadResponse{`0}},System.Threading.CancellationToken)">
<summary>
Handle responses from the read
</summary>
<param name="responses">Responses from the read</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.ChunkReadRequest">
<summary>
Request for a chunk to be read before being written to disk
</summary>
<param name="File">File to read from</param>
<param name="Offset">Offset within the output file</param>
<param name="Handle">Handle to the blob data</param>
</member>
<member name="M:EpicGames.Horde.Storage.ChunkReadRequest.#ctor(EpicGames.Horde.Storage.OutputFile,System.Int64,EpicGames.Horde.Storage.IHashedBlobRef)">
<summary>
Request for a chunk to be read before being written to disk
</summary>
<param name="File">File to read from</param>
<param name="Offset">Offset within the output file</param>
<param name="Handle">Handle to the blob data</param>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkReadRequest.File">
<summary>File to read from</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkReadRequest.Offset">
<summary>Offset within the output file</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkReadRequest.Handle">
<summary>Handle to the blob data</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BatchChunkReader">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Storage.BatchBlobReader`1"/> designed for reading leaf chunks of data from storage
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchChunkReader.MaxBatchSize">
<summary>
Maximum number of exports to write in a single request
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchChunkReader.#ctor(System.Threading.Channels.ChannelWriter{EpicGames.Horde.Storage.OutputChunk[]})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchChunkReader.HandleResponsesAsync(System.Collections.Generic.List{EpicGames.Horde.Storage.BlobReadResponse{EpicGames.Horde.Storage.ChunkReadRequest}},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.OutputFile">
<summary>
Represents an output file that write requests may be issued against
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.OutputFile.Path">
<summary>
The relative output path
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.OutputFile.FileInfo">
<summary>
File metadata
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.OutputFile.FileEntry">
<summary>
File entry with metadata about the target file
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.OutputFile.#ctor(System.String,System.IO.FileInfo,EpicGames.Horde.Storage.Nodes.FileEntry)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.OutputFile.OpenStream">
<summary>
Opens the file for writing, setting its length on the first run
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.OutputFile.CompleteAsync(System.Threading.CancellationToken)">
<summary>
Callback for a file having been fully written
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.OutputChunk">
<summary>
Request to output a block of data A chunk which needs to be written to an output file
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.OutputChunk.#ctor(EpicGames.Horde.Storage.OutputFile,System.Int64,System.ReadOnlyMemory{System.Byte},System.Object,System.IDisposable)">
<summary>
Request to output a block of data A chunk which needs to be written to an output file
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.OutputChunk.Dispose">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BatchOutputWriter">
<summary>
Batches file write requests
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchOutputWriter.WrittenFiles">
<summary>
Number of files that have been written
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchOutputWriter.WrittenBytes">
<summary>
Total number of bytes that have been written
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchOutputWriter.WriteBatchSize">
<summary>
Number of writes to execute sequentially vs in parallel
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchOutputWriter.EnableOutput">
<summary>
If false, disables output to disk. Useful for performance testing.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchOutputWriter.VerifyOutput">
<summary>
If true, hashes output files after writing to verify their integrity
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchOutputWriter.VerboseOutput">
<summary>
If true, outputs verbose information to the log
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BatchOutputWriter.RequestWriter">
<summary>
Sink for write requests
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchOutputWriter.#ctor(Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchOutputWriter.Dispose">
<summary>
Dispose remaining items in the queue
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BatchOutputWriter.AddToPipeline(EpicGames.Core.AsyncPipeline,System.Int32)">
<summary>
Adds tasks for the writer to an async pipeline
</summary>
<param name="pipeline">Pipeline instance</param>
<param name="numWriteTasks">Number of parallel writes</param>
</member>
<member name="M:EpicGames.Horde.Storage.BatchOutputWriter.ProcessAsync(System.Threading.CancellationToken)">
<summary>
Processes requests from the given input channel
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.BlobAlias">
<summary>
Data for an alias in the storage system. An alias is a named weak reference to a node.
</summary>
<param name="Target">Handle to the target blob for the alias</param>
<param name="Rank">Rank for the alias</param>
<param name="Data">Data stored inline with the alias</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobAlias.#ctor(EpicGames.Horde.Storage.IBlobRef,System.Int32,System.ReadOnlyMemory{System.Byte})">
<summary>
Data for an alias in the storage system. An alias is a named weak reference to a node.
</summary>
<param name="Target">Handle to the target blob for the alias</param>
<param name="Rank">Rank for the alias</param>
<param name="Data">Data stored inline with the alias</param>
</member>
<member name="P:EpicGames.Horde.Storage.BlobAlias.Target">
<summary>Handle to the target blob for the alias</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobAlias.Rank">
<summary>Rank for the alias</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobAlias.Data">
<summary>Data stored inline with the alias</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobAliasLocator">
<summary>
Data for an alias in the storage system. An alias is a named weak reference to a node.
</summary>
<param name="Target">Handle to the target blob for the alias</param>
<param name="Rank">Rank for the alias</param>
<param name="Data">Data stored inline with the alias</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobAliasLocator.#ctor(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte})">
<summary>
Data for an alias in the storage system. An alias is a named weak reference to a node.
</summary>
<param name="Target">Handle to the target blob for the alias</param>
<param name="Rank">Rank for the alias</param>
<param name="Data">Data stored inline with the alias</param>
</member>
<member name="P:EpicGames.Horde.Storage.BlobAliasLocator.Target">
<summary>Handle to the target blob for the alias</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobAliasLocator.Rank">
<summary>Rank for the alias</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobAliasLocator.Data">
<summary>Data stored inline with the alias</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobConverterAttribute">
<summary>
Attribute used to denote the converter for an object type
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobConverterAttribute.ConverterType">
<summary>
Type of the converter
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobConverterAttribute.#ctor(System.Type)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobConverter">
<summary>
Base class for converter types that can serialize blobs from native C# types. Semantics mirror <see cref="T:System.Text.Json.Serialization.JsonConverter"/>.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobConverter.CanConvert(System.Type)">
<summary>
Determines if the converter can handle the given type
</summary>
<param name="typeToConvert">The type that needs to be converted</param>
<returns>True if this converter can handle the given type</returns>
</member>
<member name="T:EpicGames.Horde.Storage.BlobConverter`1">
<summary>
Serializer for typed values to blob data. Mimics the <see cref="T:System.Text.Json.Serialization.JsonConverter`1"/> interface for familiarity.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobConverter`1.CanConvert(System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobConverter`1.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Reads a strongly typed value
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobConverter`1.Write(EpicGames.Horde.Storage.IBlobWriter,`0,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Writes a strongly typed value
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobData">
<summary>
Data for an individual node. Must be disposed after use.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobData.Type">
<summary>
Type of the blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobData.Data">
<summary>
Raw data for the blob. Lifetime of this data is tied to the lifetime of the <see cref="T:EpicGames.Horde.Storage.BlobData"/> object; consumers must not retain references to it.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobData.Imports">
<summary>
Handles to referenced blobs
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobData.#ctor(EpicGames.Horde.Storage.BlobType,System.ReadOnlyMemory{System.Byte},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobData.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobData.Dispose(System.Boolean)">
<summary>
Overridable dispose method
</summary>
<param name="disposing">True if derived instances should dispose managed resources. False when called from a finalizer.</param>
</member>
<member name="T:EpicGames.Horde.Storage.BlobDataWithOwner">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Storage.BlobData"/> for <see cref="T:EpicGames.Core.IReadOnlyMemoryOwner`1"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobDataWithOwner.#ctor(EpicGames.Horde.Storage.BlobType,System.ReadOnlyMemory{System.Byte},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.IDisposable)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobDataWithOwner.Dispose(System.Boolean)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BlobLocator">
<summary>
Identifier for a blob within a particular namespace.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobLocator.Path">
<summary>
Accessor for the internal path string
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.#ctor(EpicGames.Core.Utf8String)">
<summary>
Constructor
</summary>
<param name="path">Path to the blob. The meaning of this string is implementation defined.</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="path">Path to the blob. The meaning of this string is implementation defined.</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.#ctor(EpicGames.Horde.Storage.BlobLocator,System.String)">
<summary>
Constructor
</summary>
<param name="outer">The base locator to append to</param>
<param name="fragment">Characters to append</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.#ctor(EpicGames.Horde.Storage.BlobLocator,System.ReadOnlySpan{System.Byte})">
<summary>
Constructor
</summary>
<param name="outer">The base locator to append to</param>
<param name="fragment">Characters to append</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.IsValid">
<summary>
Whether the blob locator is valid
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobLocator.BaseLocator">
<summary>
The base blob locator
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobLocator.Fragment">
<summary>
Fragment within the base blob
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.CanUnwrap">
<summary>
Determines if this locator can be unwrapped into an outer locator/fragment pair
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.TryUnwrap(EpicGames.Horde.Storage.BlobLocator@,EpicGames.Core.Utf8String@)">
<summary>
Split this locator into a locator and fragment
</summary>
<param name="baseLocator">Receives the base blob locator</param>
<param name="fragment">Receives the blob fragment</param>
<returns>True if the locator was unwrapped, false otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.WithinFolder(EpicGames.Core.Utf8String)">
<summary>
Checks whether this blob is within the given folder
</summary>
<param name="folderName">Name of the folder</param>
<returns>True if the the blob id is within the given folder</returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.Equals(EpicGames.Horde.Storage.BlobLocator)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.op_Equality(EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.BlobLocator)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocator.op_Inequality(EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.BlobLocator)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BlobLocatorTypeConverter">
<summary>
Type converter from strings to BlobLocator objects
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocatorTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocatorTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocatorTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocatorTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BlobLocatorJsonConverter">
<summary>
Class which serializes BlobLocator objects to JSON
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocatorJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobLocatorJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Storage.BlobLocator,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BlobRequest`1">
<summary>
Request to read a blob from storage
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobRequest`1.#ctor(EpicGames.Horde.Storage.IBlobRef,`0)">
<summary>
Request to read a blob from storage
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobResponse`1">
<summary>
Response from reading a blob from storage
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobResponse`1.#ctor(EpicGames.Horde.Storage.BlobData,`0)">
<summary>
Response from reading a blob from storage
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobResponse`1.Dispose">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BlobResponseBatch`1">
<summary>
Batch of responses from the reader
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobResponseBatch`1.#ctor(EpicGames.Horde.Storage.BlobResponse{`0}[])">
<summary>
Batch of responses from the reader
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobResponseBatch`1.Dispose">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.BlobPipelineOptions">
<summary>
Options for <see cref="T:EpicGames.Horde.Storage.BlobPipeline`1"/>
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobPipelineOptions.ResponseBufferSize">
<summary>
Maximum number of responses to buffer before pausing.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobPipelineOptions.FlushBatchLength">
<summary>
Number of requests to enumerate before flushing the current batch
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobPipelineOptions.NumFetchTasks">
<summary>
Number of batches to fetch in parallel
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobPipeline`1">
<summary>
Helper class to sort requested reads for optimal coherency within bundles
</summary>
<typeparam name="TUserData">Type of user data to include with requests</typeparam>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.#ctor(EpicGames.Horde.Storage.BlobPipelineOptions)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.Add(EpicGames.Horde.Storage.BlobRequest{`0})">
<summary>
Adds a new read request
</summary>
<param name="request">The request to add</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.AddSource(System.Func{System.Threading.CancellationToken,System.Collections.Generic.IAsyncEnumerator{EpicGames.Horde.Storage.BlobRequest{`0}}})">
<summary>
Adds a new request source
</summary>
<param name="factory">Method to construct the sequence of items</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.FinishAdding">
<summary>
Indicate that we've finished adding new items to the reader
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.ReadAllAsync(System.Threading.CancellationToken)">
<summary>
Reads all responses from the reader
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.TryReadBatch(EpicGames.Horde.Storage.BlobResponseBatch{`0}@)">
<summary>
Attempts to read a batch from the queue
</summary>
<param name="batch">Batch of responses</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobPipeline`1.WaitToReadAsync(System.Threading.CancellationToken)">
<summary>
Waits until there is data available to read
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.BlobSerializer">
<summary>
Handles serialization of blobs using <see cref="T:EpicGames.Horde.Storage.BlobConverter"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializer.Deserialize``1(EpicGames.Horde.Storage.BlobData,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Deserialize an object
</summary>
<typeparam name="T">Return type for deserialization</typeparam>
<param name="blobData">Data to deserialize from</param>
<param name="options">Options to control serialization</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializer.Serialize``1(EpicGames.Horde.Storage.IBlobWriter,``0,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Serialize an object into a blob
</summary>
<typeparam name="T">Type of object to serialize</typeparam>
<param name="writer">Writer for the blob data</param>
<param name="value">Object to serialize</param>
<param name="options">Options to control serialization</param>
<returns>Type of the serialized blob</returns>
</member>
<member name="T:EpicGames.Horde.Storage.BlobSerializerOptions">
<summary>
Options for serializing blobs
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobSerializerOptions.Converters">
<summary>
Known converter types
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobSerializerOptions.Default">
<summary>
Default options instance
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerOptions.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerOptions.MakeReadOnly">
<summary>
Create a read-only version of these options
</summary>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerOptions.GetConverter``1">
<summary>
Gets a converter for the given type
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerOptions.Create(EpicGames.Horde.HordeApiVersion)">
<summary>
Creates options for serializing blobs compatible with a particular server API version
</summary>
<param name="version">The server API version</param>
</member>
<member name="T:EpicGames.Horde.Storage.BlobSerializerExtensions">
<summary>
Extension methods for serializing blob types
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerExtensions.ReadBlobAsync``1(EpicGames.Horde.Storage.IBlobRef,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Deserialize an object
</summary>
<typeparam name="T">Return type for the deserialized object</typeparam>
<param name="handle">Handle to the blob to deserialize</param>
<param name="options">Options to control serialization</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerExtensions.ReadBlobAsync``1(EpicGames.Horde.Storage.IBlobRef{``0},System.Threading.CancellationToken)">
<summary>
Deserialize an object
</summary>
<typeparam name="T">Return type for the deserialized object</typeparam>
<param name="handle">Handle to the blob to deserialize</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerExtensions.ReadBlobAsync``1(EpicGames.Horde.Storage.IHashedBlobRef{``0},System.Threading.CancellationToken)">
<summary>
Deserialize an object
</summary>
<typeparam name="T">Return type for the deserialized object</typeparam>
<param name="handle">Handle to the blob to deserialize</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerExtensions.WriteBlobAsync``1(EpicGames.Horde.Storage.IBlobWriter,``0,System.Threading.CancellationToken)">
<summary>
Serialize an object to storage
</summary>
<param name="writer">Writer for serialized data</param>
<param name="value">The object to serialize</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the serialized blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerExtensions.TryReadRefAsync``1(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,System.DateTime,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Reads data for a ref from the store, along with the node's contents.
</summary>
<param name="store">Store instance to write to</param>
<param name="name">The ref name</param>
<param name="cacheTime">Minimum coherency for any cached value to be returned</param>
<param name="options">Options to control serialization</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Node for the given ref, or null if it does not exist</returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerExtensions.ReadRefAsync``1(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,System.DateTime,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Reads a ref from the store, throwing an exception if it does not exist
</summary>
<param name="store">Store instance to write to</param>
<param name="name">Id for the ref</param>
<param name="cacheTime">Minimum coherency of any cached result</param>
<param name="options">Options to control serialization</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The blob instance</returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerExtensions.TryReadRefTargetAsync``1(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,System.DateTime,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Reads data for a ref from the store, along with the node's contents.
</summary>
<param name="store">Store instance to write to</param>
<param name="name">The ref name</param>
<param name="cacheTime">Minimum coherency for any cached value to be returned</param>
<param name="options">Options to control serialization</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Node for the given ref, or null if it does not exist</returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobSerializerExtensions.ReadRefTargetAsync``1(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,System.DateTime,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Reads a ref from the store, throwing an exception if it does not exist
</summary>
<param name="store">Store instance to write to</param>
<param name="name">Id for the ref</param>
<param name="cacheTime">Minimum coherency of any cached result</param>
<param name="options">Options to control serialization</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The blob instance</returns>
</member>
<member name="T:EpicGames.Horde.Storage.BlobType">
<summary>
Identifies the type of a blob
</summary>
<param name="Guid">Nominal identifier for the type</param>
<param name="Version">Version number for the serializer</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobType.#ctor(System.Guid,System.Int32)">
<summary>
Identifies the type of a blob
</summary>
<param name="Guid">Nominal identifier for the type</param>
<param name="Version">Version number for the serializer</param>
</member>
<member name="P:EpicGames.Horde.Storage.BlobType.Guid">
<summary>Nominal identifier for the type</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobType.Version">
<summary>Version number for the serializer</summary>
</member>
<member name="F:EpicGames.Horde.Storage.BlobType.NumBytes">
<summary>
Number of bytes in a serialized blob type instance
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobType.#ctor(System.String,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobType.Read(System.ReadOnlySpan{System.Byte})">
<summary>
Deserialize a type from a byte span
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobType.Write(System.Span{System.Byte})">
<summary>
Serialize to a byte span
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobType.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleVersion">
<summary>
Bundle version number
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.Initial">
<summary>
Initial version number
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.ExportAliases">
<summary>
Added the BundleExport.Alias property
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.RemoveAliases">
<summary>
Back out change to include aliases. Will likely do this through an API rather than baked into the data.
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.InPlace">
<summary>
Use data structures which support in-place reading and writing.
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.ImportHashes">
<summary>
Add import hashes to imported nodes
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.PacketSequence">
<summary>
Structure bundles as a sequence of self-contained packets (uses V2 code)
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.LatestPlusOne">
<summary>
Last item in the enum. Used for <see cref="F:EpicGames.Horde.Storage.Bundles.BundleVersion.Latest"/>
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.Latest">
<summary>
The current version number
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.LatestV1">
<summary>
Last version using the V1 pipeline
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleVersion.LatestV2">
<summary>
Last version using the V2 pipeline
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleSignature">
<summary>
Signature for a bundle
</summary>
<param name="Version">Version number for the following file data</param>
<param name="HeaderLength">Length of the initial header</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleSignature.#ctor(EpicGames.Horde.Storage.Bundles.BundleVersion,System.Int32)">
<summary>
Signature for a bundle
</summary>
<param name="Version">Version number for the following file data</param>
<param name="HeaderLength">Length of the initial header</param>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleSignature.Version">
<summary>Version number for the following file data</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleSignature.HeaderLength">
<summary>Length of the initial header</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleSignature.NumBytes">
<summary>
Number of bytes in a signature when serialized
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleSignature.Read(System.ReadOnlySpan{System.Byte})">
<summary>
Validates that the prelude bytes for a bundle header are correct
</summary>
<param name="span">The signature bytes</param>
<returns>Length of the header data, including the prelude</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleSignature.Write(System.Span{System.Byte})">
<summary>
Writes a signature to the given memory
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleCacheOptions">
<summary>
Options for creating a storage cache
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCacheOptions.PacketReaderCount">
<summary>
Number of packet readers to keep in the cache
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCacheOptions.BundlePageSize">
<summary>
Size of a bundle page
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCacheOptions.BundlePageCount">
<summary>
Number of bundle pages to keep in the cache.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCacheOptions.HeaderCacheSize">
<summary>
Size of the header cache
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCacheOptions.PacketCacheSize">
<summary>
Size of the packet cache
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleCache">
<summary>
Cache for reading bundle data.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCache.None">
<summary>
Instance of an empty cache
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCache.Allocator">
<summary>
Accessor for the default allocator
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCache.BundlePageSize">
<summary>
Size of a bundle page to keep in the cache
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCache.HeaderCacheSize">
<summary>
Size of the configured header cache
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCache.PacketCacheSize">
<summary>
Size of the configured packet cache
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCache.HasPacketCache">
<summary>
Whether there is a packet cache present
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleCache.WriteSemaphore">
<summary>
Semaphore for writing new data
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.#ctor(EpicGames.Horde.Storage.Bundles.BundleCacheOptions)">
<summary>
Constructor
</summary>
<param name="options">Options for the cache</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.#ctor(EpicGames.Horde.Storage.Bundles.BundleCacheOptions,EpicGames.Core.IMemoryAllocator{System.Byte})">
<summary>
Constructor
</summary>
<param name="options">Options for the cache</param>
<param name="innerAllocator">Inner allocator to use. Will be wrapped in an allocator that tracks allocations against the cache's budget.</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.GetStats(EpicGames.Horde.Storage.StorageStats)">
<summary>
Gets stats for the cache
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.AddCachedHeader(EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.Bundles.V1.BundleInfo)">
<summary>
Adds a bundle info object to the cache
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.TryGetCachedHeader(EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.Bundles.V1.BundleInfo@)">
<summary>
Try to read a bundle info object from the cache
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.AddCachedEncodedPacket(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte})">
<summary>
Adds an encoded bundle packet to the cache
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.TryGetCachedEncodedPacket(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte}@)">
<summary>
Try to read an encoded bundle packet from the cache
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.AddCachedDecodedPacket(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte})">
<summary>
Adds a decoded bundle packet to the cache
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleCache.TryGetCachedDecodedPacket(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte}@)">
<summary>
Try to read a decoded bundle packet from the cache
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleCompressionFormat">
<summary>
Indicates the compression format in the bundle
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleCompressionFormat.None">
<summary>
Packets are uncompressed
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleCompressionFormat.LZ4">
<summary>
LZ4 compression
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleCompressionFormat.Gzip">
<summary>
Gzip compression
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleCompressionFormat.Oodle">
<summary>
Oodle compression (Selkie)
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleCompressionFormat.Brotli">
<summary>
Brotli compression
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.BundleCompressionFormat.Zstd">
<summary>
ZStandard compression
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleData">
<summary>
Utility methods for bundles
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleData.Compress(EpicGames.Horde.Storage.Bundles.BundleCompressionFormat,System.ReadOnlyMemory{System.Byte})">
<summary>
Compress a block of data into a newly allocated block of memory
</summary>
<param name="format">Format for the compressed data</param>
<param name="input">The data to compress</param>
<returns>The compressed data</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleData.Compress(EpicGames.Horde.Storage.Bundles.BundleCompressionFormat,System.ReadOnlyMemory{System.Byte},EpicGames.Core.IMemoryWriter)">
<summary>
Compress a data packet
</summary>
<param name="format">Format for the compressed data</param>
<param name="input">The data to compress</param>
<param name="writer">Writer for output data</param>
<returns>Length of the compressed data</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleData.Decompress(EpicGames.Horde.Storage.Bundles.BundleCompressionFormat,System.ReadOnlyMemory{System.Byte},System.Memory{System.Byte})">
<summary>
Decompress a packet of data
</summary>
<param name="format">Format of the compressed data</param>
<param name="input">Compressed data</param>
<param name="output">Buffer to receive the decompressed data</param>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleHandle">
<summary>
Base class for packet handles
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleHandle.Locator">
<summary>
Locator for this bundle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleHandle.#ctor(EpicGames.Horde.Storage.BlobLocator)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleHandle.FlushAsync(System.Threading.CancellationToken)">
<summary>
Flush contents of the bundle to storage
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleHandle.OpenAsync(System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Open the bundle for reading
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleHandle.ReadAsync(System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Get data for a packet of data from the bundle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleHandle.TryGetLocator(EpicGames.Horde.Storage.BlobLocator@)">
<summary>
Attempt to get a locator for this bundle
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.FlushedBundleHandle">
<summary>
Generic flushed bundle handle; can be either V1 or V2 format.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.FlushedBundleHandle.#ctor(EpicGames.Horde.Storage.Bundles.BundleStorageNamespace,EpicGames.Horde.Storage.BlobLocator)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.FlushedBundleHandle.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.FlushedBundleHandle.OpenAsync(System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.FlushedBundleHandle.ReadAsync(System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.FlushedBundleHandle.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.FlushedBundleHandle.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.FlushedBundleHandle.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleOptions">
<summary>
Options for configuring a bundle serializer
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleOptions.Default">
<summary>
Default options value
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleOptions.MaxVersion">
<summary>
Maximum version number of bundles to write
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleOptions.MaxBlobSize">
<summary>
Maximum payload size fo a blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleOptions.CompressionFormat">
<summary>
Compression format to use
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleOptions.MinCompressionPacketSize">
<summary>
Minimum size of a block to be compressed
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleOptions.MaxWriteQueueLength">
<summary>
Maximum amount of data to store in memory. This includes any background writes as well as bundles being built.
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace">
<summary>
Base class for an implementation of <see cref="T:EpicGames.Horde.Storage.IStorageNamespace"/>, providing implementations for some common functionality using bundles.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.Allocator">
<summary>
Allocator which trims the cache to keep below a maximum size
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.Backend">
<summary>
Accessor for the storage backend
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.Cache">
<summary>
Cache for bundle data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.PacketReaderStats">
<summary>
Stats for reading bundles
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.#ctor(EpicGames.Horde.Storage.IStorageBackend,EpicGames.Horde.Storage.Bundles.BundleCache,EpicGames.Horde.Storage.Bundles.BundleOptions,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.CreateInMemory(Microsoft.Extensions.Logging.ILogger)">
<summary>
Creates a bundle storage namespace around a memory backend
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.CreateInMemory(EpicGames.Horde.Storage.Bundles.BundleOptions,Microsoft.Extensions.Logging.ILogger)">
<summary>
Creates a bundle storage namespace around a memory backend
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.CreateFromDirectory(EpicGames.Core.DirectoryReference,EpicGames.Horde.Storage.Bundles.BundleCache,EpicGames.Core.MemoryMappedFileCache,Microsoft.Extensions.Logging.ILogger)">
<summary>
Creates a bundle storage namespace around a directory on the filesystem
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.CreateFromDirectory(EpicGames.Core.DirectoryReference,EpicGames.Horde.Storage.Bundles.BundleCache,EpicGames.Core.MemoryMappedFileCache,EpicGames.Horde.Storage.Bundles.BundleOptions,Microsoft.Extensions.Logging.ILogger)">
<summary>
Creates a bundle storage namespace around a directory on the filesystem
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.ReadBundleReferencesAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<summary>
Helper method for GC which allows enumerating all references to other bundles
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.ReadBundleReferences(System.ReadOnlyMemory{System.Byte})">
<summary>
Helper method for GC which allows enumerating all references to other bundles
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.CreateWriter(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.CreateBlobRef(EpicGames.Horde.Storage.BlobLocator)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.CreateBlobWriter(System.String,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.BundleStorageNamespace.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleSectionType">
<summary>
Identifier for the type of a section in the bundle header
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleSectionType.Types">
<summary>
List of custom types
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleSectionType.Imports">
<summary>
Imports of other bundles
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleSectionType.ExportHeaders">
<summary>
List of export headers
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleSectionType.ExportReferences">
<summary>
References to exports in other bundles
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleSectionType.Packets">
<summary>
Packet headers
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleSectionType.Exports">
<summary>
Merged export headers and references
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleHeader">
<summary>
Header for the contents of a bundle.
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.MaxSectionSize">
<summary>
Maximum size for a section
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.MaxExports">
<summary>
Maximum number of exports from a single bundle
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.MaxExportRefs">
<summary>
Maximum number of export refs from a single bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.Signature">
<summary>
Signature bytes
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.Types">
<summary>
Types for exports within this bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.Imports">
<summary>
Bundles that we reference nodes in
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.Exports">
<summary>
Nodes exported from this bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.Packets">
<summary>
List of data packets within this bundle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.#ctor(EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection,EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection,EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection,EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.#ctor(EpicGames.Horde.Storage.BlobType[],EpicGames.Horde.Storage.BlobLocator[],EpicGames.Horde.Storage.Bundles.V1.BundleExport[],EpicGames.Horde.Storage.Bundles.V1.BundlePacket[])">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.AppendTo(EpicGames.Core.ReadOnlySequenceBuilder{System.Byte})">
<summary>
Writes data for this bundle to a sequence builder
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.ToByteArray">
<summary>
Serialize the bundle to a byte array
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.Read(System.ReadOnlyMemory{System.Byte})">
<summary>
Reads a bundle header from memory
</summary>
<param name="memory">Memory to read from</param>
<returns>New header object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.ReadAsync(System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Reads a bundle header from a stream
</summary>
<param name="stream">Stream to deserialize from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>New header object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.ReadAsync(EpicGames.Horde.Storage.Bundles.BundleSignature,System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Reads a bundle header from a stream
</summary>
<param name="signature">File signature</param>
<param name="stream">Stream to deserialize from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>New header object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleHeader.ReadLatestAsync(EpicGames.Horde.Storage.Bundles.BundleVersion,System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
<summary>
Construct a header from the given data encoded in the latest format
</summary>
<param name="version">Version to serialize as</param>
<param name="stream">Stream to read from</param>
<param name="length">Length of the header</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection">
<summary>
Collection of node types in a bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.Count">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.#ctor(EpicGames.Horde.Storage.BlobType[])">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.Read(System.ReadOnlyMemory{System.Byte})">
<summary>
Reads a type collection from a block of memory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.ReadAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads a type collection from a stream
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.Measure">
<summary>
Gets the size of memory required to serialize a collection of types
</summary>
<returns>Number of bytes required to serialize the types</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.Write(EpicGames.Core.IMemoryWriter)">
<summary>
Serializes a set of types to a fixed block of memory
</summary>
<param name="writer">Writer to serialize to</param>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.Item(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleTypeCollection.System#Collections#IEnumerable#GetEnumerator">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection">
<summary>
Collection of imported node references
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.Count">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.#ctor(EpicGames.Horde.Storage.BlobLocator[])">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.Read(System.ReadOnlyMemory{System.Byte})">
<summary>
Reads a collection from memory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.ReadAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads a collection from a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.Item(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.System#Collections#IEnumerable#GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.Measure">
<summary>
Measure the size of memory required to store a collection of import locators
</summary>
<returns>Size in bytes of the output buffer</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleImportCollection.Write(EpicGames.Core.IMemoryWriter)">
<summary>
Serialize a collection of locators to memory
</summary>
<param name="writer">Writer for output data</param>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundlePacket">
<summary>
Descriptor for a compression packet
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundlePacket.NumBytes">
<summary>
Size of this structure when serialized
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundlePacket.CompressionFormat">
<summary>
Compression format for this packet
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundlePacket.EncodedOffset">
<summary>
Offset of the packet within the payload stream
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundlePacket.EncodedLength">
<summary>
Encoded length of the packet
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundlePacket.DecodedLength">
<summary>
Decoded length of the packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacket.#ctor(EpicGames.Horde.Storage.Bundles.BundleCompressionFormat,System.Int32,System.Int32,System.Int32)">
<summary>
Constructor
</summary>
<param name="compressionFormat">Compression format for the packet</param>
<param name="encodedOffset">Offset of the data within the payload stream</param>
<param name="encodedLength">Size of the encoded data</param>
<param name="decodedLength">Size of the decoded data</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacket.Read(System.ReadOnlySpan{System.Byte})">
<summary>
Read from a byte array
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacket.Write(System.Span{System.Byte})">
<summary>
Serialize the struct to memory
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection">
<summary>
Collection of information about packets in a bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.Count">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.#ctor(EpicGames.Horde.Storage.Bundles.V1.BundlePacket[])">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.Read(System.ReadOnlyMemory{System.Byte})">
<summary>
Reads a collection from memory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.ReadAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads a collection from a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.Item(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.System#Collections#IEnumerable#GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.Measure">
<summary>
Measure the size of memory required to store a collection of packets
</summary>
<returns>Size in bytes of the output buffer</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundlePacketCollection.Write(EpicGames.Core.IMemoryWriter)">
<summary>
Serialize a collection of packets to memory
</summary>
<param name="writer">Writer to serialize to</param>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleExport">
<summary>
Entry for a node exported from an object
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleExport.NumHeaderBytes">
<summary>
Number of bytes in a serialized export object
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExport.Data">
<summary>
Raw data for this export
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExport.HeaderData">
<summary>
Raw data for the header
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExport.Hash">
<summary>
Hash of the node data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExport.TypeIdx">
<summary>
Type id of the node. Can be used to look up the type information from the bundle header.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExport.Packet">
<summary>
Packet containing this export's data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExport.Offset">
<summary>
Offset within the packet of the node data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExport.Length">
<summary>
Length of the node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExport.References">
<summary>
References to other nodes
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExport.#ctor(System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExport.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.Bundles.V1.BundleExportRef})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExport.WriteHeader(System.Span{System.Byte},System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
Writes a new export to a block of memory
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection">
<summary>
Entry for a node exported from an object
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.Count">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.#ctor(EpicGames.Horde.Storage.Bundles.V1.BundleExport[])">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.Read(System.ReadOnlyMemory{System.Byte},System.ReadOnlyMemory{System.Byte},EpicGames.Horde.Storage.Bundles.BundleVersion)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.ReadAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads an export collection from a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.Item(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.System#Collections#IEnumerable#GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.Write(EpicGames.Core.IMemoryWriter)">
<summary>
Serializes this collection as a single section
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.MeasureHeaders">
<summary>
Measure the size of memory required to store a collection of exports
</summary>
<returns>Size in bytes of the output buffer</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.WriteHeaders(EpicGames.Core.IMemoryWriter)">
<summary>
Serialize a collection of exports to memory
</summary>
<param name="writer">Writer to serialize to</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.MeasureRefs">
<summary>
Measure the size of memory required to store a collection of export refs
</summary>
<returns>Size in bytes of the output buffer</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportCollection.WriteRefs(EpicGames.Core.IMemoryWriter)">
<summary>
Serialize a collection of export refs to memory
</summary>
<param name="writer">Writer to serialize to</param>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleExportRef">
<summary>
Reference to a node in another bundle
</summary>
<param name="ImportIdx">Index into the import table of the blob containing the referenced node. Can be -1 for references within the same bundle.</param>
<param name="NodeIdx">Node imported from the bundle</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportRef.#ctor(System.Int32,System.Int32)">
<summary>
Reference to a node in another bundle
</summary>
<param name="ImportIdx">Index into the import table of the blob containing the referenced node. Can be -1 for references within the same bundle.</param>
<param name="NodeIdx">Node imported from the bundle</param>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExportRef.ImportIdx">
<summary>Index into the import table of the blob containing the referenced node. Can be -1 for references within the same bundle.</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExportRef.NodeIdx">
<summary>Node imported from the bundle</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V1.BundleExportRef.NumBytes">
<summary>
Number of bytes in the serialized object
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportRef.Read(System.ReadOnlySpan{System.Byte})">
<summary>
Deserialize this object from memory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportRef.CopyTo(System.Span{System.Byte})">
<summary>
Serialize this object to memory
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleExportRefCollection">
<summary>
Collection of information about exported nodes
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExportRefCollection.Data">
<summary>
Data used to store this collection
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportRefCollection.#ctor(System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportRefCollection.#ctor(System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.Bundles.V1.BundleExportRef})">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExportRefCollection.Count">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleExportRefCollection.Item(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportRefCollection.GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleExportRefCollection.System#Collections#IEnumerable#GetEnumerator">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleInfo">
<summary>
Computed information about a bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleInfo.Locator">
<summary>
Locator for the bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleInfo.Header">
<summary>
Bundle header
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleInfo.HeaderLength">
<summary>
Length of the header. Required to offset packets from the start of the bundle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleInfo.#ctor(EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.Bundles.V1.BundleHeader,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleReader">
<summary>
Writes nodes from bundles in an <see cref="T:EpicGames.Horde.Storage.IStorageNamespace"/> instance.
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleReader.QueuedBundle">
<summary>
Queued set of requests from a particular bundle
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleReader.QueuedPacket">
<summary>
Encoded bundle packet queued to be read
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleReader.PendingRead">
<summary>
Information about a pending read
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.BundleReader.Cache">
<summary>
Accessor for the cache
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleReader.#ctor(EpicGames.Horde.Storage.Bundles.BundleStorageNamespace,EpicGames.Horde.Storage.Bundles.BundleCache,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="store"></param>
<param name="cache">Cache for data</param>
<param name="logger">Logger for output</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleReader.ReadHeaderAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<summary>
Reads a bundle header
</summary>
<param name="locator">Locator for the bundle</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about the bundle</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleReader.ReadPacketAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads decoded packet data from a bundle
</summary>
<param name="locator">Locator for the bundle to read</param>
<param name="packetIdx">Index of the bundle packet</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Data for the packet</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleReader.ReadEncodedPacketAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads encoded packet data from a bundle
</summary>
<param name="locator">Locator for the bundle to read</param>
<param name="packetIdx">Index of the bundle packet</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Dtaa for the packet</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleReader.ReadBundleInfoAsync(EpicGames.Horde.Storage.Bundles.V1.BundleReader.QueuedBundle,System.Threading.CancellationToken)">
<summary>
Reads a bundle header from the queue
</summary>
<param name="bundle">Bundle header to read</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleReader.ReadNodeDataAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads a node from a bundle
</summary>
<param name="bundleLocator">Locator for the bundle</param>
<param name="exportIdx">Index of the export</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Node data read from the given bundle</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleReader.GetStats(EpicGames.Horde.Storage.StorageStats)">
<summary>
Gets stats for the reader
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Storage.IBlobRef"/> for nodes which can be read from storage
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle.Outer">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle.#ctor(EpicGames.Horde.Storage.Bundles.V1.BundleReader,EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.Bundles.BundleHandle,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle.TryAppendIdentifier(EpicGames.Core.Utf8StringBuilder)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle.TryGetLocator(EpicGames.Horde.Storage.BlobLocator@)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle.ReadBlobDataAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.FlushedNodeHandle.GetHashCode">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V1.BundleWriter">
<summary>
Writes nodes of a tree to an <see cref="T:EpicGames.Horde.Storage.IStorageNamespace"/>, packed into bundles. Each <see cref="T:EpicGames.Horde.Storage.Bundles.V1.BundleWriter"/> instance is single threaded,
but multiple instances may be written to in parallel.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.PendingNode.TryAppendIdentifier(EpicGames.Core.Utf8StringBuilder)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.PendingNode.ReadBlobDataAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.PendingNode.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.PendingNode.TryGetLocator(EpicGames.Horde.Storage.BlobLocator@)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.PendingNode.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.PendingNode.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.PendingBundle.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.#ctor(EpicGames.Horde.Storage.Bundles.BundleStorageNamespace,EpicGames.Horde.Storage.Bundles.V1.BundleReader,System.String,EpicGames.Horde.Storage.Bundles.BundleOptions,EpicGames.Horde.Storage.BlobSerializerOptions,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="store">Store to write data to</param>
<param name="reader">Reader for serialized node data</param>
<param name="basePath">Base path for new nodes</param>
<param name="bundleOptions">Options for the writer</param>
<param name="blobSerializerOptions"></param>
<param name="traceLogger">Optional logger for trace information</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.#ctor(EpicGames.Horde.Storage.Bundles.V1.BundleWriter)">
<summary>
Copy constructor
</summary>
<param name="other"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.#ctor(EpicGames.Horde.Storage.Bundles.BundleStorageNamespace,EpicGames.Horde.Storage.Bundles.V1.BundleReader,System.String,EpicGames.Horde.Storage.Bundles.BundleOptions,EpicGames.Horde.Storage.Bundles.V1.BundleWriter.WriteQueue,EpicGames.Horde.Storage.BlobSerializerOptions,Microsoft.Extensions.Logging.ILogger)">
<summary>
Internal constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.Fork">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.CompleteAsync(System.Threading.CancellationToken)">
<summary>
Mark this writer as complete, allowing its data to be serialized.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.GetOutputBuffer(System.Int32,System.Int32)">
<summary>
Gets an output buffer for writing.
</summary>
<param name="usedSize">Current size in the existing buffer that has been written to</param>
<param name="desiredSize">Desired size of the returned buffer</param>
<returns>Buffer to be written into.</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.WriteBlobAsync(EpicGames.Horde.Storage.BlobType,System.Int32,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.AliasInfo},System.Threading.CancellationToken)">
<summary>
Finish writing a node.
</summary>
<param name="type">Type of the node that was written</param>
<param name="size">Used size of the buffer</param>
<param name="imports">References to other nodes</param>
<param name="aliases">Aliases for the node</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the written node</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V1.BundleWriter.FlushAsync(System.Threading.CancellationToken)">
<summary>
Flushes all the current nodes to storage
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.BundleWriter">
<summary>
Implements the primary storage writer interface for V2 bundles. Writes exports into packets, and flushes them to storage in bundles.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.PendingBundleHandle.Length">
<summary>
Compressed length of this bundle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.PendingBundleHandle.OpenAsync(System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.PendingBundleHandle.ReadAsync(System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.#ctor(EpicGames.Horde.Storage.Bundles.BundleStorageNamespace,System.String,EpicGames.Horde.Storage.Bundles.BundleCache,EpicGames.Horde.Storage.Bundles.BundleOptions,EpicGames.Horde.Storage.BlobSerializerOptions,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.Fork">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.GetOutputBuffer(System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.WriteBlobAsync(EpicGames.Horde.Storage.BlobType,System.Int32,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.AliasInfo},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.BundleWriter.RuntimeAssert(System.Boolean,System.String)">
<summary>
Helper method to check a precondition is valid at runtime, regardless of build configuration.
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.ExportHandle">
<summary>
Handle class for blobs exported from a bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.Packet">
<summary>
Accessor for the packet that this export is in
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.ExportIdx">
<summary>
Export index within the packet
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.Innermost">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.#ctor(EpicGames.Horde.Storage.Bundles.V2.PacketHandle,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.#ctor(EpicGames.Horde.Storage.Bundles.V2.PacketHandle,System.ReadOnlySpan{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.ReadBlobDataAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.TryParse(System.ReadOnlySpan{System.Byte},System.Int32@)">
<summary>
Attempt to parse an export index from the given fragment
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.GetIdentifier">
<summary>
Get an identifier for this export within the outer packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.TryAppendLocator(EpicGames.Core.Utf8StringBuilder)">
<summary>
Append a locator for this export to the given string builder
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.AppendIdentifier(EpicGames.Core.Utf8StringBuilder)">
<summary>
Appends an export identifier to the given string builder
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.TryGetLocator(EpicGames.Horde.Storage.BlobLocator@)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.ExportHandle.GetHashCode">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.HashedExportHandle">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Storage.Bundles.V2.ExportHandle"/> which also contains a hash
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.HashedExportHandle.Hash">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.HashedExportHandle.#ctor(EpicGames.Core.IoHash,EpicGames.Horde.Storage.Bundles.V2.PacketHandle,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.Packet">
<summary>
Accessor for data structures stored into a serialized bundle packet.
</summary>
<remarks>
<code>
Each raw packet contains:
- 8 bytes: Standard bundle signature. The length field specifies the size of the following data, including the signature itself.
- 4 bytes: Decoded packet length
- 1 byte: Compression format
- ?? bytes: Compressed packet data
After decoding, the packet contains the following:
- 8 bytes: Standard bundle signature. The length field specifies the size of the following data, including the signature itself.
- 4 bytes: offset of type table from the start of the packet
- 4 bytes: offset of import table from the start of the packet
- 4 bytes: offset of export table from the start of the packet
The type table is constructed as:
- 4 bytes: Number of entries
- 20 bytes * Number of entries: BlobType data
The import table is constructed as:
- 4 bytes: Number of entries
- 4 bytes * (Number of entries + 1): Offset of each entry from the start of the packet, with a sentinel value for the end of the last entry. Length of each entry is implicit by next entry - this entry.
The export index is constructed as:
- 4 bytes: Number of entries
- 4 bytes * (Number of entries + 1): Offset of each entry from the start of the packet, with a sentinel value for the end of the last entry. Length of each entry is implicit by next entry - this entry.
Each import is written as:
- VarInt: Base import index, with a +1 bias, or zero for 'none'
- Utf8 string containing fragment on top of base import, without a null terminator.
Each export is written as:
- 4 bytes: Length of payload
- ?? bytes: Payload data
- VarInt: Type index
- VarInt: Number of imports
- VarInt * Number of imports: Import index
</code>
</remarks>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.Packet.BlobType">
<summary>
Type for packet blobs
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.#ctor(System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
<param name="data">Data for the packet</param>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.Packet.Data">
<summary>
Accessor for the underlying packet data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.Packet.Length">
<summary>
Length of this packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.GetTypeCount">
<summary>
Gets the number of types in this packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.GetType(System.Int32)">
<summary>
Gets a type from the packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.GetImportCount">
<summary>
Gets the number of imports in this packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.GetImport(System.Int32)">
<summary>
Gets the locator for a particular import
</summary>
<param name="importIdx">Index of the import to retrieve</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.GetExportCount">
<summary>
Gets the number of exports in this packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.GetExport(System.Int32)">
<summary>
Gets the bulk data for a particular export
</summary>
<param name="exportIdx"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.Encode(EpicGames.Horde.Storage.Bundles.BundleCompressionFormat,EpicGames.Core.IMemoryWriter)">
<summary>
Encodes a packet
</summary>
<param name="format">Compression format for the encoded data</param>
<param name="writer">Writer for the encoded data</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.Packet.Decode(System.ReadOnlyMemory{System.Byte},EpicGames.Core.IMemoryAllocator{System.Byte},System.Object)">
<summary>
Decodes this packet
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.PacketImport">
<summary>
Raw data for an imported node
</summary>
<param name="BaseIdx">Base index for this locator</param>
<param name="Fragment">The utf8 fragment appended to the base index</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketImport.#ctor(System.Int32,EpicGames.Core.Utf8String)">
<summary>
Raw data for an imported node
</summary>
<param name="BaseIdx">Base index for this locator</param>
<param name="Fragment">The utf8 fragment appended to the base index</param>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketImport.BaseIdx">
<summary>Base index for this locator</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketImport.Fragment">
<summary>The utf8 fragment appended to the base index</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V2.PacketImport.Bias">
<summary>
Bias for indexes into the import table
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V2.PacketImport.InvalidBaseIdx">
<summary>
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V2.PacketImport.CurrentPacketBaseIdx">
<summary>
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Bundles.V2.PacketImport.CurrentBundleBaseIdx">
<summary>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketImport.Read(System.ReadOnlyMemory{System.Byte})">
<summary>
Reads an import from a block of memory
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.PacketExport">
<summary>
Data for an exported node in a packet
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketExport.Data">
<summary>
Data for this export
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketExport.#ctor(System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketExport.GetHeader">
<summary>
Gets the header for this export
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketExport.GetPayload">
<summary>
Gets the payload for this export
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.PacketExportHeader">
<summary>
Data for an exported node in a bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketExportHeader.TypeIdx">
<summary>
Index of the type for this export
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketExportHeader.Imports">
<summary>
Index of imports for this export
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketExportHeader.#ctor(System.ReadOnlySpan{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.PacketHandle">
<summary>
Base class for packet handles
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketHandle.Bundle">
<summary>
Bundle containing this packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketHandle.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Storage.IBlobRef.FlushAsync(System.Threading.CancellationToken)"/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketHandle.ReadExportAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
Reads an export from this packet
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketHandle.TryAppendIdentifier(EpicGames.Core.Utf8StringBuilder)">
<summary>
Append the identifier for this packet to the given string builder
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketHandle.TryAppendLocator(EpicGames.Core.Utf8StringBuilder)">
<summary>
Appends the locator to the given string builder
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle">
<summary>
Handle to an packet within a bundle.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.Bundle">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.PacketOffset">
<summary>
Offset of the packet within the bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.PacketLength">
<summary>
Length of the packet within the bundle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.#ctor(EpicGames.Horde.Storage.Bundles.BundleStorageNamespace,EpicGames.Horde.Storage.Bundles.BundleHandle,System.Int32,System.Int32,EpicGames.Horde.Storage.Bundles.BundleCache)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.#ctor(EpicGames.Horde.Storage.Bundles.BundleStorageNamespace,EpicGames.Horde.Storage.Bundles.BundleHandle,System.ReadOnlySpan{System.Byte},EpicGames.Horde.Storage.Bundles.BundleCache)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.TryParse(System.ReadOnlySpan{System.Byte},System.Int32@,System.Int32@)">
<summary>
Parse a fragment containing an offset and length
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.GetLocator">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.ReadExportAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
Reads an export from this packet
</summary>
<param name="exportIdx">Index of the export</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.TryAppendIdentifier(EpicGames.Core.Utf8StringBuilder)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.AppendIdentifier(EpicGames.Core.Utf8StringBuilder,System.Int32,System.Int32)">
<summary>
Appends an identifier for a packet to the given buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle.GetHashCode">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.PacketReaderStats">
<summary>
Counters used for tracking operations performed by a BundleStorageNamespace
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.PacketReader">
<summary>
Utility class for constructing BlobData objects from a packet, caching any computed handles to other blobs.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketReader.Packet">
<summary>
Accessor for the underlying packet data
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketReader.#ctor(EpicGames.Horde.Storage.Bundles.BundleStorageNamespace,EpicGames.Horde.Storage.Bundles.BundleCache,EpicGames.Horde.Storage.Bundles.BundleHandle,EpicGames.Horde.Storage.Bundles.V2.FlushedPacketHandle,EpicGames.Horde.Storage.Bundles.V2.Packet,EpicGames.Core.IRefCountedHandle)">
<summary>
Constructor
</summary>
<param name="storageNamespace"></param>
<param name="cache"></param>
<param name="bundleHandle"></param>
<param name="packetHandle"></param>
<param name="decodedPacket">Data for the packet</param>
<param name="memoryOwner">Owner for the packet data</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketReader.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketReader.Read">
<summary>
Reads this packet in its entirety
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketReader.ReadExport(System.Int32)">
<summary>
Reads an export from this packet
</summary>
<param name="exportIdx">Index of the export</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketReader.ReadExportBody(System.Int32)">
<summary>
Reads an export from this packet
</summary>
<param name="exportIdx">Index of the export</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketReader.GetImportedBlobHandle(System.Int32)">
<summary>
Gets an import handle for the packet
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Bundles.V2.PacketWriter">
<summary>
Writes exports into a new bundle packet
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.Length">
<summary>
Current length of the packet
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.BundleImports">
<summary>
Enumerate all imported bundle locators
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.#ctor(EpicGames.Horde.Storage.Bundles.BundleHandle,EpicGames.Horde.Storage.Bundles.V2.PacketHandle,EpicGames.Core.IMemoryAllocator{System.Byte},System.Object)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.GetExportCount">
<summary>
Gets the number of exports currently in this writer
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.CompleteExport(System.Int32,EpicGames.Horde.Storage.BlobType,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef})">
<summary>
Writes a new blob to this packet
</summary>
<param name="size"></param>
<param name="type"></param>
<param name="imports"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.CompleteExport(System.Int32,System.Int32,System.Int32[])">
<summary>
Complete the current export
</summary>
<param name="size">Size of data written to the export buffer</param>
<param name="typeIdx">Index of the blob type</param>
<param name="imports">Indexes of the imported blobs</param>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.GetExport(System.Int32)">
<summary>
Reads data for a blob written to storage
</summary>
<param name="exportIdx"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.FindOrAddType(EpicGames.Horde.Storage.BlobType)">
<summary>
Add a new blob type to be written
</summary>
<param name="type">Type to add</param>
<returns>Index of the type</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.FindOrAddImport(EpicGames.Horde.Storage.IBlobRef)">
<summary>
Adds a new imported blob locator
</summary>
<param name="handle">Handle to add</param>
<returns>Index of the import</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.GetImport(System.Int32)">
<summary>
Gets the import assigned to a particular index
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.GetImportLocator(System.Int32)">
<summary>
Gets the import assigned to a particular index
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.GetOutputBuffer(System.Int32,System.Int32)">
<summary>
Gets data to write new export
</summary>
<param name="usedSize">Size of data in the current buffer that has been written to</param>
<param name="desiredSize"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.Align(System.Int32,System.Int32)">
<summary>
Aligns an offset to a power-of-2 boundary
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.GetOutputBufferInternal(System.Int32,System.Int32)">
<summary>
Gets data to write new export
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.GetOutputSpanAndAdvance(System.Int32)">
<summary>
Gets an output span and updates the length accordingly
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Bundles.V2.PacketWriter.CompletePacket">
<summary>
Mark the current packet as complete
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ContentChunker">
<summary>
Base class for implementations of a content defined chunker
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ContentChunker.SourceWriter">
<summary>
Source channel.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ContentChunker.OutputReader">
<summary>
Output channel. The order of items written to the source writer will be preserved in the output reader. Each
output item should be read completely (through calls to <see cref="M:EpicGames.Horde.Storage.ChunkerOutput.MoveNextAsync(System.Threading.CancellationToken)"/>)
before reading the next.
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ChunkerSource">
<summary>
Base class for input to a <see cref="T:EpicGames.Horde.Storage.ContentChunker"/>. Allows the chunker to read data into a buffer as required.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkerSource.Length">
<summary>
Length of the input data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkerSource.UserData">
<summary>
Optional user specified data to be propagated to the output
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ChunkerSource.StartReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<summary>
Starts a task to read the next chunk of data. Note that this task may be called again before the task completes.
</summary>
<param name="memory">Buffer to store the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.FileChunkerSource">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Storage.ChunkerSource"/> for files on disk
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FileChunkerSource.UserData">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.FileChunkerSource.#ctor(System.IO.FileInfo,System.Object)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FileChunkerSource.Length">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.FileChunkerSource.StartReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.FileChunkerSource.HandleReadAsync(System.Int64,System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.MemoryChunkerSource">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Storage.ChunkerSource"/> for data in memory
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.MemoryChunkerSource.Length">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryChunkerSource.#ctor(System.Memory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryChunkerSource.StartReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.ChunkerOutput">
<summary>
Enumerates chunks from an input file
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkerOutput.RollingHash">
<summary>
Rolling hash for this chunk
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkerOutput.Data">
<summary>
Accessor for the chunk's data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkerOutput.UserData">
<summary>
User specified data from the <see cref="T:EpicGames.Horde.Storage.ChunkerSource"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ChunkerOutput.MoveNextAsync(System.Threading.CancellationToken)">
<summary>
Moves to the next output chunk
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if there was another output chunk</returns>
</member>
<member name="T:EpicGames.Horde.Storage.SerialBuzHashChunker">
<summary>
Simple serial implementation of content chunking
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.SerialBuzHashChunker.Output.MoveNextAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.SerialBuzHashChunker.SourceWriter">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.SerialBuzHashChunker.OutputReader">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.SerialBuzHashChunker.#ctor(EpicGames.Core.AsyncPipeline,System.Memory{System.Byte},EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ParallelBuzHashChunker">
<summary>
Parallel implementation of <see cref="T:EpicGames.Horde.Storage.SerialBuzHashChunker"/>
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ParallelBuzHashChunker.SourceWriter">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.ParallelBuzHashChunker.OutputReader">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ParallelBuzHashChunker.#ctor(EpicGames.Core.AsyncPipeline,System.Memory{System.Byte},EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.DedupeBlobWriter">
<summary>
Index of known nodes that can be used for deduplication.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.DedupeBlobWriter.WrappedHandle.Innermost">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.DedupeBlobWriter.WrappedHandle.Hash">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.WrappedHandle.TryGetLocator(EpicGames.Horde.Storage.BlobLocator@)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.WrappedHandle.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.WrappedHandle.ReadBlobDataAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.WrappedHandle.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.WrappedHandle.GetHashCode">
<inheritdoc/>
</member>
<member name="F:EpicGames.Horde.Storage.DedupeBlobWriter.DefaultMaxKeys">
<summary>
Default value for maximum number of keys
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.#ctor(EpicGames.Horde.Storage.IBlobWriter,System.Int32)">
<summary>
Constructor
</summary>
<param name="inner"></param>
<param name="maxKeys"></param>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.Fork">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.GetOutputBuffer(System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.AddToCache(EpicGames.Horde.Storage.BlobType,EpicGames.Horde.Storage.IHashedBlobRef)">
<summary>
Add a blob to the cache
</summary>
<param name="type">Type of the blob</param>
<param name="blobRef">Reference to the blob data</param>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.WriteBlobAsync(EpicGames.Horde.Storage.BlobType,System.Int32,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.AliasInfo},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriter.GetStats">
<summary>
Gets stats for the copy operation
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.DedupeBlobWriterExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Storage.IBlobWriter"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriterExtensions.WithDedupe(EpicGames.Horde.Storage.IBlobWriter,System.Int32)">
<summary>
Wraps a <see cref="T:EpicGames.Horde.Storage.IBlobWriter"/> with a <see cref="T:EpicGames.Horde.Storage.DedupeBlobWriter"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriterExtensions.CreateDedupeBlobWriter(EpicGames.Horde.Storage.IStorageNamespace,System.Int32)">
<summary>
Creates a dedupe writer
</summary>
<param name="store">The store instance to read from</param>
<param name="maxKeys">Maximum number of keys to include in the cache</param>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriterExtensions.CreateDedupeBlobWriter(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,System.Int32)">
<summary>
Creates a writer using a refname as a base path
</summary>
<param name="store">The store instance to read from</param>
<param name="refName">Ref name to use as a base path</param>
<param name="maxKeys">Maximum number of keys to include in the cache</param>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriterExtensions.AddToCacheAsync(EpicGames.Horde.Storage.DedupeBlobWriter,EpicGames.Horde.Storage.IBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode},System.Threading.CancellationToken)">
<summary>
Adds a directory tree to the cache
</summary>
<param name="dedupeWriter">Dedupe writer to operate on</param>
<param name="directoryNodeRef">Reference to the directory to add</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.DedupeBlobWriterExtensions.AddToCacheAsync(EpicGames.Horde.Storage.DedupeBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef,System.Threading.CancellationToken)">
<summary>
Adds a chunked data stream to the cache
</summary>
<param name="dedupeWriter">Dedupe writer to operate on</param>
<param name="dataNodeRef">Reference to a data node in the stream</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.EncodedBlobData">
<summary>
Stores a <see cref="T:EpicGames.Horde.Storage.BlobData"/> object in a fixed memory buffer for transport over the wire.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.EncodedBlobData.Type">
<summary>
Type of the blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.EncodedBlobData.Payload">
<summary>
The blob data payload
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.EncodedBlobData.Imports">
<summary>
References to other blobs
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.EncodedBlobData.#ctor(System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.EncodedBlobData.Create(EpicGames.Horde.Storage.BlobData)">
<summary>
Encode a blob data object to a byte aray
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.EncodedBlobData.Create(EpicGames.Horde.Storage.BlobType,EpicGames.Horde.Storage.BlobLocator[],System.ReadOnlyMemory{System.Byte})">
<summary>
Encode a blob data object to a byte aray
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.EncodedBlobData.GetHeaderLength(EpicGames.Horde.Storage.BlobLocator[])">
<summary>
Gets the length of an encoded blob data object
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.EncodedBlobData.WriteHeader(EpicGames.Horde.Storage.BlobType,EpicGames.Horde.Storage.BlobLocator[],System.Span{System.Byte})">
<summary>
Encodes blob data into an existing buffer
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.FileMetadataDb">
<summary>
Database of file metadata, storing timestamps for trees of files and hashes for ranges within them. Implemented as a SQLite database.
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.FileMetadataDb.RootDirectoryId">
<summary>
Id value for the root directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.CreateInMemoryAsync(System.Threading.CancellationToken)">
<summary>
Creates a new in-memory database for file metadata
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.CreateFromFileAsync(EpicGames.Core.FileReference,System.Threading.CancellationToken)">
<summary>
Creates a new database for metadata backed by a file on disk
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.AddFileAsync(System.Int32,System.String,System.DateTime,System.Int64)">
<summary>
Adds a single file to the database
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.AddFilesAsync(System.Collections.Generic.IEnumerable{EpicGames.Horde.Storage.FileRow})">
<summary>
Adds a set of files to the database
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.GetFileAsync(System.Int32)">
<summary>
Finds all the files in a particular directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.FindFilesInDirectoryAsync(System.Int32)">
<summary>
Finds all the files in a particular directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.FindFilesInDirectoriesAsync(System.Collections.Generic.IEnumerable{System.Int32})">
<summary>
Finds all the files in a particular directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.GetFilePathAsync(System.Int32)">
<summary>
Gets the full name of a file
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.GetFilePathAsync(System.Int32,System.Text.StringBuilder)">
<summary>
Gets the full name of a directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.RemoveFileAsync(System.Int32)">
<summary>
Removes a file and all its chunk metadata
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.AddChunkAsync(System.Int32,System.Int64,System.Int64,EpicGames.Core.IoHash)">
<summary>
Adds a record for a new file chunk
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.AddChunksAsync(System.Collections.Generic.IEnumerable{EpicGames.Horde.Storage.ChunkRow})">
<summary>
Adds multiple file chunk records
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.GetChunkAsync(System.Int32)">
<summary>
Gets a chunk row
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.FindChunksAsync(EpicGames.Core.IoHash,System.Int64)">
<summary>
Find all chunks with a particular hash and length
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.FindChunksForFileAsync(System.Int32)">
<summary>
Finds all the chunks within a particular file
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.RemoveChunksForFileAsync(System.Int32)">
<summary>
Remove all chunks for a particular file
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.RemoveChunksForFilesAsync(System.Collections.Generic.IEnumerable{System.Int32})">
<summary>
Remove all chunks for a set of files
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.AddDirectoryAsync(System.Int32,System.String)">
<summary>
Adds a new directory to the collection
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.AddDirectoriesAsync(System.Collections.Generic.IEnumerable{EpicGames.Horde.Storage.DirectoryRow})">
<summary>
Adds multiple directories to the collection
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.GetDirectoryAsync(System.Int32)">
<summary>
Gets the definition for a particular directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.GetDirectoryPathAsync(System.Int32)">
<summary>
Gets the full name of a directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.GetDirectoryPathAsync(System.Int32,System.Text.StringBuilder)">
<summary>
Gets the full name of a directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.GetDirectoriesAsync(System.Int32)">
<summary>
Finds all directories within a given parent directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.RemoveDirectoryAsync(System.Int32)">
<summary>
Removes a directory and all its subdirectories
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.RemoveDirectoriesAsync(System.Collections.Generic.IEnumerable{System.Int32})">
<summary>
Removes a directory and all its subdirectories
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.RemoveDirectoryContentsAsync(System.Int32)">
<summary>
Removes the contents of a directory, without removing the directory itself
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileMetadataDb.RemoveDirectoryContentsAsync(System.Collections.Generic.IEnumerable{System.Int32})">
<summary>
Removes all subdirectories and files starting at the given roots
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.FileRow">
<summary>
Metadata for a file
</summary>
<param name="Id">Unique id for this file</param>
<param name="DirectoryId">Identifier for the directory containing this file</param>
<param name="Name">Name of the file</param>
<param name="Time">Last modified timestamp for the file</param>
<param name="Length">Length of the file</param>
</member>
<member name="M:EpicGames.Horde.Storage.FileRow.#ctor(System.Int32,System.Int32,System.String,System.DateTime,System.Int64)">
<summary>
Metadata for a file
</summary>
<param name="Id">Unique id for this file</param>
<param name="DirectoryId">Identifier for the directory containing this file</param>
<param name="Name">Name of the file</param>
<param name="Time">Last modified timestamp for the file</param>
<param name="Length">Length of the file</param>
</member>
<member name="P:EpicGames.Horde.Storage.FileRow.Id">
<summary>Unique id for this file</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FileRow.DirectoryId">
<summary>Identifier for the directory containing this file</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FileRow.Name">
<summary>Name of the file</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FileRow.Time">
<summary>Last modified timestamp for the file</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FileRow.Length">
<summary>Length of the file</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileRow.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FileRow.#ctor(System.Int32,System.String,System.DateTime,System.Int64)">
<summary>
Constructor for new file rows
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.DirectoryRow">
<summary>
Metadata for a directory
</summary>
<param name="Id">Unique id for this directory</param>
<param name="ParentDirectoryId">Parent directory identifier</param>
<param name="Name">Name of the directory</param>
</member>
<member name="M:EpicGames.Horde.Storage.DirectoryRow.#ctor(System.Int32,System.Int32,System.String)">
<summary>
Metadata for a directory
</summary>
<param name="Id">Unique id for this directory</param>
<param name="ParentDirectoryId">Parent directory identifier</param>
<param name="Name">Name of the directory</param>
</member>
<member name="P:EpicGames.Horde.Storage.DirectoryRow.Id">
<summary>Unique id for this directory</summary>
</member>
<member name="P:EpicGames.Horde.Storage.DirectoryRow.ParentDirectoryId">
<summary>Parent directory identifier</summary>
</member>
<member name="P:EpicGames.Horde.Storage.DirectoryRow.Name">
<summary>Name of the directory</summary>
</member>
<member name="M:EpicGames.Horde.Storage.DirectoryRow.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.DirectoryRow.#ctor(System.Int32,System.String)">
<summary>
Constructor for new directory rows
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ChunkRow">
<summary>
Metadata for a file chunk
</summary>
<param name="Id">Unique id for the row</param>
<param name="FileId">Id of the file that this chunk belongs to</param>
<param name="Offset">Starting offset within the file of this chunk</param>
<param name="Length">Length of the chunk</param>
<param name="Hash">Hash of the chunk data</param>
</member>
<member name="M:EpicGames.Horde.Storage.ChunkRow.#ctor(System.Int32,System.Int32,System.Int64,System.Int64,EpicGames.Core.IoHash)">
<summary>
Metadata for a file chunk
</summary>
<param name="Id">Unique id for the row</param>
<param name="FileId">Id of the file that this chunk belongs to</param>
<param name="Offset">Starting offset within the file of this chunk</param>
<param name="Length">Length of the chunk</param>
<param name="Hash">Hash of the chunk data</param>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkRow.Id">
<summary>Unique id for the row</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkRow.FileId">
<summary>Id of the file that this chunk belongs to</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkRow.Offset">
<summary>Starting offset within the file of this chunk</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkRow.Length">
<summary>Length of the chunk</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ChunkRow.Hash">
<summary>Hash of the chunk data</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ChunkRow.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ChunkRow.#ctor(System.Int32,System.Int64,System.Int64,EpicGames.Core.IoHash)">
<summary>
Constructor for new chunk rows
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Git.GitCommitProperty">
<summary>
Property names for git commits
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitCommitProperty.Tree">
<summary>
The root of the tree for this commit
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitCommitProperty.Author">
<summary>
Author of the commit
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitCommitProperty.Committer">
<summary>
Person that committed the change
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitCommitProperty.Parent">
<summary>
Parent commit
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Git.GitCommit">
<summary>
Representation of a Git commit object
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitCommit.Properties">
<summary>
Properties for the commit
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitCommit.Message">
<summary>
Commit messages
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitCommit.#ctor(EpicGames.Core.Sha1Hash,EpicGames.Core.Utf8String)">
<summary>
Constructor
</summary>
<param name="tree"></param>
<param name="message"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitCommit.AddProperty(EpicGames.Core.Utf8String,EpicGames.Core.Utf8String)">
<summary>
Adds a new property to the collection
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitCommit.GetProperty(EpicGames.Core.Utf8String)">
<summary>
Gets a property value with the given key name
</summary>
<param name="name">Name of the property</param>
<returns>The property value</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitCommit.FindProperties(EpicGames.Core.Utf8String)">
<summary>
Gets property values with the given key name
</summary>
<param name="name">Name of the property</param>
<returns>The property value</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitCommit.GetTree">
<summary>
The tree for this commit
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitCommit.GetParents">
<summary>
Parents of this commit
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitCommit.Serialize">
<summary>
Serializes this object
</summary>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Storage.Git.GitObjectType">
<summary>
Type fields for git objects
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitObjectType.Blob">
<summary>
Blob objects
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitObjectType.Tree">
<summary>
Tree objects
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitObjectType.Commit">
<summary>
Commit objects
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Git.GitObject">
<summary>
Utility methods for manipulating Git objects
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitObject.WriteHeaderAsync(System.IO.Stream,EpicGames.Core.Utf8String,System.Int64,System.Threading.CancellationToken)">
<summary>
Writes the header for an object to a stream
</summary>
<param name="stream"></param>
<param name="type">Type of the object</param>
<param name="size">Size of the object</param>
<param name="cancellationToken"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitObject.WriteHeader(EpicGames.Core.Utf8String,System.Int64,System.Security.Cryptography.IncrementalHash)">
<summary>
Appends data for a header to the hash
</summary>
<param name="type">Type of the object</param>
<param name="size">Size of the object</param>
<param name="hash">Hash for the header data</param>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitObject.WriteHeader(EpicGames.Core.Utf8String,System.Int64,System.Span{System.Byte})">
<summary>
Writes a header for an object
</summary>
<param name="type">Type of the object</param>
<param name="size">Size of the object</param>
<param name="buffer">Buffer to receive the data</param>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Storage.Git.GitFileMode">
<summary>
Valid file modes for tree entries
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitFileMode.File">
<summary>
Regular file
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitFileMode.ExecutableFile">
<summary>
Executable file
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitFileMode.Tree">
<summary>
Child tree
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Git.GitTree">
<summary>
Representation of a Git tree object
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitTree.Entries">
<summary>
Entries for this tree. Sort be sorted for consistency.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitTree.GetHash">
<summary>
Gets the hash of this tree object.
</summary>
<returns>Hash of the object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitTree.Serialize">
<summary>
Serializes this object
</summary>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Storage.Git.GitTreeEntry">
<summary>
Entry for a Git tree
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitTreeEntry.Mode">
<summary>
Mode for this entry. Can be any values from <see cref="T:EpicGames.Horde.Storage.Git.GitFileMode"/>
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitTreeEntry.Name">
<summary>
Name of this entry
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Git.GitTreeEntry.Hash">
<summary>
Hash of the object for this entry
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Git.GitTreeEntry.#ctor(EpicGames.Core.Utf8String,EpicGames.Core.Utf8String,EpicGames.Core.Sha1Hash)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.HttpStorageClient">
<summary>
Factory for constructing storage namespace instances with an HTTP backend
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.HttpStorageClient.#ctor(EpicGames.Horde.Storage.Backends.HttpStorageBackendFactory,EpicGames.Horde.Storage.Bundles.BundleCache,Microsoft.Extensions.Options.IOptionsSnapshot{EpicGames.Horde.HordeOptions},Microsoft.Extensions.Logging.ILogger{EpicGames.Horde.Storage.Bundles.BundleStorageNamespace})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.HttpStorageClient.GetNamespaceWithPath(System.String,System.String,System.Boolean)">
<summary>
Creates a new HTTP storage namespace
</summary>
<param name="basePath">Base path for all requests</param>
<param name="accessToken">Custom access token to use for requests</param>
<param name="withBackendCache"></param>
</member>
<member name="M:EpicGames.Horde.Storage.HttpStorageClient.GetNamespace(EpicGames.Horde.Storage.NamespaceId,System.String,System.Boolean)">
<summary>
Creates a new HTTP storage namespace
</summary>
<param name="namespaceId">Namespace to create a client for</param>
<param name="accessToken">Custom access token to use for requests</param>
<param name="withBackendCache">Whether to enable the backend cache, which caches full bundles to disk</param>
</member>
<member name="M:EpicGames.Horde.Storage.HttpStorageClient.EpicGames#Horde#Storage#IStorageClient#TryGetNamespace(EpicGames.Horde.Storage.NamespaceId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.IBlobReader">
<summary>
Interface for reading nodes from storage
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IBlobReader.Type">
<summary>
Type to deserialize
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IBlobReader.Version">
<summary>
Version of the current node, as specified via <see cref="T:EpicGames.Horde.Storage.BlobType"/>
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IBlobReader.Imports">
<summary>
Locations of all referenced nodes. These handles do not have valid hashes.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobReader.ReadBlobRef">
<summary>
Gets the next serialized blob handle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobReader.ReadBlobRef``1">
<summary>
Gets the next serialized blob handle
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobReader">
<summary>
Reader for blob objects
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobReader.Type">
<summary>
Type to deserialize
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobReader.Version">
<summary>
Version of the current node, as specified via <see cref="T:EpicGames.Horde.Storage.BlobType"/>
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobReader.Length">
<summary>
Total length of the data in this node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobReader.RemainingLength">
<summary>
Amount of data remaining to be read
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobReader.Data">
<summary>
Raw data for this blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobReader.Imports">
<summary>
Locations of all referenced nodes.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobReader.#ctor(EpicGames.Horde.Storage.BlobData,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobReader.ReadBlobRef">
<summary>
Gets the next serialized blob reference
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobReader.ReadBlobRef``1">
<summary>
Gets the next serialized blob reference
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.IBlobRef">
<summary>
Reference to another node in storage. This type is similar to <see cref="T:EpicGames.Horde.Storage.IHashedBlobRef"/>, but without a hash.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IBlobRef.Innermost">
<summary>
Accessor for the innermost import
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobRef.FlushAsync(System.Threading.CancellationToken)">
<summary>
Flush the referenced data to underlying storage
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobRef.ReadBlobDataAsync(System.Threading.CancellationToken)">
<summary>
Reads the blob's data
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobRef.TryGetLocator(EpicGames.Horde.Storage.BlobLocator@)">
<summary>
Attempt to get a path for this blob.
</summary>
<param name="locator">Receives the blob path on success.</param>
<returns>True if a path was available, false if the blob has not yet been flushed to storage.</returns>
</member>
<member name="T:EpicGames.Horde.Storage.IBlobRef`1">
<summary>
Typed interface to a particular blob handle
</summary>
<typeparam name="T">Type of the deserialized blob</typeparam>
</member>
<member name="P:EpicGames.Horde.Storage.IBlobRef`1.SerializerOptions">
<summary>
Options for deserializing the blob
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobRefExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Storage.IBlobRef"/>
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobRefExtensions.TypedBlobRef`1.SerializerOptions">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobRefExtensions.ForType``1(EpicGames.Horde.Storage.IBlobRef,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Create a typed blob reference
</summary>
<typeparam name="T">Target type</typeparam>
<param name="blobRef">Blob referfence to wrap</param>
<param name="serializerOptions">Options for deserializing the blob</param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobRefExtensions.GetLocator(EpicGames.Horde.Storage.IBlobRef)">
<summary>
Gets a path to this blob that can be used to describe blob references over the wire.
</summary>
<param name="import">Handle to query</param>
</member>
<member name="T:EpicGames.Horde.Storage.IBlobWriter">
<summary>
Interface for a writer of node objects
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IBlobWriter.Options">
<summary>
Options for serialization
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IBlobWriter.WrittenMemory">
<summary>
Accessor for the memory written to the current blob
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobWriter.AddAlias(System.String,System.Int32,System.ReadOnlyMemory{System.Byte})">
<summary>
Adds an alias to the blob currently being written
</summary>
<param name="name">Name of the alias</param>
<param name="rank">Rank to use when finding blobs by alias</param>
<param name="data">Inline data to store with the alias</param>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobWriter.FlushAsync(System.Threading.CancellationToken)">
<summary>
Flush any pending nodes to storage
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobWriter.Fork">
<summary>
Create another writer instance, allowing multiple threads to write in parallel.
</summary>
<returns>New writer instance</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobWriter.CompleteAsync(EpicGames.Horde.Storage.BlobType,System.Threading.CancellationToken)">
<summary>
Finish writing a blob that has been written into the output buffer.
</summary>
<param name="type">Type of the node that was written</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the written node</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobWriter.CompleteAsync``1(EpicGames.Horde.Storage.BlobType,System.Threading.CancellationToken)">
<summary>
Finish writing a blob that has been written into the output buffer.
</summary>
<param name="type">Type of the node that was written</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the written node</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobWriter.WriteBlobHandleDangerous(EpicGames.Horde.Storage.IBlobRef)">
<summary>
Writes a reference to another blob. NOTE: This does not write anything to the underlying output stream, which prevents the data forming a Merkle tree
unless guaranteed uniqueness via a hash being written separately.
</summary>
<param name="handle">Referenced blob</param>
</member>
<member name="M:EpicGames.Horde.Storage.IBlobWriter.WriteBlobRef(EpicGames.Horde.Storage.IHashedBlobRef)">
<summary>
Writes a reference to another blob. The blob's hash is serialized to the output stream.
</summary>
<param name="blobRef">Referenced blob</param>
</member>
<member name="T:EpicGames.Horde.Storage.AliasInfo">
<summary>
Information about an alias to be added alongside a blob
</summary>
<param name="Name">Name of the alias</param>
<param name="Rank">Rank of the alias</param>
<param name="Data">Inline data to be stored for the alias</param>
</member>
<member name="M:EpicGames.Horde.Storage.AliasInfo.#ctor(System.String,System.Int32,System.ReadOnlyMemory{System.Byte})">
<summary>
Information about an alias to be added alongside a blob
</summary>
<param name="Name">Name of the alias</param>
<param name="Rank">Rank of the alias</param>
<param name="Data">Inline data to be stored for the alias</param>
</member>
<member name="P:EpicGames.Horde.Storage.AliasInfo.Name">
<summary>Name of the alias</summary>
</member>
<member name="P:EpicGames.Horde.Storage.AliasInfo.Rank">
<summary>Rank of the alias</summary>
</member>
<member name="P:EpicGames.Horde.Storage.AliasInfo.Data">
<summary>Inline data to be stored for the alias</summary>
</member>
<member name="T:EpicGames.Horde.Storage.BlobWriter">
<summary>
Base class for <see cref="T:EpicGames.Horde.Storage.IBlobWriter"/> implementations.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.BlobWriter.Length">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.BlobWriter.Options">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.BlobWriter.WrittenMemory">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.#ctor(EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Constructor
</summary>
<param name="options"></param>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.ComputeHash">
<summary>
Computes the hash of the written data
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.WriteBlobHandleDangerous(EpicGames.Horde.Storage.IBlobRef)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.WriteBlobRef(EpicGames.Horde.Storage.IHashedBlobRef)">
<summary>
Writes a handle to another node
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.GetSpan(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.GetMemory(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.Advance(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.GetOutputBuffer(System.Int32,System.Int32)">
<summary>
Request a new buffer to write to
</summary>
<param name="usedSize">Size of data written to the current buffer</param>
<param name="desiredSize">Desired size for the buffer</param>
<returns>New buffer</returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.WriteBlobAsync(EpicGames.Horde.Storage.BlobType,System.Int32,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.AliasInfo},System.Threading.CancellationToken)">
<summary>
Write the current blob to storage
</summary>
<param name="type">Type of the blob</param>
<param name="size">Size of the blob to write</param>
<param name="imports">References to other blobs</param>
<param name="aliases">Aliases for the new blob</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>New buffer</returns>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.AddAlias(System.String,System.Int32,System.ReadOnlyMemory{System.Byte})">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.Fork">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.CompleteAsync(EpicGames.Horde.Storage.BlobType,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.CompleteAsync``1(EpicGames.Horde.Storage.BlobType,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.BlobWriter.DisposeAsync">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.NullBlobWriter">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Storage.IBlobWriter"/> which discards any written data
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.NullBlobWriter.#ctor(EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.NullBlobWriter.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NullBlobWriter.WriteBlobAsync(EpicGames.Horde.Storage.BlobType,System.Int32,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.AliasInfo},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NullBlobWriter.GetOutputBuffer(System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NullBlobWriter.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NullBlobWriter.Fork">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.MemoryBlobWriter">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Storage.IBlobWriter"/> which just buffers data in memory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryBlobWriter.#ctor(EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryBlobWriter.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryBlobWriter.Clear">
<summary>
Clears the contents of this writer
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryBlobWriter.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryBlobWriter.Fork">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryBlobWriter.GetOutputBuffer(System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryBlobWriter.WriteBlobAsync(EpicGames.Horde.Storage.BlobType,System.Int32,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.AliasInfo},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.MemoryBlobWriter.GetIndex(EpicGames.Horde.Storage.IHashedBlobRef)">
<summary>
Helper function to get the index of a blob
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.IHashedBlobRef">
<summary>
Handle to a node. Can be used to reference nodes that have not been flushed yet.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IHashedBlobRef.Hash">
<summary>
Hash of the target node
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.IHashedBlobRef`1">
<summary>
Typed interface to a particular blob handle
</summary>
<typeparam name="T">Type of the deserialized blob</typeparam>
</member>
<member name="T:EpicGames.Horde.Storage.HashedBlobRefValue">
<summary>
Contains the value for a blob ref
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.HashedBlobRefValue.#ctor(EpicGames.Core.IoHash,EpicGames.Horde.Storage.BlobLocator)">
<summary>
Contains the value for a blob ref
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.HashedBlobRef">
<summary>
Helper methods for creating blob handles
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.HashedBlobRef.Create(EpicGames.Core.IoHash,EpicGames.Horde.Storage.IBlobRef)">
<summary>
Create an untyped blob handle
</summary>
<param name="handle">Imported blob interface</param>
<param name="hash">Hash of the blob</param>
<returns>Handle to the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.HashedBlobRef.Create``1(EpicGames.Horde.Storage.IHashedBlobRef,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Create a typed blob handle
</summary>
<typeparam name="T"></typeparam>
<param name="blobRef">Existing blob reference</param>
<param name="options">Options for deserializing the target blob</param>
<returns>Handle to the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.HashedBlobRef.Create``1(EpicGames.Core.IoHash,EpicGames.Horde.Storage.IBlobRef,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Create a typed blob handle
</summary>
<typeparam name="T"></typeparam>
<param name="hash">Hash of the blob</param>
<param name="handle">Imported blob interface</param>
<param name="options">Options for deserializing the target blob</param>
<returns>Handle to the blob</returns>
</member>
<member name="T:EpicGames.Horde.Storage.HashedBlobRefExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Storage.IHashedBlobRef"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.HashedBlobRefExtensions.GetRefValue(EpicGames.Horde.Storage.IHashedBlobRef)">
<summary>
Gets a BlobRefValue from an IBlobRef
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.IObjectStore">
<summary>
Interface for a object storage service.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IObjectStore.SupportsRedirects">
<summary>
Whether this storage backend supports HTTP redirects for reads and writes
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.OpenAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Attempts to open a read stream for the given path.
</summary>
<param name="key">Relative path within the bucket</param>
<param name="offset">Offset to start reading from</param>
<param name="length">Length of data to read</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.ReadAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Reads an object into memory and returns a handle to it.
</summary>
<param name="key">Path to the file</param>
<param name="offset">Offset of the data to retrieve</param>
<param name="length">Length of the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the data. Must be disposed by the caller.</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.WriteAsync(EpicGames.Horde.Storage.ObjectKey,System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Writes a stream to the storage backend. If the stream throws an exception during read, the write will be aborted.
</summary>
<param name="key">Path to write to</param>
<param name="stream">Stream to write</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path to the uploaded object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.ExistsAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<summary>
Tests whether the given path exists
</summary>
<param name="key">Relative path within the bucket</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the object exists</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.GetSizeAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<summary>
Gets the size of a particular object
</summary>
<param name="key">Relative path within the bucket</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Size of the object, or -1 if it does not exist</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.DeleteAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<summary>
Deletes a file with the given path
</summary>
<param name="key">Relative path within the bucket</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Async task</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.TryGetReadRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<summary>
Gets a HTTP redirect for a read request
</summary>
<param name="key">Path to read from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path to upload the data to</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.TryGetWriteRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<summary>
Gets a HTTP redirect for a write request
</summary>
<param name="key">Path to read from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path for retrieval, and URI to upload the data to</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IObjectStore.GetStats(EpicGames.Horde.Storage.StorageStats)">
<summary>
Gets stats for this storage backend
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.IObjectStore`1">
<summary>
Typed <see cref="T:EpicGames.Horde.Storage.IObjectStore"/> instance for dependency injection
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectStoreExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Storage.IObjectStore"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStoreExtensions.ForType``1(EpicGames.Horde.Storage.IObjectStore)">
<summary>
Creates a typed wrapper around the given object store
</summary>
<param name="store">Store to wrap</param>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStoreExtensions.OpenAsync(EpicGames.Horde.Storage.IObjectStore,EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<summary>
Attempts to open a read stream for the given path.
</summary>
<param name="store">Store to read from</param>
<param name="key">Relative path within the bucket</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStoreExtensions.ReadAsync(EpicGames.Horde.Storage.IObjectStore,EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<summary>
Reads an object into memory and returns a handle to it.
</summary>
<param name="store">Store to read from</param>
<param name="key">Path to the file</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the data. Must be disposed by the caller.</returns>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStoreExtensions.WriteAsync(EpicGames.Horde.Storage.IObjectStore,EpicGames.Horde.Storage.ObjectKey,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Writes a stream to the storage backend. If the stream throws an exception during read, the write will be aborted.
</summary>
<param name="store">Store to write to</param>
<param name="locator">Path to write to</param>
<param name="data">Data to write</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path to the uploaded object</returns>
</member>
<member name="T:EpicGames.Horde.Storage.IStorageBackend">
<summary>
Interface for a low-level storage backend.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.IStorageBackend.SupportsRedirects">
<summary>
Whether this storage backend supports HTTP redirects for reads and writes
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.OpenBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Attempts to open a read stream for the given path.
</summary>
<param name="locator">Relative path within the bucket</param>
<param name="offset">Offset to start reading from</param>
<param name="length">Length of data to read</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.ReadBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Reads an object into memory and returns a handle to it.
</summary>
<param name="locator">Path to the file</param>
<param name="offset">Offset of the data to retrieve</param>
<param name="length">Length of the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the data. Must be disposed by the caller.</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.WriteBlobAsync(System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<summary>
Writes a stream to the storage backend. If the stream throws an exception during read, the write will be aborted.
</summary>
<param name="stream">Data stream</param>
<param name="imports">List of referenced blobs</param>
<param name="prefix">Path prefix for the uploaded data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path to the uploaded object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.WriteBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<summary>
Writes a stream to the storage backend. If the stream throws an exception during read, the write will be aborted.
</summary>s
<param name="locator">Locator for the new blob</param>
<param name="stream">Data stream</param>
<param name="imports">Imported blobs. If omitted, the backend will parse them from the stream data.</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path to the uploaded object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.TryGetBlobReadRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<summary>
Gets a HTTP redirect for a read request
</summary>
<param name="locator">Path to read from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path to upload the data to</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.TryGetBlobWriteRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<summary>
Gets a HTTP redirect for a write request
</summary>
<param name="locator">Path to write to</param>
<param name="imports">Imports for this blob</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path for retrieval, and URI to upload the data to</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.TryGetBlobWriteRedirectAsync(System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<summary>
Gets a HTTP redirect for a write request
</summary>
<param name="imports">Imports for this blob</param>
<param name="prefix">Prefix for the uploaded data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Path for retrieval, and URI to upload the data to</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Finds blobs with the given alias. Unlike refs, aliases do not serve as GC roots.
</summary>
<param name="name">Alias for the blob</param>
<param name="maxResults">Maximum number of aliases to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Blobs matching the given handle</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<summary>
Reads data for a ref from the store
</summary>
<param name="name">The ref name</param>
<param name="cacheTime">Minimum coherency for any cached value to be returned</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Blob pointed to by the ref</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.UpdateMetadataAsync(EpicGames.Horde.Storage.UpdateMetadataRequest,System.Threading.CancellationToken)">
<summary>
Batch request to update metadata
</summary>
<param name="request">Options for the update</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageBackend.GetStats(EpicGames.Horde.Storage.StorageStats)">
<summary>
Gets stats for this storage backend
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.StorageHelpers">
<summary>
Utility methods for storage backend implementations
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.StorageHelpers.s_sessionPrefix">
<summary>
Unique session id used for unique ids
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.StorageHelpers.s_increment">
<summary>
Incremented value used for each supplied id
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageHelpers.CreateUniqueLocator(System.String)">
<summary>
Creates a unique name with a given prefix
</summary>
<param name="prefix">The prefix to use</param>
<returns>Unique name generated with the given prefix</returns>
</member>
<member name="T:EpicGames.Horde.Storage.StorageBackendExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Storage.IStorageBackend"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendExtensions.OpenBlobAsync(EpicGames.Horde.Storage.IStorageBackend,EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<summary>
Attempts to open a read stream for the given path.
</summary>
<param name="storageBackend">Backend to read from</param>
<param name="locator">Object name within the store</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Stream for the object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendExtensions.ReadBlobAsync(EpicGames.Horde.Storage.IStorageBackend,EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<summary>
Attempts to open a read stream for the given path.
</summary>
<param name="storageBackend">Backend to read from</param>
<param name="locator">Object name within the store</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Stream for the object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendExtensions.ReadBytesAsync(EpicGames.Horde.Storage.IStorageBackend,EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<summary>
Reads an object as an array of bytes
</summary>
<param name="storageBackend">Backend to read from</param>
<param name="locator">Object name within the store</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Contents of the object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendExtensions.WriteBytesAsync(EpicGames.Horde.Storage.IStorageBackend,System.ReadOnlyMemory{System.Byte},System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<summary>
Writes a block of memory to storage
</summary>
<param name="storageBackend">Backend to read from</param>
<param name="data">Data to be written</param>
<param name="imports"></param>
<param name="prefix">Prefix for the uploaded data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.IStorageClient">
<summary>
Client for the storage system
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageClient.TryGetNamespace(EpicGames.Horde.Storage.NamespaceId)">
<summary>
Creates a storage namespace for the given id
</summary>
<param name="namespaceId">Namespace to manipulate</param>
<returns>Storage namespace instance. May be null if the namespace does not exist.</returns>
</member>
<member name="T:EpicGames.Horde.Storage.StorageClientExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Storage.IStorageClient"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageClientExtensions.GetNamespace(EpicGames.Horde.Storage.IStorageClient,EpicGames.Horde.Storage.NamespaceId)">
<summary>
Creates a new storage namespace, throwing an exception if it does not exist
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.RefOptions">
<summary>
Options for a new ref
</summary>
<param name="Lifetime">Time until a ref is expired</param>
<param name="Extend">Whether to extend the remaining lifetime of a ref whenever it is fetched. Defaults to true.</param>
</member>
<member name="M:EpicGames.Horde.Storage.RefOptions.#ctor(System.Nullable{System.TimeSpan},System.Nullable{System.Boolean})">
<summary>
Options for a new ref
</summary>
<param name="Lifetime">Time until a ref is expired</param>
<param name="Extend">Whether to extend the remaining lifetime of a ref whenever it is fetched. Defaults to true.</param>
</member>
<member name="P:EpicGames.Horde.Storage.RefOptions.Lifetime">
<summary>Time until a ref is expired</summary>
</member>
<member name="P:EpicGames.Horde.Storage.RefOptions.Extend">
<summary>Whether to extend the remaining lifetime of a ref whenever it is fetched. Defaults to true.</summary>
</member>
<member name="T:EpicGames.Horde.Storage.IStorageNamespace">
<summary>
Interface for the storage system.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageNamespace.CreateWriter(System.Threading.CancellationToken)">
<summary>
Creates a writer for updating the namespace
</summary>
<param name="cancellationToken">Cancellation token for async writing. The writer will flush on dispose unless this cancellation token is signalled.</param>
<returns>New writer instance</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageNamespace.CreateBlobRef(EpicGames.Horde.Storage.BlobLocator)">
<summary>
Creates a new blob handle by parsing a locator
</summary>
<param name="locator">Path to the blob</param>
<returns>New handle to the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageNamespace.CreateBlobWriter(System.String,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Creates a new writer for storage blobs
</summary>
<param name="basePath">Base path for any nodes written from the writer.</param>
<param name="serializerOptions">Options for serializing classes</param>
<param name="cancellationToken">Cancellation token used for any buffered blob writes. Blob writers will flush on close, unless this cancellation token is signalled.</param>
<returns>New writer instance. Must be disposed after use.</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageNamespace.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Finds blobs with the given alias. Unlike refs, aliases do not serve as GC roots.
</summary>
<param name="name">Alias for the blob</param>
<param name="maxResults">Maximum number of aliases to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Blobs matching the given handle</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageNamespace.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<summary>
Reads data for a ref from the store
</summary>
<param name="name">The ref name</param>
<param name="cacheTime">Minimum coherency for any cached value to be returned</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Blob pointed to by the ref</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageNamespace.GetStats(EpicGames.Horde.Storage.StorageStats)">
<summary>
Gets a snapshot of the stats for the storage namespace.
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.RefCacheTime">
<summary>
Indicates the maximum age of a entry returned from a cache in the hierarchy
</summary>
<param name="Utc">Oldest allowed timestamp for a returned result</param>
</member>
<member name="M:EpicGames.Horde.Storage.RefCacheTime.#ctor(System.DateTime)">
<summary>
Indicates the maximum age of a entry returned from a cache in the hierarchy
</summary>
<param name="Utc">Oldest allowed timestamp for a returned result</param>
</member>
<member name="P:EpicGames.Horde.Storage.RefCacheTime.Utc">
<summary>Oldest allowed timestamp for a returned result</summary>
</member>
<member name="P:EpicGames.Horde.Storage.RefCacheTime.MaxAge">
<summary>
Maximum age for a cached value to be returned
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.RefCacheTime.#ctor(System.TimeSpan)">
<summary>
Sets the earliest time at which the entry must have been valid
</summary>
<param name="age">Maximum age of any returned cache value. Taken from the moment that this object was created.</param>
</member>
<member name="M:EpicGames.Horde.Storage.RefCacheTime.IsSet">
<summary>
Tests whether this value is set
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.RefCacheTime.IsStaleCacheEntry(System.DateTime,EpicGames.Horde.Storage.RefCacheTime)">
<summary>
Determines if this cache time deems a particular cache entry stale
</summary>
<param name="entryTime">Time at which the cache entry was valid</param>
<param name="cacheTime">Maximum cache time to test against</param>
</member>
<member name="M:EpicGames.Horde.Storage.RefCacheTime.op_Implicit(System.DateTime)~EpicGames.Horde.Storage.RefCacheTime">
<summary>
Implicit conversion operator from datetime values.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.RefCacheTime.op_Implicit(System.TimeSpan)~EpicGames.Horde.Storage.RefCacheTime">
<summary>
Implicit conversion operator from timespan values.
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.StorageStats">
<summary>
Stats for the storage system
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.StorageStats.Values">
<summary>
Stat name to value
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageStats.Add(System.String,System.Int64)">
<summary>
Add a new stat to the list
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageStats.Print(Microsoft.Extensions.Logging.ILogger)">
<summary>
Prints the table of stats to the logger
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageStats.GetDelta(EpicGames.Horde.Storage.StorageStats,EpicGames.Horde.Storage.StorageStats)">
<summary>
Subtract a base set of stats from this one
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.StorageNamespaceExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Storage.IStorageNamespace"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.CreateBlobRef``1(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Creates a new blob handle by parsing a locator
</summary>
<param name="storageNamespace">Storage namespace to operate on</param>
<param name="locator">Path to the blob</param>
<param name="serializerOptions">Options for deserializing the blob</param>
<returns>New handle to the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.CreateBlobRef(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Core.IoHash,EpicGames.Horde.Storage.BlobLocator)">
<summary>
Creates a new blob reference from a locator and hash
</summary>
<param name="storageNamespace">Storage namespace to operate on</param>
<param name="hash">Hash of the target blob</param>
<param name="locator">Path to the blob</param>
<returns>New handle to the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.CreateBlobRef``1(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Core.IoHash,EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Creates a new blob reference from a locator and hash
</summary>
<param name="storageNamespace">Storage namespace to operate on</param>
<param name="hash">Hash of the target blob</param>
<param name="locator">Path to the blob</param>
<param name="serializerOptions">Options for deserializing the blob</param>
<returns>New handle to the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.CreateBlobRef(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.HashedBlobRefValue)">
<summary>
Create a blob ref from a RefValue
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.CreateBlobRef``1(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.HashedBlobRefValue,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Create a typed blob ref from a RefValue
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.CreateBlobRef(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime)">
<summary>
Creates a new blob ref from a ref name
</summary>
<param name="storageNamespace">The store instance to read from</param>
<param name="name">Name of the reference</param>
<param name="cacheTime">Maximum age for cached responses</param>
<returns>New handle to the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.CreateBlobRef``1(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Creates a new blob ref from a ref name
</summary>
<param name="storageNamespace">The store instance to read from</param>
<param name="name">Name of the reference</param>
<param name="cacheTime">Maximum age for cached responses</param>
<param name="serializerOptions">Options for deserializing the blob</param>
<returns>New handle to the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.CreateBlobWriter(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName)">
<summary>
Creates a writer using a refname as a base path
</summary>
<param name="store">The store instance to read from</param>
<param name="refName">Ref name to use as a base path</param>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.AddAliasAsync(EpicGames.Horde.Storage.IStorageNamespace,System.String,EpicGames.Horde.Storage.IBlobRef,System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Adds an alias to a given blob
</summary>
<param name="store">The store instance to write to</param>
<param name="name">Alias for the blob</param>
<param name="handle">Locator for the blob</param>
<param name="rank">Rank for this alias. In situations where an alias has multiple mappings, the alias with the highest rank will be returned by default.</param>
<param name="data">Additional data to be stored inline with the alias</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.RemoveAliasAsync(EpicGames.Horde.Storage.IStorageNamespace,System.String,EpicGames.Horde.Storage.IBlobRef,System.Threading.CancellationToken)">
<summary>
Removes an alias from a blob
</summary>
<param name="store">The store instance to write to</param>
<param name="name">Name of the alias</param>
<param name="handle">Locator for the blob</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.FindAliasAsync(EpicGames.Horde.Storage.IStorageNamespace,System.String,System.Threading.CancellationToken)">
<summary>
Finds blobs with the given alias. Unlike refs, aliases do not serve as GC roots.
</summary>
<param name="store">The store instance to read from</param>
<param name="name">Alias for the blob</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Blobs matching the given handle</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.RefExistsAsync(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<summary>
Checks if the given ref exists
</summary>
<param name="store">The store instance to read from</param>
<param name="name">Name of the reference to look for</param>
<param name="cacheTime">Minimum coherency for any cached value to be returned</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the ref exists, false if it did not exist</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.ReadRefAsync(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<summary>
Reads a ref from the store, throwing an exception if it does not exist
</summary>
<param name="store">The store instance to read from</param>
<param name="name">Id for the ref</param>
<param name="cacheTime">Minimum coherency of any cached result</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The ref target</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.AddRefAsync(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.IHashedBlobRef,EpicGames.Horde.Storage.RefOptions,System.Threading.CancellationToken)">
<summary>
Writes a new ref to the store
</summary>
<param name="store">The store instance to write to</param>
<param name="name">Ref to write</param>
<param name="target">Handle to the target blob</param>
<param name="options">Options for the new ref</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Unique identifier for the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.RemoveRefAsync(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,System.Threading.CancellationToken)">
<summary>
Reads data for a ref from the store
</summary>
<param name="store">The store instance to write to</param>
<param name="name">The ref identifier</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.WriteRefAsync(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.IHashedBlobRef,EpicGames.Horde.Storage.RefOptions,System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.AddRefAsync(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.IHashedBlobRef,EpicGames.Horde.Storage.RefOptions,System.Threading.CancellationToken)"/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.DeleteRefAsync(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.RemoveRefAsync(EpicGames.Horde.Storage.IStorageNamespace,EpicGames.Horde.Storage.RefName,System.Threading.CancellationToken)"/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageNamespaceExtensions.GetStats(EpicGames.Horde.Storage.IStorageNamespace)">
<summary>
Gets a snapshot of the stats for the storage namespace.
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.IStorageWriter">
<summary>
Interface for a batching storage writer
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageWriter.CreateBlobWriter(System.String,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Creates a new writer for storage blobs
</summary>
<param name="basePath">Base path for any nodes written from the writer.</param>
<param name="serializerOptions">Options for serializing classes</param>
<returns>New writer instance. Must be disposed after use.</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageWriter.AddAliasAsync(System.String,EpicGames.Horde.Storage.IBlobRef,System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Adds an alias to a given blob
</summary>
<param name="name">Alias for the blob</param>
<param name="handle">Locator for the blob</param>
<param name="rank">Rank for this alias. In situations where an alias has multiple mappings, the alias with the highest rank will be returned by default.</param>
<param name="data">Additional data to be stored inline with the alias</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageWriter.RemoveAliasAsync(System.String,EpicGames.Horde.Storage.IBlobRef,System.Threading.CancellationToken)">
<summary>
Removes an alias from a blob
</summary>
<param name="name">Name of the alias</param>
<param name="handle">Locator for the blob</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageWriter.AddRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.IHashedBlobRef,EpicGames.Horde.Storage.RefOptions,System.Threading.CancellationToken)">
<summary>
Adds a new ref to the store
</summary>
<param name="name">Ref to write</param>
<param name="target">Handle to the target blob</param>
<param name="options">Options for the new ref</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Unique identifier for the blob</returns>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageWriter.RemoveRefAsync(EpicGames.Horde.Storage.RefName,System.Threading.CancellationToken)">
<summary>
Removes a ref from the store
</summary>
<param name="name">The ref identifier</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.IStorageWriter.FlushAsync(System.Threading.CancellationToken)">
<summary>
Flush any buffered writes
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.StorageWriter">
<summary>
Default base implementation of <see cref="T:EpicGames.Horde.Storage.IStorageWriter"/> which combines metadata updates into a <see cref="T:EpicGames.Horde.Storage.UpdateMetadataRequest"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.#ctor(EpicGames.Horde.Storage.IStorageBackend,System.Threading.CancellationToken)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.CreateBlobWriter(System.String,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.CreateBlobWriter(System.String,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Storage.IStorageWriter.CreateBlobWriter(System.String,EpicGames.Horde.Storage.BlobSerializerOptions)"/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.AddAliasAsync(System.String,EpicGames.Horde.Storage.IBlobRef,System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.RemoveAliasAsync(System.String,EpicGames.Horde.Storage.IBlobRef,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.AddRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.IHashedBlobRef,EpicGames.Horde.Storage.RefOptions,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.RemoveRefAsync(EpicGames.Horde.Storage.RefName,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageWriter.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace">
<summary>
Base class for storage namespaces that wrap a diirect key/value type store without any merging/splitting.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.Handle.Innermost">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.Handle.#ctor(EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace,EpicGames.Horde.Storage.BlobLocator)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.Handle.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.Handle.ReadBlobDataAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.Handle.TryGetLocator(EpicGames.Horde.Storage.BlobLocator@)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.Handle.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.Handle.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.StorageWriterImpl.CreateBlobWriter(System.String,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.BlobWriterImpl.#ctor(EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace,System.String,EpicGames.Horde.Storage.BlobSerializerOptions)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.BlobWriterImpl.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.BlobWriterImpl.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.BlobWriterImpl.Fork">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.BlobWriterImpl.GetOutputBuffer(System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.BlobWriterImpl.WriteBlobAsync(EpicGames.Horde.Storage.BlobType,System.Int32,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.AliasInfo},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.#ctor(EpicGames.Horde.Storage.IStorageBackend)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.CreateInMemory">
<summary>
Create an in-memory storage namespace
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.CreateWriter(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.CreateBlobRef(EpicGames.Horde.Storage.BlobLocator)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.CreateBlobWriter(System.String,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.ReadBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.WriteBlobAsync(EpicGames.Horde.Storage.BlobType,System.IO.Stream,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Clients.KeyValueStorageNamespace.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.NamespaceId">
<summary>
Identifier for a storage namespace
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.NamespaceId.Text">
<summary>
The text representing this id
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceId.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="text">Unique id for the namespace</param>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceId.#ctor(EpicGames.Core.Utf8String)">
<summary>
Constructor
</summary>
<param name="text">Unique id for the namespace</param>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceId.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceId.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceId.Equals(EpicGames.Horde.Storage.NamespaceId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceId.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceId.op_Equality(EpicGames.Horde.Storage.NamespaceId,EpicGames.Horde.Storage.NamespaceId)">
<inheritdoc cref="M:EpicGames.Horde.StringId.op_Equality(EpicGames.Horde.StringId,EpicGames.Horde.StringId)"/>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceId.op_Inequality(EpicGames.Horde.Storage.NamespaceId,EpicGames.Horde.Storage.NamespaceId)">
<inheritdoc cref="M:EpicGames.Horde.StringId.op_Inequality(EpicGames.Horde.StringId,EpicGames.Horde.StringId)"/>
</member>
<member name="T:EpicGames.Horde.Storage.NamespaceIdJsonConverter">
<summary>
Type converter for NamespaceId to and from JSON
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceIdJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceIdJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Storage.NamespaceId,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.NamespaceIdTypeConverter">
<summary>
Type converter from strings to NamespaceId objects
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceIdTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.NamespaceIdTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.CbNode">
<summary>
A node containing arbitrary compact binary data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CbNode.BlobTypeGuid">
<summary>
Static accessor for the blob type guid
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CbNode.Object">
<summary>
The compact binary object
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CbNode.Imports">
<summary>
Imported nodes
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.CbNode.#ctor(EpicGames.Serialization.CbObject,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.IBlobRef})">
<summary>
Constructor
</summary>
<param name="obj">The compact binary object</param>
<param name="imports">List of imports for attachments</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.CbNodeConverter.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.CbNodeConverter.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.CbNode,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.ChunkedDataNode">
<summary>
Representation of a data stream, split into chunks along content-aware boundaries using a rolling hash (<see cref="T:EpicGames.Core.BuzHash"/>).
Chunks are pushed into a tree hierarchy as data is appended to the root, with nodes of the tree also split along content-aware boundaries with <see cref="F:EpicGames.Core.IoHash.NumBytes"/> granularity.
Once a chunk has been written to storage, it is treated as immutable.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNode.CopyToStreamAsync(System.IO.Stream,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Copies the contents of this node and its children to the given output stream
</summary>
<param name="outputStream">The output stream to receive the data</param>
<param name="options">Options for controling serialization</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNode.CopyToStreamAsync(EpicGames.Horde.Storage.IBlobRef,System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Copy the contents of the node to the output stream without creating the intermediate FileNodes
</summary>
<param name="handle">Handle to the data to read</param>
<param name="outputStream">The output stream to receive the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNode.CopyToFileAsync(EpicGames.Horde.Storage.IBlobRef,System.IO.FileInfo,System.Threading.CancellationToken)">
<summary>
Extracts the contents of this node to a file
</summary>
<param name="handle">Handle to the data to read</param>
<param name="file">File to write with the contents of this node</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNode.ToByteArrayAsync(EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Serialize this node and its children into a byte array
</summary>
<param name="options">Options to control serialization</param>
<param name="cancellationToken"></param>
<returns>Array of data stored by the tree</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeConverter.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeConverter.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkedDataNode,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeType">
<summary>
Type of a chunked data node
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeType.Unknown">
<summary>
Unknown node type
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeType.Leaf">
<summary>
Leaf node
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeType.Interior">
<summary>
An interior node
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef">
<summary>
Reference to a chunked data node
</summary>
<param name="Type">Type of the referenced node</param>
<param name="Length">Length of the data stream within this node</param>
<param name="RollingHash">Rolling hash for this chunk. Only serialized for leaf node references.</param>
<param name="Handle">Handle to the target node</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.#ctor(EpicGames.Horde.Storage.Nodes.ChunkedDataNodeType,System.Int64,System.UInt32,EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Storage.Nodes.ChunkedDataNode})">
<summary>
Reference to a chunked data node
</summary>
<param name="Type">Type of the referenced node</param>
<param name="Length">Length of the data stream within this node</param>
<param name="RollingHash">Rolling hash for this chunk. Only serialized for leaf node references.</param>
<param name="Handle">Handle to the target node</param>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.Type">
<summary>Type of the referenced node</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.Length">
<summary>Length of the data stream within this node</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.RollingHash">
<summary>Rolling hash for this chunk. Only serialized for leaf node references.</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.Handle">
<summary>Handle to the target node</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.#ctor(System.Int64,System.UInt32,EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode})">
<summary>
Leaf node constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.#ctor(System.Int64,EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode})">
<summary>
Interior node constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.GetInteriorHandle">
<summary>
Gets the target interior node handle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.GetLeafHandle">
<summary>
Gets the target leaf node handle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.ReadBlobAsync(EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<summary>
Read the node which is the target of this ref
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef.EnumerateLeafNodesAsync(System.Threading.CancellationToken)">
<summary>
Enumerates all the leaf nodes for this node
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeRef">
<summary>
Reference to a <see cref="T:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode"/>
</summary>
<param name="Length">Length of the leaf data</param>
<param name="BlobRef">Reference to the blob</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeRef.#ctor(System.Int64,EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode})">
<summary>
Reference to a <see cref="T:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode"/>
</summary>
<param name="Length">Length of the leaf data</param>
<param name="BlobRef">Reference to the blob</param>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeRef.Length">
<summary>Length of the leaf data</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeRef.BlobRef">
<summary>Reference to the blob</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.LeafChunkedData">
<summary>
Stores the flat list of chunks produced from chunking a single data stream
</summary>
<param name="Hash">Hash of the data</param>
<param name="LeafHandles">Handles to the leaf chunks</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedData.#ctor(EpicGames.Core.IoHash,System.Collections.Generic.List{EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef})">
<summary>
Stores the flat list of chunks produced from chunking a single data stream
</summary>
<param name="Hash">Hash of the data</param>
<param name="LeafHandles">Handles to the leaf chunks</param>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedData.Hash">
<summary>Hash of the data</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedData.LeafHandles">
<summary>Handles to the leaf chunks</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode">
<summary>
File node that contains a chunk of data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.BlobTypeGuid">
<summary>
Guid for the blob type
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.Data">
<summary>
Data for this node
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.#ctor(System.ReadOnlyMemory{System.Byte})">
<summary>
Create an empty leaf node
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.CopyToStreamAsync(System.IO.Stream,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.CopyToStreamAsync(EpicGames.Horde.Storage.BlobData,System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Copy the contents of the node to the output stream without creating the intermediate FileNodes
</summary>
<param name="nodeData">The raw node data</param>
<param name="outputStream">The output stream to receive the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.CreateFromFileAsync(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Core.FileReference,EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions,System.Threading.CancellationToken)">
<summary>
Creates nodes from the given file
</summary>
<param name="writer">Writer for output nodes</param>
<param name="file">File info</param>
<param name="options">Options for finding chunk boundaries</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Hash of the full file data</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.CreateFromFileAsync(EpicGames.Horde.Storage.IBlobWriter,System.IO.FileInfo,EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions,System.Threading.CancellationToken)">
<summary>
Creates nodes from the given file
</summary>
<param name="writer">Writer for output nodes</param>
<param name="file">File info</param>
<param name="options">Options for finding chunk boundaries</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Hash of the full file data</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.CreateFromStreamAsync(EpicGames.Horde.Storage.IBlobWriter,System.IO.Stream,EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions,System.Threading.CancellationToken)">
<summary>
Creates nodes from the given file
</summary>
<param name="writer">Writer for output nodes</param>
<param name="stream">Stream to read from</param>
<param name="options">Options for finding chunk boundaries</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Hash of the full file data</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.CreateFromStreamAsync(EpicGames.Horde.Storage.IBlobWriter,System.IO.Stream,EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions,EpicGames.Horde.Storage.Nodes.UpdateStats,System.Threading.CancellationToken)">
<summary>
Creates nodes from the given file
</summary>
<param name="writer">Writer for output nodes</param>
<param name="stream">Stream to read from</param>
<param name="options">Options for finding chunk boundaries</param>
<param name="updateStats">Stats for the copy operation</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Hash of the full file data</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNode.GetChunkLength(System.ReadOnlySpan{System.Byte},EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions,System.UInt32@)">
<summary>
Determines how much data to append to an existing leaf node
</summary>
<param name="inputData">Data to be appended</param>
<param name="options">Options for chunking the data</param>
<param name="rollingHash">Receives the rolling hash at the end of this chunk</param>
<returns>The number of bytes to append</returns>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeConverter.BlobType">
<summary>
Static accessor for the blob type
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions">
<summary>
Options for creating interior nodes
</summary>
<param name="MinChildCount">Minimum number of children in each node</param>
<param name="TargetChildCount">Target number of children in each node</param>
<param name="MaxChildCount">Maximum number of children in each node</param>
<param name="SliceThreshold">Threshold hash value for splitting interior nodes</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions.#ctor(System.Int32,System.Int32,System.Int32,System.UInt32)">
<summary>
Options for creating interior nodes
</summary>
<param name="MinChildCount">Minimum number of children in each node</param>
<param name="TargetChildCount">Target number of children in each node</param>
<param name="MaxChildCount">Maximum number of children in each node</param>
<param name="SliceThreshold">Threshold hash value for splitting interior nodes</param>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions.MinChildCount">
<summary>Minimum number of children in each node</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions.TargetChildCount">
<summary>Target number of children in each node</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions.MaxChildCount">
<summary>Maximum number of children in each node</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions.SliceThreshold">
<summary>Threshold hash value for splitting interior nodes</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions.Default">
<summary>
Default settings
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode">
<summary>
An interior file node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode.BlobTypeGuid">
<summary>
Static accessor for the blob type guid
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode.Children">
<summary>
Child nodes
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode.#ctor(System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef})">
<summary>
Constructor
</summary>
<param name="children"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode.CreateTreeAsync(EpicGames.Horde.Storage.Nodes.LeafChunkedData,EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions,EpicGames.Horde.Storage.IBlobWriter,System.Threading.CancellationToken)">
<summary>
Create a tree of nodes from the given list of handles, splitting nodes in each layer based on the hash of the last node.
</summary>
<param name="leafChunkedData">List of leaf handles</param>
<param name="options">Options for splitting the tree</param>
<param name="writer">Output writer for new interior nodes</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the root node of the tree</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode.CreateTreeAsync(System.Collections.Generic.List{EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef},EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions,EpicGames.Horde.Storage.IBlobWriter,System.Threading.CancellationToken)">
<summary>
Create a tree of nodes from the given list of handles, splitting nodes in each layer based on the hash of the last node.
</summary>
<param name="nodeRefs">List of leaf nodes</param>
<param name="chunkingOptions">Options for splitting the tree</param>
<param name="writer">Output writer for new interior nodes</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the root node of the tree</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode.CreateTreeLayer(System.Collections.Generic.List{EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef},EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions,System.Collections.Generic.List{System.ValueTuple{EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode,System.Int64}})">
<summary>
Split a list of leaf handles into a layer of interior nodes
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode.CopyToStreamAsync(System.IO.Stream,EpicGames.Horde.Storage.BlobSerializerOptions,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode.CopyToStreamAsync(EpicGames.Horde.Storage.BlobData,System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Copy the contents of the node to the output stream without creating the intermediate FileNodes
</summary>
<param name="nodeData">Source data</param>
<param name="outputStream">The output stream to receive the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeConverter">
<summary>
Converter for interior node types
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeConverter.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeConverter.#ctor(EpicGames.Horde.HordeApiVersion)">
<summary>
Constructor
</summary>
<param name="writeVersion">Version number for serialized data</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeConverter.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeConverter.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNode,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeConverter.GetBlobType(EpicGames.Horde.HordeApiVersion)">
<summary>
Gets the blob type for a particular Horde api version
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.ChunkingOptions">
<summary>
Options for creating file nodes
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkingOptions.LeafOptions">
<summary>
Options for creating leaf nodes
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkingOptions.InteriorOptions">
<summary>
Options for creating interior nodes
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkingOptions.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions">
<summary>
Options for creating a specific type of file nodes
</summary>
<param name="MinSize">Minimum chunk size</param>
<param name="MaxSize">Maximum chunk size. Chunks will be split on this boundary if another match is not found.</param>
<param name="TargetSize">Target chunk size for content-slicing</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Options for creating a specific type of file nodes
</summary>
<param name="MinSize">Minimum chunk size</param>
<param name="MaxSize">Maximum chunk size. Chunks will be split on this boundary if another match is not found.</param>
<param name="TargetSize">Target chunk size for content-slicing</param>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions.MinSize">
<summary>Minimum chunk size</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions.MaxSize">
<summary>Maximum chunk size. Chunks will be split on this boundary if another match is not found.</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions.TargetSize">
<summary>Target chunk size for content-slicing</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions.Default">
<summary>
Default settings
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions.WindowSize">
<summary>
Window size to use when scanning for split points
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions.Threshold">
<summary>
Accessor for the BuzHash chunking threshold
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions.#ctor(System.Int32)">
<summary>
Constructor
</summary>
<param name="size">Fixed size chunks to use</param>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter">
<summary>
Utility class for generating FileNode data directly into <see cref="T:EpicGames.Horde.Storage.IBlobWriter"/> instances, without constructing node representations first.
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.DefaultBufferLength">
<summary>
Default buffer length when calling CreateAsync/AppendAsync
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.Length">
<summary>
Length of the file so far
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.#ctor(EpicGames.Horde.Storage.IBlobWriter)">
<summary>
Constructor
</summary>
<param name="leafNodeWriter">Writer for new nodes</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.#ctor(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions)">
<summary>
Constructor
</summary>
<param name="leafNodeWriter">Writer for new nodes</param>
<param name="leafChunkOptions">Chunking options</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.Reset">
<summary>
Reset the current state
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.ResetLeafState">
<summary>
Resets the state of the current leaf node
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.CreateAsync(System.IO.FileInfo,System.Threading.CancellationToken)">
<summary>
Creates data for the given file
</summary>
<param name="fileInfo">File to append</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.CreateAsync(System.IO.FileInfo,System.Int32,System.Threading.CancellationToken)">
<summary>
Creates data for the given file
</summary>
<param name="fileInfo">File to append</param>
<param name="bufferLength">Size of the read buffer</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.CreateAsync(System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Creates data from the given stream
</summary>
<param name="stream">Stream to append</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.CreateAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
<summary>
Creates data from the given stream
</summary>
<param name="stream">Stream to append</param>
<param name="bufferLength">Size of the read buffer</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.CreateAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Creates data from the given data
</summary>
<param name="data">Stream to append</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.AppendAsync(System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Appends data to the current file
</summary>
<param name="stream">Stream containing data to append</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.AppendAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
<summary>
Appends data to the current file
</summary>
<param name="stream">Stream containing data to append</param>
<param name="bufferLength">Size of the read buffer</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.AppendAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Appends data to the current file
</summary>
<param name="data">Data to append</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.AppendToLeafNode(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte},System.UInt32@,EpicGames.Horde.Storage.Nodes.LeafChunkedDataNodeOptions)">
<summary>
Determines how much data to append to an existing leaf node
</summary>
<param name="currentData">Current data in the leaf node</param>
<param name="appendData">Data to be appended</param>
<param name="rollingHash">Current BuzHash of the data</param>
<param name="options">Options for chunking the data</param>
<returns>The number of bytes to append</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.CompleteAsync(System.Threading.CancellationToken)">
<summary>
Complete the current file, and write all open nodes to the underlying writer
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the root node</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.LeafChunkedDataWriter.FlushLeafNodeAsync(System.Threading.CancellationToken)">
<summary>
Writes the contents of the current leaf node to storage
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the written leaf node</returns>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.ChunkedData">
<summary>
Describes a chunked data stream
</summary>
<param name="StreamHash">Hash of the stream as a contiguous buffer</param>
<param name="Root">Handle to the root chunk containing the data</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedData.#ctor(EpicGames.Core.IoHash,EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef)">
<summary>
Describes a chunked data stream
</summary>
<param name="StreamHash">Hash of the stream as a contiguous buffer</param>
<param name="Root">Handle to the root chunk containing the data</param>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkedData.StreamHash">
<summary>Hash of the stream as a contiguous buffer</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkedData.Root">
<summary>Handle to the root chunk containing the data</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter">
<summary>
Writes chunked data to an output writer
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.Length">
<summary>
Length of the current stream
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.#ctor(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.Reset">
<summary>
Reset the current state
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.CreateAsync(System.IO.FileInfo,System.Threading.CancellationToken)">
<summary>
Creates data for the given file
</summary>
<param name="fileInfo">File to append</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.CreateAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Creates data from the given data
</summary>
<param name="data">Stream to append</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.AppendAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Appends data to the current file
</summary>
<param name="data">Data to append</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.CompleteAsync(System.Threading.CancellationToken)">
<summary>
Complete the current file, and write all open nodes to the underlying writer
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the root node</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ChunkedDataWriter.FlushAsync(System.Threading.CancellationToken)">
<summary>
Complete the current file, and write all open nodes to the underlying writer
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Handle to the root node</returns>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.CommitNode">
<summary>
A node representing commit metadata
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.BlobTypeGuid">
<summary>
Static accessor for the blob type guid
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.Number">
<summary>
The commit number
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.Parent">
<summary>
Reference to the parent commit
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.Author">
<summary>
Human readable name of the author of this change
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.AuthorId">
<summary>
Optional unique identifier for the author. May be an email address, user id, etc...
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.Committer">
<summary>
Human readable name of the committer of this change
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.CommitterId">
<summary>
Optional unique identifier for the committer. May be an email address, user id, etc...
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.Message">
<summary>
Message for this commit
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.Time">
<summary>
Time that this commit was created
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.Contents">
<summary>
Contents of the tree at this commit
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.CommitNode.Metadata">
<summary>
Metadata for this commit, keyed by arbitrary GUID
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.CommitNode.#ctor(System.Int32,EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Storage.Nodes.CommitNode},System.String,System.String,System.String,System.String,System.String,System.DateTime,EpicGames.Horde.Storage.Nodes.DirectoryNodeRef,System.Collections.Generic.Dictionary{System.Guid,EpicGames.Horde.Storage.IHashedBlobRef})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.CommitNodeConverter.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.CommitNode,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DdcRefNode">
<summary>
A node containing ref data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DdcRefNode.BlobTypeGuid">
<summary>
Static accessor for the blob type guid
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DdcRefNode.RootHash">
<summary>
Hash of the root node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DdcRefNode.References">
<summary>
References to attachments. We embed this in the ref node to ensure any aliased blobs have a hard reference from the root.
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DdcRefNode.#ctor(EpicGames.Core.IoHash)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DdcRefNode.#ctor(EpicGames.Core.IoHash,System.Collections.Generic.IEnumerable{EpicGames.Horde.Storage.IHashedBlobRef})">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryFlags">
<summary>
Flags for a directory node
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.DirectoryFlags.None">
<summary>
No flags specified
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryNode">
<summary>
A directory node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNode.BlobTypeGuid">
<summary>
Type of serialized directory node blobs
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNode.Length">
<summary>
Total size of this directory
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNode.Flags">
<summary>
Flags for this directory
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNode.Files">
<summary>
All the files within this directory
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNode.NameToFile">
<summary>
Map of name to file entry
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNode.Directories">
<summary>
All the subdirectories within this directory
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNode.NameToDirectory">
<summary>
Map of name to file entry
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.#ctor(EpicGames.Horde.Storage.Nodes.DirectoryFlags)">
<summary>
Constructor
</summary>
<param name="flags"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.Clear">
<summary>
Clear the contents of this directory
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.Contains(System.String)">
<summary>
Check whether an entry with the given name exists in this directory
</summary>
<param name="name">Name of the entry to search for</param>
<returns>True if the entry exists</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.AddFile(EpicGames.Horde.Storage.Nodes.FileEntry)">
<summary>
Adds a new file entry to this directory
</summary>
<param name="entry">The entry to add</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.AddFile(System.String,EpicGames.Horde.Storage.Nodes.FileEntryFlags,System.Int64,EpicGames.Horde.Storage.Nodes.ChunkedData)">
<summary>
Adds a new file with the given name
</summary>
<param name="name">Name of the new directory</param>
<param name="flags">Flags for the new file</param>
<param name="length">Length of the file</param>
<param name="data">Chunked data for the file</param>
<returns>The new directory object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.GetFileEntry(System.String)">
<summary>
Attempts to get a file entry with the given name
</summary>
<param name="name">Name of the file</param>
<returns>Entry for the given name</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.TryGetFileEntry(System.String,EpicGames.Horde.Storage.Nodes.FileEntry@)">
<summary>
Attempts to get a file entry with the given name
</summary>
<param name="name">Name of the file</param>
<param name="entry">Entry for the file</param>
<returns>True if the file was found</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.OpenFile(System.String)">
<summary>
Opens a file for reading
</summary>
<param name="name">Name of the file to open</param>
<returns>Stream for the file</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.TryOpenFile(System.String)">
<summary>
Attempts to open a file for reading
</summary>
<param name="name">Name of the file</param>
<returns>File stream, or null if the file does not exist</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.DeleteFile(System.String)">
<summary>
Deletes the file entry with the given name
</summary>
<param name="name">Name of the entry to delete</param>
<returns>True if the entry was found, false otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.GetFileEntryByPathAsync(System.String,System.Threading.CancellationToken)">
<summary>
Attempts to get a file entry from a path
</summary>
<param name="path">Path to the directory</param>
<param name="cancellationToken">Cancellation token</param>
<returns>The directory with the given path, or null if it was not found</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.GetDirectoryByPathAsync(System.String,System.Threading.CancellationToken)">
<summary>
Attempts to get a directory entry from a path
</summary>
<param name="path">Path to the directory</param>
<param name="cancellationToken">Cancellation token</param>
<returns>The directory with the given path, or null if it was not found</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.DeleteFileByPathAsync(System.String,System.Threading.CancellationToken)">
<summary>
Deletes a file with the given path
</summary>
<param name="path"></param>
<param name="cancellationToken"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.AddDirectory(EpicGames.Horde.Storage.Nodes.DirectoryEntry)">
<summary>
Adds a new directory with the given name
</summary>
<param name="entry">Name of the new directory</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.GetDirectoryEntry(System.String)">
<summary>
Get a directory entry with the given name
</summary>
<param name="name">Name of the directory</param>
<returns>The entry with the given name</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.TryGetDirectoryEntry(System.String,EpicGames.Horde.Storage.Nodes.DirectoryEntry@)">
<summary>
Attempts to get a directory entry with the given name
</summary>
<param name="name">Name of the directory</param>
<param name="entry">Entry for the directory</param>
<returns>True if the directory was found</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.OpenDirectoryAsync(System.String,System.Threading.CancellationToken)">
<summary>
Tries to get a directory with the given name
</summary>
<param name="name">Name of the new directory</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The new directory object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.TryOpenDirectoryAsync(System.String,System.Threading.CancellationToken)">
<summary>
Tries to get a directory with the given name
</summary>
<param name="name">Name of the new directory</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The new directory object</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNode.DeleteDirectory(System.String)">
<summary>
Deletes the file entry with the given name
</summary>
<param name="name">Name of the entry to delete</param>
<returns>True if the entry was found, false otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeConverter.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeConverter.#ctor(EpicGames.Horde.HordeApiVersion)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeConverter.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeConverter.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.DirectoryNode,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryNodeRef">
<summary>
Reference to a directory node, including the target hash and length
</summary>
<param name="Length">Sum total of all the file lengths in this directory tree</param>
<param name="Handle">Handle to the target node</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeRef.#ctor(System.Int64,EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode})">
<summary>
Reference to a directory node, including the target hash and length
</summary>
<param name="Length">Sum total of all the file lengths in this directory tree</param>
<param name="Handle">Handle to the target node</param>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNodeRef.Length">
<summary>Sum total of all the file lengths in this directory tree</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNodeRef.Handle">
<summary>Handle to the target node</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryEntry">
<summary>
Entry for a directory within a directory node
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryEntry.#ctor(System.String,System.Int64,EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode})">
<summary>
Entry for a directory within a directory node
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.IExtractStats">
<summary>
Stats reported for copy operations
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.IExtractStats.NumFiles">
<summary>
Number of files that have been copied
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.IExtractStats.ExtractSize">
<summary>
Total size of data to be copied
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.IExtractStats.ExtractRate">
<summary>
Processing speed, in bytes per second
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.IExtractStats.DownloadSize">
<summary>
Total size of the data downloaded
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.IExtractStats.DownloadRate">
<summary>
Download speed, in bytes per second
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.ExtractStatsLogger">
<summary>
Progress logger for writing copy stats
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractStatsLogger.ShowDownloadStats">
<summary>
Whether to print out separate stats for download speed
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ExtractStatsLogger.#ctor(Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ExtractStatsLogger.#ctor(System.Int32,System.Int64,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ExtractStatsLogger.Report(EpicGames.Horde.Storage.Nodes.IExtractStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.ExtractOptions">
<summary>
Options for extracting data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.NumReadTasks">
<summary>
Number of async tasks to spawn for reading
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.DefaultNumReadTasks">
<summary>
Default number of read tasks to use
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.NumDecodeTasks">
<summary>
Number of async tasks to spawn for decoding data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.DefaultNumDecodeTasks">
<summary>
Default number of decode tasks to use
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.NumWriteTasks">
<summary>
Number of async tasks to spawn for writing output
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.ExtractOptions.DefaultNumWriteTasks(System.Int64)">
<summary>
Default number of write tasks to use
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.Progress">
<summary>
Output for progress updates
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.ProgressUpdateFrequency">
<summary>
Frequency that the progress object is updated
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.VerifyOutput">
<summary>
Whether to hash downloaded data to ensure it's correct
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.ExtractOptions.VerboseOutput">
<summary>
Output verbose logging about operations being performed
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryNodeExtract">
<summary>
Extension methods for extracting data from directory nodes
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeExtract.ExtractAsync(EpicGames.Horde.Storage.IBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode},System.IO.DirectoryInfo,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Utility function to allow extracting a packed directory to disk
</summary>
<param name="directoryRef">Directory to update</param>
<param name="directoryInfo"></param>
<param name="logger"></param>
<param name="cancellationToken"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeExtract.ExtractAsync(EpicGames.Horde.Storage.IBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode},System.IO.DirectoryInfo,System.IProgress{EpicGames.Horde.Storage.Nodes.IExtractStats},Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Utility function to allow extracting a packed directory to disk
</summary>
<param name="directoryRef">Directory to extract</param>
<param name="directoryInfo">Direcotry to write to</param>
<param name="progress">Sink for progress updates</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeExtract.ExtractAsync(EpicGames.Horde.Storage.IBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode},System.IO.DirectoryInfo,System.IProgress{EpicGames.Horde.Storage.Nodes.IExtractStats},System.TimeSpan,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Utility function to allow extracting a packed directory to disk
</summary>
<param name="directoryRef">Directory to extract</param>
<param name="directoryInfo">Direcotry to write to</param>
<param name="progress">Sink for progress updates</param>
<param name="frequency">Frequency for progress updates</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeExtract.ExtractAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,System.IO.DirectoryInfo,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Utility function to allow extracting a packed directory to disk
</summary>
<param name="directoryNode">Directory to extract</param>
<param name="directoryInfo">Direcotry to write to</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeExtract.ExtractAsync(EpicGames.Horde.Storage.IBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode},System.IO.DirectoryInfo,EpicGames.Horde.Storage.Nodes.ExtractOptions,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Utility function to allow extracting a packed directory to disk
</summary>
<param name="directoryRef">Directory to extract</param>
<param name="directoryInfo">Direcotry to write to</param>
<param name="options">Options for the download</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeExtract.ExtractAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,System.IO.DirectoryInfo,EpicGames.Horde.Storage.Nodes.ExtractOptions,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Utility function to allow extracting a packed directory to disk
</summary>
<param name="directoryNode">Directory to extract</param>
<param name="directoryInfo">Direcotry to write to</param>
<param name="options">Options for the download</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.IUpdateStats">
<summary>
Stats reported for copy operations
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.IUpdateStats.Count">
<summary>
Number of files that have been copied
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.IUpdateStats.Size">
<summary>
Total size of data to be copied
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.IUpdateStats.Rate">
<summary>
Processing speed, in bytes per second
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.UpdateStats">
<summary>
Reports progress info back to callers
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.UpdateStatsLogger">
<summary>
Progress logger for writing copy stats
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.UpdateStatsLogger.#ctor(Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.UpdateStatsLogger.#ctor(System.Int32,System.Int64,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.UpdateStatsLogger.Report(EpicGames.Horde.Storage.Nodes.IUpdateStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.FileUpdate">
<summary>
Describes an update to a file in a directory tree
</summary>
<param name="Path">Path to the file</param>
<param name="Length">Length of the file data</param>
<param name="ModTime">Last modified time for the file</param>
<param name="Flags">Flags for the new file entry</param>
<param name="StreamHash">Hash of the entire stream</param>
<param name="Nodes">Chunked data for the file</param>
<param name="CustomData"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileUpdate.#ctor(System.String,EpicGames.Horde.Storage.Nodes.FileEntryFlags,System.Int64,EpicGames.Core.IoHash,System.Collections.Generic.List{EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef},System.DateTime,System.ReadOnlyMemory{System.Byte})">
<summary>
Describes an update to a file in a directory tree
</summary>
<param name="Path">Path to the file</param>
<param name="Length">Length of the file data</param>
<param name="ModTime">Last modified time for the file</param>
<param name="Flags">Flags for the new file entry</param>
<param name="StreamHash">Hash of the entire stream</param>
<param name="Nodes">Chunked data for the file</param>
<param name="CustomData"></param>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileUpdate.Path">
<summary>Path to the file</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileUpdate.Flags">
<summary>Flags for the new file entry</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileUpdate.Length">
<summary>Length of the file data</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileUpdate.StreamHash">
<summary>Hash of the entire stream</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileUpdate.Nodes">
<summary>Chunked data for the file</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileUpdate.ModTime">
<summary>Last modified time for the file</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileUpdate.CustomData">
<summary></summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileUpdate.#ctor(System.String,EpicGames.Horde.Storage.Nodes.FileEntryFlags,System.Int64,EpicGames.Horde.Storage.Nodes.ChunkedData,System.DateTime,System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileUpdate.#ctor(System.String,EpicGames.Horde.Storage.Nodes.FileEntryFlags,System.Int64,EpicGames.Horde.Storage.Nodes.LeafChunkedData,System.DateTime,System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileUpdate.WriteInteriorNodesAsync(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions,System.Threading.CancellationToken)">
<summary>
Writes interior node data to the given writer
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryUpdate">
<summary>
Describes an update to a directory node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryUpdate.Directories">
<summary>
Directories to be updated
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryUpdate.Files">
<summary>
Files to be updated
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryUpdate.Clear">
<summary>
Reset this instance
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryUpdate.AddFile(System.String,EpicGames.Horde.Storage.Nodes.FileUpdate)">
<summary>
Adds a file by path to this object
</summary>
<param name="path">Path to add to</param>
<param name="fileUpdate">Content for the file</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryUpdate.AddFile(System.String,EpicGames.Horde.Storage.Nodes.FileEntryFlags,System.Int64,EpicGames.Horde.Storage.Nodes.LeafChunkedData,System.DateTime,System.ReadOnlyMemory{System.Byte})">
<summary>
Adds a file to the tree
</summary>
<param name="path">Path to the file</param>
<param name="flags">Flags for the new file entry</param>
<param name="length">Length of the file</param>
<param name="modTime">Last modified time for the file</param>
<param name="chunkedData">Chunked data instance</param>
<param name="customData"></param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryUpdate.AddFiles(System.Collections.Generic.IEnumerable{EpicGames.Horde.Storage.Nodes.FileUpdate})">
<summary>
Adds a filtered list of files from disk
</summary>
<param name="files">Files to add</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryUpdate.WriteInteriorNodesAsync(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.InteriorChunkedDataNodeOptions,System.Threading.CancellationToken)">
<summary>
Writes interior node data to the given writer
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions">
<summary>
Extension methods for directory node updates
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.WriteFilesAsync(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Core.DirectoryReference,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)">
<summary>
Writes a tree of files to a storage writer
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.WriteFilesAsync(EpicGames.Horde.Storage.IBlobWriter,System.IO.DirectoryInfo,System.Collections.Generic.IReadOnlyList{System.IO.FileInfo},EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)">
<summary>
Writes a tree of files to a storage writer
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.WriteFilesAsync(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Core.DirectoryReference,System.Collections.Generic.IReadOnlyList{EpicGames.Core.FileReference},EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)">
<summary>
Writes a tree of files to a storage writer
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.AddFilesAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,System.IO.DirectoryInfo,EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.AddFilesAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,EpicGames.Core.DirectoryReference,System.Collections.Generic.IEnumerable{System.IO.FileInfo},EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)"/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.AddFilesAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,EpicGames.Core.DirectoryReference,System.Collections.Generic.IEnumerable{EpicGames.Core.FileReference},EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.AddFilesAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,EpicGames.Core.DirectoryReference,System.Collections.Generic.IEnumerable{System.IO.FileInfo},EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)"/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.AddFilesAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,System.IO.DirectoryInfo,System.Collections.Generic.IEnumerable{System.IO.FileInfo},EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.AddFilesAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,EpicGames.Core.DirectoryReference,System.Collections.Generic.IEnumerable{System.IO.FileInfo},EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)"/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.UpdateAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,System.Collections.Generic.IEnumerable{EpicGames.Horde.Storage.Nodes.FileUpdate},EpicGames.Horde.Storage.IBlobWriter,System.Threading.CancellationToken)">
<summary>
Updates this tree of directory objects
</summary>
<param name="directoryNode">Directory to update</param>
<param name="updates">Files to add</param>
<param name="writer">Writer for new node data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.UpdateAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,EpicGames.Horde.Storage.Nodes.DirectoryUpdate,EpicGames.Horde.Storage.IBlobWriter,System.Threading.CancellationToken)">
<summary>
Updates this tree of directory objects
</summary>
<param name="directoryNode">Directory to update</param>
<param name="update">Files to add</param>
<param name="writer">Writer for new node data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.AddFilesAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,EpicGames.Core.DirectoryReference,System.Collections.Generic.IEnumerable{System.IO.FileInfo},EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.IProgress{EpicGames.Horde.Storage.Nodes.IUpdateStats},System.Threading.CancellationToken)">
<summary>
Adds files from a directory to the storage
</summary>
<param name="directoryNode">Directory to add to</param>
<param name="baseDir">Base directory to base paths relative to</param>
<param name="files">Files to add</param>
<param name="options">Options for chunking file content</param>
<param name="writer">Writer for new node data</param>
<param name="progress">Feedback interface for progress updates</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeUpdateExtensions.CopyFromZipStreamAsync(EpicGames.Horde.Storage.Nodes.DirectoryNode,System.IO.Stream,EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.ChunkingOptions,System.Threading.CancellationToken)">
<summary>
Copies entries from a zip file
</summary>
<param name="directoryNode">Directory to update</param>
<param name="stream">Input stream</param>
<param name="writer">Writer for new nodes</param>
<param name="options"></param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream">
<summary>
Stream which zips a directory node tree dynamically
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.CanRead">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.CanSeek">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.CanWrite">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.Length">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.Position">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.#ctor(EpicGames.Horde.Storage.IBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode},EpicGames.Core.FileFilter,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="node">Root node to copy from</param>
<param name="filter">Filter for files to include in the zip</param>
<param name="logger">Optional logger for debug tracing</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.Dispose(System.Boolean)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.ReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.Flush">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.SetLength(System.Int64)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStreamExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStream"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.DirectoryNodeZipStreamExtensions.AsZipStream(EpicGames.Horde.Storage.IBlobRef{EpicGames.Horde.Storage.Nodes.DirectoryNode},EpicGames.Core.FileFilter,Microsoft.Extensions.Logging.ILogger)">
<summary>
Returns a stream containing the zipped contents of this directory
</summary>
<param name="directoryRef">The directory to zip</param>
<param name="filter">Filter for files to include in the zip</param>
<param name="logger">Logger for diagnostic output</param>
<returns>Stream containing zipped archive data</returns>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.FileEntryFlags">
<summary>
Flags for a file entry
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.FileEntryFlags.None">
<summary>
No other flags set
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.FileEntryFlags.Executable">
<summary>
Indicates that the referenced file is executable
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.FileEntryFlags.ReadOnly">
<summary>
File should be stored as read-only
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.FileEntryFlags.Text">
<summary>
File contents are utf-8 encoded text. Client may want to replace line-endings with OS-specific format.
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.FileEntryFlags.HasCustomData">
<summary>
Used to indicate that custom data is included in the output. Used internally for serialization; not exposed to users.
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.FileEntryFlags.Utf16">
<summary>
File should be materialized as UTF-16 (but is stored as a UTF-8 source)
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Nodes.FileEntryFlags.HasModTime">
<summary>
Whether the file entry includes a modification time
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.FileEntry">
<summary>
Entry for a file within a directory node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntry.Name">
<summary>
Name of this file
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntry.Flags">
<summary>
Flags for this file
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntry.Length">
<summary>
Length of this entry
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntry.StreamHash">
<summary>
Hash of the file as a contiguous stream. This differs from individual node hashes which hash the Merkle tree of chunks forming it.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntry.Target">
<summary>
Reference to the chunked data for the file
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntry.ModTime">
<summary>
Last modified time. Only valid if FileEntryFlags.HasModTime is set.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntry.CustomData">
<summary>
Custom user data for this file entry
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntry.#ctor(System.String,EpicGames.Horde.Storage.Nodes.FileEntryFlags,System.Int64,EpicGames.Horde.Storage.Nodes.ChunkedData,System.DateTime,System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntry.#ctor(System.String,EpicGames.Horde.Storage.Nodes.FileEntryFlags,System.Int64,EpicGames.Core.IoHash,EpicGames.Horde.Storage.Nodes.ChunkedDataNodeRef,System.DateTime,System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntry.OpenAsStream">
<summary>
Creates a stream that returns the contents of this file
</summary>
<returns>The content stream</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntry.CopyToStreamAsync(System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Copies the contents of this node and its children to the given output stream
</summary>
<param name="outputStream">The output stream to receive the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntry.CopyToFileAsync(System.IO.FileInfo,System.Threading.CancellationToken)">
<summary>
Extracts the contents of this node to a file
</summary>
<param name="file">File to write with the contents of this node</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntry.GetPermissions(System.IO.FileInfo)">
<summary>
Get the permission flags from a file on disk
</summary>
<param name="fileInfo">File to check</param>
<returns>Permission flags for the given file</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntry.SetPermissions(System.IO.FileInfo,EpicGames.Horde.Storage.Nodes.FileEntryFlags)">
<summary>
Applies the correct permissions to a file for a particular set of file entry flags
</summary>
<param name="fileInfo">File to modify</param>
<param name="flags">Flags for the file</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntry.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.FileEntryContentStream">
<summary>
Stream which returns the content of a file
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.CanRead">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.CanSeek">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.CanWrite">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.Length">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.Position">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.#ctor(EpicGames.Horde.Storage.Nodes.FileEntry)">
<summary>
Constructor
</summary>
<param name="entry">The file entry to copy from</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.ReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.Flush">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.SetLength(System.Int64)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.FileEntryContentStream.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.RedirectNode">
<summary>
Shared definitions for <see cref="T:EpicGames.Horde.Storage.Nodes.RedirectNode`1"/>
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.RedirectNode.BlobTypeGuid">
<summary>
Static accessor for the blob type guid
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Nodes.RedirectNode`1">
<summary>
A node containing arbitrary compact binary data
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Nodes.RedirectNode`1.Target">
<summary>
The target handle
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.RedirectNode`1.#ctor(EpicGames.Horde.Storage.IHashedBlobRef{`0})">
<summary>
Constructor
</summary>
<param name="handle">Target node for the redirect</param>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.RedirectNodeConverter`1.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Nodes.RedirectNodeConverter`1.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Storage.Nodes.RedirectNode{`0},EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectKey">
<summary>
Path to an object within an <see cref="T:EpicGames.Horde.Storage.IObjectStore"/>. Object keys are normalized to lowercase, and may consist of the characters [a-z0-9_./].
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectKey.Validate">
<summary>
Dummy enum to allow invoking the constructor which takes a sanitized full path
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.ObjectKey.Validate.None">
<summary>
Dummy value
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ObjectKey.Path">
<summary>
Accessor for the internal path string
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="path">Path to the blob. The meaning of this string is implementation defined.</param>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.#ctor(EpicGames.Core.Utf8String)">
<summary>
Constructor
</summary>
<param name="path">Path to the blob. The meaning of this string is implementation defined.</param>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.#ctor(EpicGames.Core.Utf8String,EpicGames.Horde.Storage.ObjectKey.Validate)">
<summary>
Constructor
</summary>
<param name="path">Path to the blob. The meaning of this string is implementation defined.</param>
<param name="validate"></param>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.Sanitize(EpicGames.Core.Utf8String)">
<summary>
Makes an object key from the given path
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.IsValid">
<summary>
Whether the blob locator is valid
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.Equals(EpicGames.Horde.Storage.ObjectKey)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.op_Equality(EpicGames.Horde.Storage.ObjectKey,EpicGames.Horde.Storage.ObjectKey)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectKey.op_Inequality(EpicGames.Horde.Storage.ObjectKey,EpicGames.Horde.Storage.ObjectKey)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectStores.FileObjectStore">
<summary>
Storage backend that utilizes the local filesystem
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.BaseDir">
<summary>
Accessor for the base directory
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.#ctor(EpicGames.Core.DirectoryReference,EpicGames.Core.MemoryMappedFileCache)">
<summary>
Constructor
</summary>
<param name="baseDir">Base directory for the store</param>
<param name="mappedFileCache">Cache for memory mapped files</param>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.GetBlobFile(EpicGames.Horde.Storage.ObjectKey)">
<summary>
Gets the path for storing a file on disk
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.OpenAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.Read(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32})">
<summary>
Maps a file into memory for reading, and returns a handle to it
</summary>
<param name="key">Path to the file</param>
<param name="offset">Offset of the data to retrieve</param>
<param name="length">Length of the data</param>
<returns>Handle to the data. Must be disposed by the caller.</returns>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.ReadAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.WriteAsync(EpicGames.Horde.Storage.ObjectKey,System.IO.Stream,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.ExistsAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.GetSizeAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.Delete(EpicGames.Horde.Storage.ObjectKey)">
<summary>
Delete a file from the store
</summary>
<param name="key"></param>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.DeleteAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.TryGetReadRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.TryGetWriteRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStore.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectStores.FileObjectStoreFactory">
<summary>
Storage backend that utilizes the local filesystem
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStoreFactory.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStoreFactory.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.FileObjectStoreFactory.CreateStore(EpicGames.Core.DirectoryReference)">
<summary>
Create a new store instance with the given base directory
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore">
<summary>
Implements an object store utilizing standard HTTP operations
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.#ctor(System.Uri,System.Func{System.Net.Http.HttpClient})">
<summary>
Constructor
</summary>
<param name="baseUrl">Base url for the store</param>
<param name="createHttpClient">Method for creating a new http client</param>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.DeleteAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.ExistsAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.GetSizeAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.OpenAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.ReadAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.TryGetReadRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.TryGetWriteRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.HttpObjectStore.WriteAsync(EpicGames.Horde.Storage.ObjectKey,System.IO.Stream,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore">
<summary>
In-memory implementation of a storage backend
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.Blobs">
<summary>
Read only access to the stored blobs
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.OpenAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.ReadAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.WriteAsync(EpicGames.Horde.Storage.ObjectKey,System.IO.Stream,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.ExistsAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.GetSizeAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.DeleteAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.TryGetReadRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.TryGetWriteRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.MemoryObjectStore.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore">
<summary>
Storage backend wrapper which adds a prefix to the start of each item
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.#ctor(System.String,EpicGames.Horde.Storage.IObjectStore)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.DeleteAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.ExistsAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.GetSizeAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.OpenAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.ReadAsync(EpicGames.Horde.Storage.ObjectKey,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.TryGetReadRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.TryGetWriteRedirectAsync(EpicGames.Horde.Storage.ObjectKey,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.WriteAsync(EpicGames.Horde.Storage.ObjectKey,System.IO.Stream,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectStores.PrefixedObjectStore.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.RefName">
<summary>
Identifier for a ref in the storage system. Refs serve as GC roots, and are persistent entry points to expanding data structures within the store.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.RefName.Empty">
<summary>
Empty ref name
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.RefName.Text">
<summary>
String for the ref name
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="text"></param>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.#ctor(EpicGames.Core.Utf8String)">
<summary>
Constructor
</summary>
<param name="text"></param>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.ValidatePathArgument(System.ReadOnlySpan{System.Byte},System.String)">
<summary>
Validates a given string as a blob id
</summary>
<param name="text">String to validate</param>
<param name="argumentName">Name of the argument</param>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.Equals(EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.CompareTo(EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.op_Equality(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.op_Inequality(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.op_LessThan(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.op_LessThanOrEqual(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.op_GreaterThan(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.op_GreaterThanOrEqual(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefName.op_Implicit(System.String)~EpicGames.Horde.Storage.RefName">
<summary>
Construct a ref from a string
</summary>
<param name="name">Name of the ref</param>
</member>
<member name="T:EpicGames.Horde.Storage.RefNameJsonConverter">
<summary>
Type converter for IoHash to and from JSON
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.RefNameJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefNameJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Storage.RefName,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.RefNameTypeConverter">
<summary>
Type converter from strings to IoHash objects
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.RefNameTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefNameTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.RefNameCbConverter">
<summary>
Type converter to compact binary
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.RefNameCbConverter.Read(EpicGames.Serialization.CbField)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefNameCbConverter.Write(EpicGames.Serialization.CbWriter,EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.RefNameCbConverter.WriteNamed(EpicGames.Serialization.CbWriter,EpicGames.Serialization.CbFieldName,EpicGames.Horde.Storage.RefName)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.StorageBackendCache">
<summary>
Implementation of a local disk cache which can be shared by multiple backends
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.#ctor(EpicGames.Core.DirectoryReference,System.Nullable{System.Int64})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.#ctor(EpicGames.Core.DirectoryReference,System.Nullable{System.Int64},Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="cacheDir">Directory to storage cache files. Will be cleared on startup. Defaults to a randomly generated directory in the users's temp folder.</param>
<param name="maxSize">Maximum size of the cache. Defaults to 50mb.</param>
<param name="logger">Logger for error/warning messages</param>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.CreateWrapper(System.String,EpicGames.Horde.Storage.IObjectStore)">
<summary>
Wraps an onject store in another store that routes requests through the cache
</summary>
<param name="keyPrefix">Prefix for items in this cache</param>
<param name="store">Backend to wrap</param>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.CreateWrapper(System.String,EpicGames.Horde.Storage.IStorageBackend)">
<summary>
Wraps a storage backend in another backend that routes requests through the cache
</summary>
<param name="keyPrefix">Prefix for items in this cache</param>
<param name="backend">Backend to wrap</param>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.CreateWrapper(System.String,EpicGames.Horde.Storage.IStorageBackend,EpicGames.Horde.Storage.StorageBackendCache)">
<summary>
Wraps a storage backend in another backend that routes requests through the cache
</summary>
<param name="keyPrefix">Prefix for items in this cache</param>
<param name="backend">Backend to wrap</param>
<param name="cache">The cache instance. May be null.</param>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.ReadAsync(EpicGames.Horde.Storage.ObjectKey,System.Func{System.Threading.CancellationToken,System.Threading.Tasks.Task{System.IO.Stream}},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.GetStats(EpicGames.Horde.Storage.StorageStats)">
<summary>
Get stats for the cache operation
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageBackendCache.WriteRefStats(Microsoft.Extensions.Logging.ILogger)">
<inheritdoc cref="M:EpicGames.Core.MemoryMappedFileCache.WriteRefStats(Microsoft.Extensions.Logging.ILogger)"/>
</member>
<member name="T:EpicGames.Horde.Storage.StorageException">
<summary>
Base exception for the storage service
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageException.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.StorageException.#ctor(System.String,System.Exception)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ObjectNotFoundException">
<summary>
Exception thrown when an object does not exist
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ObjectNotFoundException.Key">
<summary>
Path to the object
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectNotFoundException.#ctor(EpicGames.Horde.Storage.ObjectKey,System.Exception)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.ObjectNotFoundException.#ctor(EpicGames.Horde.Storage.ObjectKey,System.String,System.Exception)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.RefNameNotFoundException">
<summary>
Exception for a ref not existing
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.RefNameNotFoundException.Name">
<summary>
Name of the missing ref
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.RefNameNotFoundException.#ctor(EpicGames.Horde.Storage.RefName)">
<summary>
Constructor
</summary>
<param name="name"></param>
</member>
<member name="T:EpicGames.Horde.Storage.WriteBlobResponse">
<summary>
Response from uploading a bundle
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteBlobResponse.Blob">
<summary>
Path to the uploaded blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteBlobResponse.UploadUrl">
<summary>
URL to upload the blob to.
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteBlobResponse.SupportsRedirects">
<summary>
Flag for whether the client could use a redirect instead (ie. not post content to the server, and get an upload url back).
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.FindNodeResponse">
<summary>
Response object for finding an alias
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FindNodeResponse.Blob">
<summary>
Locator for the target blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FindNodeResponse.Rank">
<summary>
Rank of this alias
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FindNodeResponse.Data">
<summary>
Inline data associated with this alias
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FindNodeResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.FindNodeResponse.#ctor(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Byte[])">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.FindNodesResponse">
<summary>
Response object for searching for nodes with a given alias
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.FindNodesResponse.Nodes">
<summary>
Hash of the target node
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.UpdateMetadataRequest">
<summary>
Request to batch update metadata in the database
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.UpdateMetadataRequest.AddAliases">
<summary>
List of aliases to add
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.UpdateMetadataRequest.RemoveAliases">
<summary>
List of aliases to remove
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.UpdateMetadataRequest.AddRefs">
<summary>
List of refs to add
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.UpdateMetadataRequest.RemoveRefs">
<summary>
List of refs to remove
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.AddAliasRequest">
<summary>
Request object for adding an alias
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.AddAliasRequest.Name">
<summary>
Name of the alias
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.AddAliasRequest.Rank">
<summary>
Rank for the new alias
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.AddAliasRequest.Data">
<summary>
Data to store with the ref
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.AddAliasRequest.Target">
<summary>
Path to the target blob
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.RemoveAliasRequest">
<summary>
Request object for removing an alias
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.RemoveAliasRequest.Name">
<summary>
Name of the alias
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.RemoveAliasRequest.Target">
<summary>
Path to the target blob
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.WriteRefRequest">
<summary>
Request object for writing a ref
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteRefRequest.Hash">
<summary>
Hash of the target blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteRefRequest.Target">
<summary>
Path to the target blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteRefRequest.Blob">
<summary>
Locator for the target blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteRefRequest.ExportIdx">
<summary>
Export index for the ref
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteRefRequest.Data">
<summary>
Inline data associated with the ref
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WriteRefRequest.Options">
<summary>
Options for the ref
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.AddRefRequest">
<summary>
Request object for removing a ref
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.AddRefRequest.RefName">
<summary>
Name of the ref
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.RemoveRefRequest">
<summary>
Request object for removing a ref
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.RemoveRefRequest.RefName">
<summary>
Name of the ref
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.ReadRefResponse">
<summary>
Response object for reading a ref
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ReadRefResponse.Hash">
<summary>
Hash of the target node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ReadRefResponse.Target">
<summary>
The target blob
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ReadRefResponse.Link">
<summary>
Link to information about the target node
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.ReadRefResponse.BasePath">
<summary>
Base path for this storage backend
</summary>
</member>
<member name="T:EpicGames.Horde.Storage.Workspace">
<summary>
Provides functionality to extract and patch data in a local workspace
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Workspace.DefaultLayerFlag">
<summary>
Flag for the default layer
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Workspace.CacheLayerFlag">
<summary>
Flag for the cache layer
</summary>
</member>
<member name="F:EpicGames.Horde.Storage.Workspace.ReservedLayerFlags">
<summary>
Flags for user layers
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Workspace.RootDir">
<summary>
Root directory for the workspace
</summary>
</member>
<member name="P:EpicGames.Horde.Storage.Workspace.Layers">
<summary>
Layers current in this workspace
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.#ctor(EpicGames.Core.DirectoryReference,EpicGames.Core.FileReference,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="rootDir">Directory for the workspace</param>
<param name="stateFile">Path to the state file for this directory</param>
<param name="logger">Logger for diagnostic output</param>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.CreateAsync(EpicGames.Core.DirectoryReference,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Create a new workspace instance in the given location. Opens the existing instance if it already contains workspace data.
</summary>
<param name="rootDir">Root directory for the workspace</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Workspace instance</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.CreateOrOpenAsync(EpicGames.Core.DirectoryReference,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Create a new workspace instance in the given location. Opens the existing instance if it already contains workspace data.
</summary>
<param name="rootDir">Root directory for the workspace</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Workspace instance</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.TryOpenAsync(EpicGames.Core.DirectoryReference,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Attempts to open an existing workspace for the current directory.
</summary>
<param name="currentDir">Root directory for the workspace</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Workspace instance</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.TryFindAndOpenAsync(EpicGames.Core.DirectoryReference,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Attempts to open an existing workspace for the current directory.
</summary>
<param name="currentDir">Root directory for the workspace</param>
<param name="logger">Logger for output</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Workspace instance</returns>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.SaveAsync(System.Threading.CancellationToken)">
<summary>
Save the current state of the workspace
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.AddLayer(EpicGames.Horde.Storage.WorkspaceLayerId)">
<summary>
Add or update a layer with the given identifier
</summary>
<param name="id">Identifier for the layer</param>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.RemoveLayer(EpicGames.Horde.Storage.WorkspaceLayerId)">
<summary>
Removes a layer with the given identifier. Does not remove any files in the workspace.
</summary>
<param name="layerId">Layer to update</param>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.SyncAsync(EpicGames.Horde.Storage.WorkspaceLayerId,System.String,EpicGames.Horde.Storage.Nodes.DirectoryNode,System.Threading.CancellationToken)">
<summary>
Syncs a layer to the given contents
</summary>
<param name="layerId">Identifier for the layer</param>
<param name="basePath">Base path within the workspace to sync to.</param>
<param name="contents">New contents for the layer</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.SourceChunk.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.RefreshAsync(System.Threading.CancellationToken)">
<summary>
Updates the status of files in this workspace based on current filesystem metadata
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Storage.Workspace.VerifyAsync(System.Threading.CancellationToken)">
<summary>
Checks that all files within the workspace have the correct hash
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Storage.WorkspaceLayerId">
<summary>
Identifier for a workspace layer
</summary>
<param name="Id">Identifier for the layer</param>
</member>
<member name="M:EpicGames.Horde.Storage.WorkspaceLayerId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a workspace layer
</summary>
<param name="Id">Identifier for the layer</param>
</member>
<member name="P:EpicGames.Horde.Storage.WorkspaceLayerId.Id">
<summary>Identifier for the layer</summary>
</member>
<member name="P:EpicGames.Horde.Storage.WorkspaceLayerId.Default">
<summary>
Name of the default layer
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.WorkspaceLayerId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Storage.WorkspaceLayerIdConverter">
<summary>
Converter class to and from ObjectId values
</summary>
</member>
<member name="M:EpicGames.Horde.Storage.WorkspaceLayerIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Storage.WorkspaceLayerIdConverter.ToStringId(EpicGames.Horde.Storage.WorkspaceLayerId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Artifacts.ArtifactId">
<summary>
Unique id for an artifact
</summary>
<param name="Id">Identifier for the artifact</param>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Unique id for an artifact
</summary>
<param name="Id">Identifier for the artifact</param>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactId.Id">
<summary>Identifier for the artifact</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Artifacts.ArtifactIdConverter">
<summary>
Converter class to and from ObjectId values
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactIdConverter.ToBinaryId(EpicGames.Horde.Artifacts.ArtifactId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Artifacts.CreateArtifactRequest">
<summary>
Creates a new artifact
</summary>
<param name="Name">Name of the artifact</param>
<param name="Type">Additional search keys tagged on the artifact</param>
<param name="Description">Description for the artifact</param>
<param name="StreamId">Stream to create the artifact for</param>
<param name="Keys">Keys used to identify the artifact</param>
<param name="Metadata">Metadata for the artifact</param>
</member>
<member name="M:EpicGames.Horde.Artifacts.CreateArtifactRequest.#ctor(EpicGames.Horde.Artifacts.ArtifactName,EpicGames.Horde.Artifacts.ArtifactType,System.String,System.Nullable{EpicGames.Horde.Streams.StreamId},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String})">
<summary>
Creates a new artifact
</summary>
<param name="Name">Name of the artifact</param>
<param name="Type">Additional search keys tagged on the artifact</param>
<param name="Description">Description for the artifact</param>
<param name="StreamId">Stream to create the artifact for</param>
<param name="Keys">Keys used to identify the artifact</param>
<param name="Metadata">Metadata for the artifact</param>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactRequest.Name">
<summary>Name of the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactRequest.Type">
<summary>Additional search keys tagged on the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactRequest.Description">
<summary>Description for the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactRequest.StreamId">
<summary>Stream to create the artifact for</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactRequest.Keys">
<summary>Keys used to identify the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactRequest.Metadata">
<summary>Metadata for the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactRequest.Change">
<summary>
Legacy Perforce changelist number.
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactRequest.CommitId">
<summary>
Commit for the new artifact
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.CreateArtifactResponse">
<summary>
Information about a created artifact
</summary>
<param name="ArtifactId">Identifier for the new artifact</param>
<param name="CommitId">Resolved commit id for the artifact</param>
<param name="NamespaceId">Namespace that should be written to with artifact data</param>
<param name="RefName">Ref to write to</param>
<param name="PrevRefName">Ref for the artifact at the changelist prior to this one. Can be used to deduplicate against.</param>
<param name="Token">Token which can be used to upload blobs for the artifact, and read blobs from the previous artifact</param>
</member>
<member name="M:EpicGames.Horde.Artifacts.CreateArtifactResponse.#ctor(EpicGames.Horde.Artifacts.ArtifactId,EpicGames.Horde.Commits.CommitIdWithOrder,EpicGames.Horde.Storage.NamespaceId,EpicGames.Horde.Storage.RefName,System.Nullable{EpicGames.Horde.Storage.RefName},System.String)">
<summary>
Information about a created artifact
</summary>
<param name="ArtifactId">Identifier for the new artifact</param>
<param name="CommitId">Resolved commit id for the artifact</param>
<param name="NamespaceId">Namespace that should be written to with artifact data</param>
<param name="RefName">Ref to write to</param>
<param name="PrevRefName">Ref for the artifact at the changelist prior to this one. Can be used to deduplicate against.</param>
<param name="Token">Token which can be used to upload blobs for the artifact, and read blobs from the previous artifact</param>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactResponse.ArtifactId">
<summary>Identifier for the new artifact</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactResponse.CommitId">
<summary>Resolved commit id for the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactResponse.NamespaceId">
<summary>Namespace that should be written to with artifact data</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactResponse.RefName">
<summary>Ref to write to</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactResponse.PrevRefName">
<summary>Ref for the artifact at the changelist prior to this one. Can be used to deduplicate against.</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateArtifactResponse.Token">
<summary>Token which can be used to upload blobs for the artifact, and read blobs from the previous artifact</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.DownloadArtifactFormat">
<summary>
Type of data to download for an artifact
</summary>
</member>
<member name="F:EpicGames.Horde.Artifacts.DownloadArtifactFormat.Zip">
<summary>
Download as a zip file
</summary>
</member>
<member name="F:EpicGames.Horde.Artifacts.DownloadArtifactFormat.Ugs">
<summary>
Download as a UGS link
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.GetArtifactResponse">
<summary>
Describes an artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.Id">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Id"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.Name">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Name"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.Type">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Type"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.Description">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Description"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.StreamId">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.StreamId"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.Change">
<summary>
Change number
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.CommitId">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.CommitId"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.Keys">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Keys"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.Metadata">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Metadata"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.NamespaceId">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.NamespaceId"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.RefName">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.RefName"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactResponse.CreatedAtUtc">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.CreatedAtUtc"/>
</member>
<member name="M:EpicGames.Horde.Artifacts.GetArtifactResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.GetArtifactResponse.#ctor(EpicGames.Horde.Artifacts.IArtifact)">
<summary>
Constructor
</summary>
<param name="artifact"></param>
</member>
<member name="T:EpicGames.Horde.Artifacts.FindArtifactsResponse">
<summary>
Result of an artifact search
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.FindArtifactsResponse.Artifacts">
<summary>
List of artifacts matching the search criteria
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.GetArtifactFileEntryResponse">
<summary>
Describes a file within an artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactFileEntryResponse.Name">
<summary>
Name of this file
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactFileEntryResponse.Length">
<summary>
Length of this entry
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactFileEntryResponse.Hash">
<summary>
Hash of the target node
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.GetArtifactFileEntryResponse.#ctor(System.String,System.Int64,EpicGames.Core.IoHash)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.GetArtifactDirectoryEntryResponse">
<summary>
Describes a file within an artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactDirectoryEntryResponse.Name">
<summary>
Name of this file
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactDirectoryEntryResponse.Length">
<summary>
Length of this entry
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactDirectoryEntryResponse.Hash">
<summary>
Hash of the target node
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.GetArtifactDirectoryEntryResponse.#ctor(System.String,System.Int64,EpicGames.Core.IoHash)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.GetArtifactDirectoryResponse">
<summary>
Describes a directory within an artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactDirectoryResponse.Directories">
<summary>
Names of sub-directories
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetArtifactDirectoryResponse.Files">
<summary>
Files within the directory
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.CreateZipRequest">
<summary>
Request to create a zip file with artifact data
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.CreateZipRequest.Filter">
<summary>
Filter lines for the zip. Uses standard <see cref="T:EpicGames.Core.FileFilter"/> syntax.
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.ArtifactName">
<summary>
Name of an artifact
</summary>
<param name="Id">The artifact type</param>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactName.#ctor(EpicGames.Horde.StringId)">
<summary>
Name of an artifact
</summary>
<param name="Id">The artifact type</param>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactName.Id">
<summary>The artifact type</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactName.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="id">Identifier for the artifact type</param>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactName.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Artifacts.ArtifactNameConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactNameConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactNameConverter.ToStringId(EpicGames.Horde.Artifacts.ArtifactName)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Artifacts.ArtifactType">
<summary>
Type of an artifact
</summary>
<param name="Id">The artifact type</param>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactType.#ctor(EpicGames.Horde.StringId)">
<summary>
Type of an artifact
</summary>
<param name="Id">The artifact type</param>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactType.Id">
<summary>The artifact type</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactType.Unknown">
<summary>
Default artifact type
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactType.StepOutput">
<summary>
Output from a build step
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactType.StepSaved">
<summary>
Captured state from the machine executing a build step
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactType.StepTrace">
<summary>
Traces from the machine executing a build step
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactType.StepTestData">
<summary>
Test data generated by a machine executing a build step
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactType.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="id">Identifier for the artifact type</param>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactType.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Artifacts.ArtifactTypeConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactTypeConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactTypeConverter.ToStringId(EpicGames.Horde.Artifacts.ArtifactType)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Artifacts.ArtifactTypeNotFoundException">
<summary>
Exception thrown to indicate that an artifact type does not exist
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactTypeNotFoundException.StreamId">
<summary>
The stream containing the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.ArtifactTypeNotFoundException.ArtifactType">
<summary>
The missing artifact type
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactTypeNotFoundException.#ctor(EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Artifacts.ArtifactType)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.HttpArtifactCollection.ArtifactBuilder.AddAliasAsync(System.String,EpicGames.Horde.Storage.IBlobRef,System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Artifacts.HttpArtifactCollection.ArtifactBuilder.CompleteAsync(EpicGames.Horde.Storage.IHashedBlobRef,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Artifacts.HttpArtifactCollection.ArtifactBuilder.CreateBlobWriter">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Artifacts.HttpArtifactCollection.CreateAsync(EpicGames.Horde.Artifacts.ArtifactName,EpicGames.Horde.Artifacts.ArtifactType,System.String,EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Commits.CommitId,System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Artifacts.HttpArtifactCollection.FindAsync(EpicGames.Horde.Artifacts.ArtifactId[],System.Nullable{EpicGames.Horde.Streams.StreamId},EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Commits.CommitId,System.Nullable{EpicGames.Horde.Artifacts.ArtifactName},System.Nullable{EpicGames.Horde.Artifacts.ArtifactType},System.Collections.Generic.IEnumerable{System.String},System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Artifacts.HttpArtifactCollection.GetAsync(EpicGames.Horde.Artifacts.ArtifactId,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Artifacts.IArtifact">
<summary>
Information about an artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.Id">
<summary>
Identifier for the Artifact. Randomly generated.
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.Name">
<summary>
Name of the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.Type">
<summary>
Type of artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.Description">
<summary>
Description for the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.StreamId">
<summary>
Identifier for the stream that produced the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.CommitId">
<summary>
Change that the artifact corresponds to
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.Keys">
<summary>
Keys used to collate artifacts
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.Metadata">
<summary>
Metadata for the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.NamespaceId">
<summary>
Storage namespace containing the data
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.RefName">
<summary>
Name of the ref containing the root data object
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.CreatedAtUtc">
<summary>
Time at which the artifact was created
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifact.Content">
<summary>
Handle to the artifact data
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.IArtifact.DeleteAsync(System.Threading.CancellationToken)">
<summary>
Deletes this artifact
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Artifacts.IArtifactBuilder">
<summary>
Used to write data into an artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.Id">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Id"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.Name">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Name"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.Type">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Type"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.Description">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Description"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.StreamId">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.StreamId"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.CommitId">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.CommitId"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.Keys">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Keys"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.Metadata">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.Metadata"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.NamespaceId">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.NamespaceId"/>
</member>
<member name="P:EpicGames.Horde.Artifacts.IArtifactBuilder.RefName">
<inheritdoc cref="P:EpicGames.Horde.Artifacts.IArtifact.RefName"/>
</member>
<member name="M:EpicGames.Horde.Artifacts.IArtifactBuilder.CreateBlobWriter">
<summary>
Creates a writer for new artifact blobs
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.IArtifactBuilder.AddAliasAsync(System.String,EpicGames.Horde.Storage.IBlobRef,System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Adds an alias to a given blob
</summary>
<param name="name">Alias for the blob</param>
<param name="handle">Locator for the blob</param>
<param name="rank">Rank for this alias. In situations where an alias has multiple mappings, the alias with the highest rank will be returned by default.</param>
<param name="data">Additional data to be stored inline with the alias</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Artifacts.IArtifactBuilder.CompleteAsync(EpicGames.Horde.Storage.IHashedBlobRef,System.Threading.CancellationToken)">
<summary>
Finish writing the artifact data
</summary>
<param name="blobRef">Root blob for the artifact</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The complete artifact</returns>
</member>
<member name="T:EpicGames.Horde.Artifacts.IArtifactCollection">
<summary>
Interface for a collection of artifacts
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.IArtifactCollection.CreateAsync(EpicGames.Horde.Artifacts.ArtifactName,EpicGames.Horde.Artifacts.ArtifactType,System.String,EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Commits.CommitId,System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String},System.Threading.CancellationToken)">
<summary>
Creates a new artifact
</summary>
<param name="name">Name of the artifact</param>
<param name="type">Type identifier for the artifact</param>
<param name="description">Description for the artifact</param>
<param name="streamId">Stream that the artifact was built from</param>
<param name="commitId">Commit that the artifact was built from</param>
<param name="keys">Keys for the artifact</param>
<param name="metadata">Metadata for the artifact</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The new log file document</returns>
</member>
<member name="M:EpicGames.Horde.Artifacts.IArtifactCollection.FindAsync(EpicGames.Horde.Artifacts.ArtifactId[],System.Nullable{EpicGames.Horde.Streams.StreamId},EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Commits.CommitId,System.Nullable{EpicGames.Horde.Artifacts.ArtifactName},System.Nullable{EpicGames.Horde.Artifacts.ArtifactType},System.Collections.Generic.IEnumerable{System.String},System.Int32,System.Threading.CancellationToken)">
<summary>
Finds artifacts with the given keys.
</summary>
<param name="ids">Identifiers to return</param>
<param name="streamId">Stream to find artifacts for</param>
<param name="minCommitId">Minimum commit for the artifacts (inclusive)</param>
<param name="maxCommitId">Maximum commit for the artifacts (inclusive)</param>
<param name="name">Name of the artifact to search for</param>
<param name="type">The artifact type</param>
<param name="keys">Set of keys, all of which must all be present on any returned artifacts</param>
<param name="maxResults">Maximum number of results to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Sequence of artifacts. Ordered by descending CL order, then by descending order in which they were created.</returns>
</member>
<member name="M:EpicGames.Horde.Artifacts.IArtifactCollection.GetAsync(EpicGames.Horde.Artifacts.ArtifactId,System.Threading.CancellationToken)">
<summary>
Gets an artifact by ID
</summary>
<param name="artifactId">Unique id of the artifact</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The artifact document</returns>
</member>
<member name="T:EpicGames.Horde.Artifacts.ArtifactCollectionExtensions">
<summary>
Extension methods for artifacts
</summary>
</member>
<member name="M:EpicGames.Horde.Artifacts.ArtifactCollectionExtensions.FindAsync(EpicGames.Horde.Artifacts.IArtifactCollection,System.Nullable{EpicGames.Horde.Streams.StreamId},EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Commits.CommitId,System.Nullable{EpicGames.Horde.Artifacts.ArtifactName},System.Nullable{EpicGames.Horde.Artifacts.ArtifactType},System.Collections.Generic.IEnumerable{System.String},System.Int32,System.Threading.CancellationToken)">
<summary>
Finds artifacts with the given keys.
</summary>
<param name="artifactCollection">Collection to operate on</param>
<param name="streamId">Stream to find artifacts for</param>
<param name="minCommitId">Minimum commit for the artifacts (inclusive)</param>
<param name="maxCommitId">Maximum commit for the artifacts (inclusive)</param>
<param name="name">Name of the artifact to search for</param>
<param name="type">The artifact type</param>
<param name="keys">Set of keys, all of which must all be present on any returned artifacts</param>
<param name="maxResults">Maximum number of results to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Sequence of artifacts. Ordered by descending CL order, then by descending order in which they were created.</returns>
</member>
<member name="T:EpicGames.Horde.Artifacts.GetUnsyncDataRequest">
<summary>
Request to return a set of blobs for Unsync
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetUnsyncDataRequest.HashStrong">
<summary>
The strong hash algorithm
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetUnsyncDataRequest.Blocks">
<summary>
Files to retrieve
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetUnsyncDataRequest.Files">
<summary>
Files to retrieve
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.GetUnsyncFileRequest">
<summary>
Requests a set of blobs from a particular file
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetUnsyncFileRequest.Name">
<summary>
Path to the file
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetUnsyncFileRequest.Blocks">
<summary>
Blobs to return
</summary>
</member>
<member name="T:EpicGames.Horde.Artifacts.GetUnsyncBlockRequest">
<summary>
Requests a block of data
</summary>
</member>
<member name="P:EpicGames.Horde.Artifacts.GetUnsyncBlockRequest.Hash">
<summary>
Hash of the block
</summary>
</member>
<member name="T:EpicGames.Horde.Auth.HttpServiceClientOptions">
<summary>
Base class for configuring HTTP service clients
</summary>
</member>
<member name="P:EpicGames.Horde.Auth.HttpServiceClientOptions.Url">
<summary>
Base address for http requests
</summary>
</member>
<member name="P:EpicGames.Horde.Auth.HttpServiceClientOptions.AuthUrl">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Auth.HttpServiceClientOptions.GrantType">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Auth.HttpServiceClientOptions.ClientId">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Auth.HttpServiceClientOptions.ClientSecret">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Auth.HttpServiceClientOptions.Scope">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Auth.HttpServiceClientOptions.Token">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Auth.AuthenticationException">
<summary>
Exception thrown due to failed authorization
</summary>
</member>
<member name="M:EpicGames.Horde.Auth.AuthenticationException.#ctor(System.String,System.Exception)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Auth.IOAuthOptions">
<summary>
Options for authenticating particular requests
</summary>
</member>
<member name="P:EpicGames.Horde.Auth.IOAuthOptions.AuthUrl">
<summary>
Url of the auth server
</summary>
</member>
<member name="P:EpicGames.Horde.Auth.IOAuthOptions.GrantType">
<summary>
Type of grant
</summary>
</member>
<member name="P:EpicGames.Horde.Auth.IOAuthOptions.ClientId">
<summary>
Client id
</summary>
</member>
<member name="P:EpicGames.Horde.Auth.IOAuthOptions.ClientSecret">
<summary>
Client secret
</summary>
</member>
<member name="P:EpicGames.Horde.Auth.IOAuthOptions.Scope">
<summary>
Scope of the token
</summary>
</member>
<member name="T:EpicGames.Horde.Auth.OAuthHandler`1">
<summary>
Http message handler which adds an OAuth authorization header using a cached/periodically refreshed bearer token
</summary>
</member>
<member name="M:EpicGames.Horde.Auth.OAuthHandler`1.#ctor(System.Net.Http.HttpClient,EpicGames.Horde.Auth.IOAuthOptions)">
<summary>
Constructor
</summary>
<param name="client"></param>
<param name="options"></param>
</member>
<member name="M:EpicGames.Horde.Auth.OAuthHandler`1.SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Auth.OAuthHandler`1.UpdateAccessTokenAsync(System.Threading.CancellationToken)">
<summary>
Updates the current access token
</summary>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Auth.OAuthHandlerFactory">
<summary>
Factory for creating OAuth2AuthProvider instances from a set of options
</summary>
</member>
<member name="M:EpicGames.Horde.Auth.OAuthHandlerFactory.#ctor(System.Net.Http.HttpClient)">
<summary>
Constructor
</summary>
<param name="httpClient"></param>
</member>
<member name="M:EpicGames.Horde.Auth.OAuthHandlerFactory.Create``1(EpicGames.Horde.Auth.IOAuthOptions)">
<summary>
Create an instance of the auth provider
</summary>
<param name="options"></param>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Auth.ITokenAuthOptions">
<summary>
Options for authenticating particular requests
</summary>
</member>
<member name="P:EpicGames.Horde.Auth.ITokenAuthOptions.Token">
<summary>
Bearer token for auth
</summary>
</member>
<member name="T:EpicGames.Horde.Auth.TokenHandler`1">
<summary>
Http message handler which adds an OAuth authorization header using a cached/periodically refreshed bearer token
</summary>
</member>
<member name="M:EpicGames.Horde.Auth.TokenHandler`1.#ctor(EpicGames.Horde.Auth.ITokenAuthOptions)">
<summary>
Constructor
</summary>
<param name="options"></param>
</member>
<member name="M:EpicGames.Horde.Auth.TokenHandler`1.SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.BinaryId">
<summary>
Normalized string identifier for a resource
</summary>
</member>
<member name="F:EpicGames.Horde.BinaryId.NumBytes">
<summary>
Number of bytes in the identifier
</summary>
</member>
<member name="F:EpicGames.Horde.BinaryId.NumChars">
<summary>
Number of characters when formatted as a string
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.#ctor(System.ReadOnlySpan{System.Byte})">
<summary>
Constructor
</summary>
<param name="bytes">Bytes to parse</param>
</member>
<member name="M:EpicGames.Horde.BinaryId.Parse(System.String)">
<summary>
Parse a binary id from a string
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.Parse(EpicGames.Core.Utf8String)">
<summary>
Parse a binary id from a string
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.Parse(System.ReadOnlySpan{System.Byte})">
<summary>
Parse a binary id from a string
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.TryParse(System.String,EpicGames.Horde.BinaryId@)">
<summary>
Attempt to parse a binary id from a string
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.TryParse(EpicGames.Core.Utf8String,EpicGames.Horde.BinaryId@)">
<summary>
Attempt to parse a binary id from a string
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.TryParse(System.ReadOnlySpan{System.Byte},EpicGames.Horde.BinaryId@)">
<summary>
Attempt to parse a binary id from a string
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.TryParse(System.ReadOnlySpan{System.Char},EpicGames.Horde.BinaryId@)">
<summary>
Attempt to parse a binary id from a string
</summary>
</member>
<member name="P:EpicGames.Horde.BinaryId.IsEmpty">
<summary>
Checks whether this BinaryId is set
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryId.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryId.Equals(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryId.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryId.ToUtf8String">
<summary>
Format this id as a sequence of UTF8 characters
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.ToUtf8String(System.Span{System.Byte})">
<summary>
Format this id as a sequence of UTF8 characters
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.ToByteArray">
<summary>
Format this id as a sequence of UTF8 characters
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.ToByteArray(System.Span{System.Byte})">
<summary>
Format this id as a sequence of UTF8 characters
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryId.CompareTo(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryId.op_Equality(EpicGames.Horde.BinaryId,EpicGames.Horde.BinaryId)">
<summary>
Compares two binary ids for equality
</summary>
<param name="left">The first string id</param>
<param name="right">Second string id</param>
<returns>True if the two string ids are equal</returns>
</member>
<member name="M:EpicGames.Horde.BinaryId.op_Inequality(EpicGames.Horde.BinaryId,EpicGames.Horde.BinaryId)">
<summary>
Compares two binary ids for inequality
</summary>
<param name="left">The first string id</param>
<param name="right">Second string id</param>
<returns>True if the two string ids are not equal</returns>
</member>
<member name="T:EpicGames.Horde.BinaryIdJsonConverter">
<summary>
Class which serializes <see cref="T:EpicGames.Horde.BinaryId"/> types
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryIdJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.BinaryId,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.BinaryIdTypeConverter">
<summary>
Class which serializes <see cref="T:EpicGames.Horde.BinaryId"/> types
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryIdTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.BinaryIdConverter`1">
<summary>
Base class for converting to and from types containing a <see cref="T:EpicGames.Horde.BinaryId"/>. Useful pattern for reducing boilerplate with strongly typed records.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:EpicGames.Horde.BinaryIdConverter`1.ToBinaryId(`0)">
<summary>
Converts a type to a <see cref="T:EpicGames.Horde.BinaryId"/>
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryIdConverter`1.FromBinaryId(EpicGames.Horde.BinaryId)">
<summary>
Constructs a type from a <see cref="T:EpicGames.Horde.BinaryId"/>
</summary>
</member>
<member name="T:EpicGames.Horde.BinaryIdConverterAttribute">
<summary>
Attribute declaring a <see cref="T:EpicGames.Horde.BinaryIdConverter`1"/> for a particular type
</summary>
</member>
<member name="P:EpicGames.Horde.BinaryIdConverterAttribute.ConverterType">
<summary>
The converter type
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryIdConverterAttribute.#ctor(System.Type)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.BinaryIdCbConverter`2">
<summary>
Converter to compact binary objects
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryIdCbConverter`2.Read(EpicGames.Serialization.CbField)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdCbConverter`2.Write(EpicGames.Serialization.CbWriter,`0)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdCbConverter`2.WriteNamed(EpicGames.Serialization.CbWriter,EpicGames.Serialization.CbFieldName,`0)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.BinaryIdTypeConverter`2">
<summary>
Class which serializes types with a <see cref="T:EpicGames.Horde.BinaryIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryIdTypeConverter`2.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdTypeConverter`2.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdTypeConverter`2.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdTypeConverter`2.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.BinaryIdJsonConverter`2">
<summary>
Class which serializes types with a <see cref="T:EpicGames.Horde.BinaryIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryIdJsonConverter`2.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdJsonConverter`2.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.BinaryIdJsonConverterFactory">
<summary>
Creates constructors for types with a <see cref="T:EpicGames.Horde.BinaryIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.BinaryIdJsonConverterFactory.CanConvert(System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.BinaryIdJsonConverterFactory.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Commits.CommitId">
<summary>
Identifier for a commit from an arbitary version control system.
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.CommitId.Empty">
<summary>
Commit id with an empty name
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.CommitId.Name">
<summary>
Name of this commit. Compared as a case-insensitive string.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.FromPerforceChange(System.Int32)">
<summary>
Creates a commit it from a Perforce changelist number. Temporary helper method for migration purposes.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.FromPerforceChange(System.Nullable{System.Int32})">
<summary>
Creates a commit it from a Perforce changelist number. Temporary helper method for migration purposes.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.GetPerforceChange">
<summary>
Gets the Perforce changelist number. Temporary helper method for migration purposes.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.GetPerforceChangeOrMinusOne">
<summary>
Gets the Perforce changelist number. Temporary helper method for migration purposes.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.TryGetPerforceChange">
<summary>
Gets the Perforce changelist number. Temporary helper method for migration purposes.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.Equals(EpicGames.Horde.Commits.CommitId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.op_Equality(EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Commits.CommitId)">
<summary>
Test two commits for equality
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitId.op_Inequality(EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Commits.CommitId)">
<summary>
Test two commits for inequality
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Commits.CommitId,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Commits.CommitIdWithOrder">
<summary>
Variant of <see cref="T:EpicGames.Horde.Commits.CommitId"/> including a value that allows it to be used for ordering.
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.CommitIdWithOrder.Empty">
<summary>
Commit id with an empty name
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.CommitIdWithOrder.Order">
<summary>
Value used for ordering commits.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdWithOrder.#ctor(System.String,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdWithOrder.FromPerforceChange(System.Int32)">
<summary>
Creates a commit it from a Perforce changelist number. Temporary helper method for migration purposes.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdWithOrder.FromPerforceChange(System.Nullable{System.Int32})">
<summary>
Creates a commit it from a Perforce changelist number. Temporary helper method for migration purposes.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdWithOrder.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdWithOrder.Equals(EpicGames.Horde.Commits.CommitIdWithOrder)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdWithOrder.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitIdWithOrder.CompareTo(EpicGames.Horde.Commits.CommitIdWithOrder)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Commits.GetCommitResponse">
<summary>
Information about a commit
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.GetCommitResponse.Id">
<summary>
The commit id
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.GetCommitResponse.Number">
<summary>
The changelist number
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.GetCommitResponse.Author">
<summary>
Name of the user that authored this change [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.GetCommitResponse.AuthorInfo">
<summary>
Information about the user that authored this change
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.GetCommitResponse.Description">
<summary>
The description text
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.GetCommitResponse.Tags">
<summary>
Tags for this commit
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.GetCommitResponse.Files">
<summary>
List of files that were modified, relative to the stream base
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.GetCommitResponse.#ctor(EpicGames.Horde.Users.GetThinUserInfoResponse,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Commits.CommitTag">
<summary>
Constants for known commit tags
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.CommitTag.Code">
<summary>
Predefined filter name for commits containing code
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.CommitTag.Content">
<summary>
Predefined filter name for commits containing content
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.CommitTag.Text">
<summary>
The tag text
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTag.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="text"></param>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTag.IsEmpty">
<summary>
Check if the current tag is empty
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTag.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTag.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTag.Equals(EpicGames.Horde.Commits.CommitTag)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTag.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTag.op_Equality(EpicGames.Horde.Commits.CommitTag,EpicGames.Horde.Commits.CommitTag)">
<summary>
Compares two string ids for equality
</summary>
<param name="left">The first string id</param>
<param name="right">Second string id</param>
<returns>True if the two string ids are equal</returns>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTag.op_Inequality(EpicGames.Horde.Commits.CommitTag,EpicGames.Horde.Commits.CommitTag)">
<summary>
Compares two string ids for inequality
</summary>
<param name="left">The first string id</param>
<param name="right">Second string id</param>
<returns>True if the two string ids are not equal</returns>
</member>
<member name="T:EpicGames.Horde.Commits.CommitTagJsonConverter">
<summary>
Converts <see cref="T:EpicGames.Horde.Commits.CommitTag"/> values to and from JSON
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTagJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Commits.CommitTagJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Commits.CommitTag,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Commits.ICommit">
<summary>
Stores metadata about a commit
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.ICommit.Id">
<summary>
Id for this commit
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.ICommit.StreamId">
<summary>
Stream containing the commit
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.ICommit.OriginalCommitId">
<summary>
The change that this commit originates from
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.ICommit.AuthorId">
<summary>
The author user id
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.ICommit.OwnerId">
<summary>
The owner of this change, if different from the author (due to Robomerge)
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.ICommit.Description">
<summary>
Changelist description
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.ICommit.BasePath">
<summary>
Base path for all files in the change
</summary>
</member>
<member name="P:EpicGames.Horde.Commits.ICommit.DateUtc">
<summary>
Date/time that change was committed
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.ICommit.GetTagsAsync(System.Threading.CancellationToken)">
<summary>
Gets the list of tags for the commit
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the commit has the given tag</returns>
</member>
<member name="M:EpicGames.Horde.Commits.ICommit.MatchesFilterAsync(EpicGames.Core.FileFilter,System.Threading.CancellationToken)">
<summary>
Determine if this commit matches the given filter. Prefer using commit tags rather than this method; the results can be cached.
</summary>
<param name="filter">Filter to test</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Commits.ICommit.GetFilesAsync(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Gets the files for this change, relative to the root of the stream
</summary>
<param name="minFiles">Minimum number of files to return. The response will include at least this number of files, unless the commit has fewer files.</param>
<param name="maxFiles">Maximum number of files to return. Querying large number of files may cause performance issues with merge commits.</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>List of files modified by this commit</returns>
</member>
<member name="T:EpicGames.Horde.Commits.CommitExtensions">
<summary>
Extension methods for operating on commits
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitExtensions.GetFilesAsync(EpicGames.Horde.Commits.ICommit,System.Int32,System.Threading.CancellationToken)">
<summary>
Gets the files for this change, relative to the root of the stream
</summary>
<param name="commit">Commit to operate on</param>
<param name="files">Number of files to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>List of files modified by this commit</returns>
</member>
<member name="T:EpicGames.Horde.Commits.ICommitCollection">
<summary>
VCS abstraction. Provides information about commits to a particular stream.
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.ICommitCollection.CreateNewAsync(System.String,System.String,System.Threading.CancellationToken)">
<summary>
Creates a new change
</summary>
<param name="path">Path to modify in the change</param>
<param name="description">Description of the change</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>New commit information</returns>
</member>
<member name="M:EpicGames.Horde.Commits.ICommitCollection.GetAsync(EpicGames.Horde.Commits.CommitId,System.Threading.CancellationToken)">
<summary>
Gets a commit by id
</summary>
<param name="commitId">Commit to query</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Commit details</returns>
</member>
<member name="M:EpicGames.Horde.Commits.ICommitCollection.GetOrderedAsync(EpicGames.Horde.Commits.CommitId,System.Threading.CancellationToken)">
<summary>
Gets an ordered commit id
</summary>
<param name="commitId">The commit to query</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Numbered commit id</returns>
</member>
<member name="M:EpicGames.Horde.Commits.ICommitCollection.FindAsync(EpicGames.Horde.Commits.CommitId,System.Boolean,EpicGames.Horde.Commits.CommitId,System.Boolean,System.Nullable{System.Int32},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Commits.CommitTag},System.Threading.CancellationToken)">
<summary>
Finds changes submitted to a stream, in reverse order.
</summary>
<param name="minCommitId">The minimum changelist number</param>
<param name="includeMinCommit">Whether to include the minimum changelist in the range of enumerated responses</param>
<param name="maxCommitId">The maximum changelist number</param>
<param name="includeMaxCommit">Whether to include the maximum changelist in the range of enumerated responses</param>
<param name="maxResults">Maximum number of results to return</param>
<param name="tags">Tags for the commits to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Changelist information</returns>
</member>
<member name="M:EpicGames.Horde.Commits.ICommitCollection.SubscribeAsync(EpicGames.Horde.Commits.CommitId,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Commits.CommitTag},System.Threading.CancellationToken)">
<summary>
Subscribes to changes from this commit source
</summary>
<param name="minCommitId">Minimum changelist number (exclusive)</param>
<param name="tags">Tags for the commit to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>New change information</returns>
</member>
<member name="T:EpicGames.Horde.Commits.CommitCollectionExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Commits.ICommitCollection"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Commits.CommitCollectionExtensions.CreateNewAsync(EpicGames.Horde.Commits.ICommitCollection,EpicGames.Horde.Jobs.Templates.ITemplate,System.Threading.CancellationToken)">
<summary>
Creates a new change for a template
</summary>
<param name="commitCollection">The Perforce service instance</param>
<param name="template">The template being built</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>New changelist number</returns>
</member>
<member name="M:EpicGames.Horde.Commits.CommitCollectionExtensions.FindAsync(EpicGames.Horde.Commits.ICommitCollection,EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Commits.CommitId,System.Nullable{System.Int32},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Commits.CommitTag},System.Threading.CancellationToken)">
<summary>
Finds changes submitted to a stream, in reverse order.
</summary>
<param name="commitCollection">Collection to operate on</param>
<param name="minCommitId">The minimum changelist number</param>
<param name="maxCommitId">The maximum changelist number</param>
<param name="maxResults">Maximum number of results to return</param>
<param name="tags">Tags for the commits to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Changelist information</returns>
</member>
<member name="M:EpicGames.Horde.Commits.CommitCollectionExtensions.GetLastCodeChangeAsync(EpicGames.Horde.Commits.ICommitCollection,EpicGames.Horde.Commits.CommitId,System.Threading.CancellationToken)">
<summary>
Gets the last code code equal or before the given change number
</summary>
<param name="commitCollection">The commit source to query</param>
<param name="maxCommitId">Maximum code change to query</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The last code change</returns>
</member>
<member name="M:EpicGames.Horde.Commits.CommitCollectionExtensions.GetLatestAsync(EpicGames.Horde.Commits.ICommitCollection,System.Threading.CancellationToken)">
<summary>
Finds the latest commit from a source
</summary>
<param name="commitCollection">The commit source to query</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The latest commit</returns>
</member>
<member name="M:EpicGames.Horde.Commits.CommitCollectionExtensions.GetLastCommitIdAsync(EpicGames.Horde.Commits.ICommitCollection,System.Threading.CancellationToken)">
<summary>
Finds the latest commit from a source
</summary>
<param name="commitCollection">The commit source to query</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The latest commit</returns>
</member>
<member name="T:EpicGames.Horde.Common.ConditionException">
<summary>
Exception thrown when a condition is not valid
</summary>
</member>
<member name="M:EpicGames.Horde.Common.ConditionException.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="error"></param>
</member>
<member name="T:EpicGames.Horde.Common.Condition">
<summary>
A conditional expression that can be evaluated against a particular object
</summary>
</member>
<member name="P:EpicGames.Horde.Common.Condition.Text">
<summary>
The condition text
</summary>
</member>
<member name="P:EpicGames.Horde.Common.Condition.Error">
<summary>
Error produced when parsing the condition
</summary>
</member>
<member name="M:EpicGames.Horde.Common.Condition.IsEmpty">
<summary>
Determines if the condition is empty
</summary>
<returns>True if the condition is empty</returns>
</member>
<member name="M:EpicGames.Horde.Common.Condition.IsValid">
<summary>
Checks if the condition has been parsed correctly
</summary>
</member>
<member name="M:EpicGames.Horde.Common.Condition.Parse(System.String)">
<summary>
Parse the given text as a condition
</summary>
<param name="text">Condition text to parse</param>
<returns>The new condition object</returns>
</member>
<member name="M:EpicGames.Horde.Common.Condition.TryParse(System.String)">
<summary>
Attempts to parse the given text as a condition
</summary>
<param name="text">Condition to parse</param>
<returns>The parsed condition. Does not validate whether the parse completed successfully; call <see cref="M:EpicGames.Horde.Common.Condition.IsValid"/> to verify.</returns>
</member>
<member name="M:EpicGames.Horde.Common.Condition.Evaluate(System.Func{System.String,System.Collections.Generic.IEnumerable{System.String}})">
<summary>
Evaluate the condition using the given callback to retreive property values
</summary>
<param name="getPropertyValues"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Common.Condition.op_Implicit(System.String)~EpicGames.Horde.Common.Condition">
<summary>
Implicit conversion from string to conditions
</summary>
<param name="text"></param>
</member>
<member name="M:EpicGames.Horde.Common.Condition.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Common.ConditionCbConverter">
<summary>
Converter from conditions to compact binary objects
</summary>
</member>
<member name="M:EpicGames.Horde.Common.ConditionCbConverter.Read(EpicGames.Serialization.CbField)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Common.ConditionCbConverter.Write(EpicGames.Serialization.CbWriter,EpicGames.Horde.Common.Condition)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Common.ConditionCbConverter.WriteNamed(EpicGames.Serialization.CbWriter,EpicGames.Serialization.CbFieldName,EpicGames.Horde.Common.Condition)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Common.ConditionTypeConverter">
<summary>
Type converter from strings to condition objects
</summary>
</member>
<member name="M:EpicGames.Horde.Common.ConditionTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Common.ConditionTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Common.ConditionTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Common.ConditionTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Common.ConditionJsonConverter">
<summary>
Type converter from Json strings to condition objects
</summary>
</member>
<member name="M:EpicGames.Horde.Common.ConditionJsonConverter.CanConvert(System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.AgentManagedProcess">
<summary>
Represents a remotely executed process managed by the Horde agent
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AgentManagedProcess.HasExited">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentManagedProcess.#ctor(EpicGames.Horde.Compute.AgentMessageChannel)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentManagedProcess.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentManagedProcess.ReadLineAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentManagedProcess.WaitForExitAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.AgentMessageType">
<summary>
Type of a compute message
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.None">
<summary>
No message was received (end of stream)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.Ping">
<summary>
No-op message sent to keep the connection alive. Remote should reply with the same message.
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.Exception">
<summary>
Sent in place of a regular response if an error occurs on the remote
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.Fork">
<summary>
Fork the message loop into a new channel
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.Attach">
<summary>
Sent as the first message on a channel to notify the remote that the remote end is attached
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.WriteFiles">
<summary>
Extract files on the remote machine (Initiator -> Remote)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.WriteFilesResponse">
<summary>
Notification that files have been extracted (Remote -> Initiator)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.DeleteFiles">
<summary>
Deletes files on the remote machine (Initiator -> Remote)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.ExecuteV1">
<summary>
Execute a process in a sandbox (Initiator -> Remote)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.ExecuteV2">
<summary>
Execute a process in a sandbox (Initiator -> Remote)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.ExecuteV3">
<summary>
Execute a process in a sandbox (Initiator -> Remote)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.ExecuteOutput">
<summary>
Returns output from the child process to the caller (Remote -> Initiator)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.ExecuteResult">
<summary>
Returns the process exit code (Remote -> Initiator)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.ReadBlob">
<summary>
Reads a blob from storage
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.ReadBlobResponse">
<summary>
Response to a <see cref="F:EpicGames.Horde.Compute.AgentMessageType.ReadBlob"/> request.
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.XorRequest">
<summary>
Xor a block of data with a value
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.AgentMessageType.XorResponse">
<summary>
Result from an <see cref="F:EpicGames.Horde.Compute.AgentMessageType.XorRequest"/> request.
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ExecuteProcessFlags">
<summary>
Flags describing how to execute a compute task process on the agent
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ExecuteProcessFlags.None">
<summary>
No execute flags set
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ExecuteProcessFlags.UseWine">
<summary>
Request execution to be wrapped under Wine when running on Linux.
Agent still reserves the right to refuse it (e.g no Wine executable configured, mismatching OS etc)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ExecuteProcessFlags.ReplaceContainerEntrypoint">
<summary>
Use compute process executable as entrypoint for container
If not set, path to the executable is passed as the first parameter to the container invocation
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.AgentMessage">
<summary>
Standard implementation of a message
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AgentMessage.Type">
<summary>
Type of the message
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AgentMessage.Data">
<summary>
Data that was read
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessage.#ctor(EpicGames.Horde.Compute.AgentMessageType,System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessage.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessage.GetMemory(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessage.Advance(System.Int32)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.InvalidAgentMessageException">
<summary>
Exception thrown when an invalid message is received
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.InvalidAgentMessageException.#ctor(EpicGames.Horde.Compute.AgentMessage,System.Nullable{EpicGames.Horde.Compute.AgentMessageType},EpicGames.Horde.Compute.ComputeRemoteException)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeExecutionCancelledException">
<summary>
Exception thrown when a compute execution is cancelled
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeExecutionCancelledException.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeExecutionCancelledException.TryThrow(EpicGames.Horde.Compute.ExceptionMessage)">
<summary>
Try constructing and throwing if the exception message matches a cancellation exception
</summary>
<param name="em">Deserialized exception message</param>
<exception cref="T:EpicGames.Horde.Compute.ComputeExecutionCancelledException">If message matches</exception>
</member>
<member name="T:EpicGames.Horde.Compute.IAgentMessageBuilder">
<summary>
Writer for compute messages
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.IAgentMessageBuilder.Send">
<summary>
Sends the current message
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ExceptionMessage">
<summary>
Message for reporting an error
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ExceptionMessage.#ctor(System.String,System.String)">
<summary>
Message for reporting an error
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ForkMessage">
<summary>
Message requesting that the message loop be forked
</summary>
<param name="ChannelId">New channel to communicate on</param>
<param name="BufferSize">Size of the buffer</param>
</member>
<member name="M:EpicGames.Horde.Compute.ForkMessage.#ctor(System.Int32,System.Int32)">
<summary>
Message requesting that the message loop be forked
</summary>
<param name="ChannelId">New channel to communicate on</param>
<param name="BufferSize">Size of the buffer</param>
</member>
<member name="P:EpicGames.Horde.Compute.ForkMessage.ChannelId">
<summary>New channel to communicate on</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ForkMessage.BufferSize">
<summary>Size of the buffer</summary>
</member>
<member name="T:EpicGames.Horde.Compute.UploadFilesMessage">
<summary>
Extract files from a bundle to a path in the remote sandbox
</summary>
<param name="Name">Path to extract the files to</param>
<param name="Locator">Locator for the tree to extract</param>
</member>
<member name="M:EpicGames.Horde.Compute.UploadFilesMessage.#ctor(System.String,EpicGames.Horde.Storage.BlobLocator)">
<summary>
Extract files from a bundle to a path in the remote sandbox
</summary>
<param name="Name">Path to extract the files to</param>
<param name="Locator">Locator for the tree to extract</param>
</member>
<member name="P:EpicGames.Horde.Compute.UploadFilesMessage.Name">
<summary>Path to extract the files to</summary>
</member>
<member name="P:EpicGames.Horde.Compute.UploadFilesMessage.Locator">
<summary>Locator for the tree to extract</summary>
</member>
<member name="T:EpicGames.Horde.Compute.DeleteFilesMessage">
<summary>
Deletes files or directories in the remote
</summary>
<param name="Filter">Filter for files to delete</param>
</member>
<member name="M:EpicGames.Horde.Compute.DeleteFilesMessage.#ctor(System.Collections.Generic.IReadOnlyList{System.String})">
<summary>
Deletes files or directories in the remote
</summary>
<param name="Filter">Filter for files to delete</param>
</member>
<member name="P:EpicGames.Horde.Compute.DeleteFilesMessage.Filter">
<summary>Filter for files to delete</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ExecuteProcessMessage">
<summary>
Message to execute a new child process
</summary>
<param name="Executable">Executable path</param>
<param name="Arguments">Arguments for the executable</param>
<param name="WorkingDir">Working directory to execute in</param>
<param name="EnvVars">Environment variables for the child process. Null values unset variables.</param>
<param name="Flags">Additional execution flags</param>
<param name="ContainerImageUrl">URL to container image. If specified, process will be executed inside this container</param>
</member>
<member name="M:EpicGames.Horde.Compute.ExecuteProcessMessage.#ctor(System.String,System.Collections.Generic.IReadOnlyList{System.String},System.String,System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},EpicGames.Horde.Compute.ExecuteProcessFlags,System.String)">
<summary>
Message to execute a new child process
</summary>
<param name="Executable">Executable path</param>
<param name="Arguments">Arguments for the executable</param>
<param name="WorkingDir">Working directory to execute in</param>
<param name="EnvVars">Environment variables for the child process. Null values unset variables.</param>
<param name="Flags">Additional execution flags</param>
<param name="ContainerImageUrl">URL to container image. If specified, process will be executed inside this container</param>
</member>
<member name="P:EpicGames.Horde.Compute.ExecuteProcessMessage.Executable">
<summary>Executable path</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ExecuteProcessMessage.Arguments">
<summary>Arguments for the executable</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ExecuteProcessMessage.WorkingDir">
<summary>Working directory to execute in</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ExecuteProcessMessage.EnvVars">
<summary>Environment variables for the child process. Null values unset variables.</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ExecuteProcessMessage.Flags">
<summary>Additional execution flags</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ExecuteProcessMessage.ContainerImageUrl">
<summary>URL to container image. If specified, process will be executed inside this container</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ExecuteProcessResponseMessage">
<summary>
Response from executing a child process
</summary>
<param name="ExitCode">Exit code for the process</param>
</member>
<member name="M:EpicGames.Horde.Compute.ExecuteProcessResponseMessage.#ctor(System.Int32)">
<summary>
Response from executing a child process
</summary>
<param name="ExitCode">Exit code for the process</param>
</member>
<member name="P:EpicGames.Horde.Compute.ExecuteProcessResponseMessage.ExitCode">
<summary>Exit code for the process</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ReadBlobMessage">
<summary>
Creates a blob read request
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ReadBlobMessage.#ctor(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Int32)">
<summary>
Creates a blob read request
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.XorRequestMessage">
<summary>
Message for running an XOR command
</summary>
<param name="Data">Data to xor</param>
<param name="Value">Value to XOR with</param>
</member>
<member name="M:EpicGames.Horde.Compute.XorRequestMessage.#ctor(System.ReadOnlyMemory{System.Byte},System.Byte)">
<summary>
Message for running an XOR command
</summary>
<param name="Data">Data to xor</param>
<param name="Value">Value to XOR with</param>
</member>
<member name="P:EpicGames.Horde.Compute.XorRequestMessage.Data">
<summary>Data to xor</summary>
</member>
<member name="P:EpicGames.Horde.Compute.XorRequestMessage.Value">
<summary>Value to XOR with</summary>
</member>
<member name="T:EpicGames.Horde.Compute.AgentMessageExtensions">
<summary>
Wraps various requests across compute channels
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.CloseAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.Threading.CancellationToken)">
<summary>
Closes the remote message loop
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.PingAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.Threading.CancellationToken)">
<summary>
Sends a ping message to the remote
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.SendExceptionAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.Exception,System.Threading.CancellationToken)">
<summary>
Sends an exception response to the remote
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.SendExceptionAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.String,System.String,System.Threading.CancellationToken)">
<summary>
Sends an exception response to the remote
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseExceptionMessage(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parses a message as an <see cref="T:EpicGames.Horde.Compute.ExceptionMessage"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ForkAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.Int32,System.Int32,System.Threading.CancellationToken)">
<summary>
Requests that the remote message loop be forked
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseForkMessage(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parses a fork request message
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.AttachAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.Threading.CancellationToken)">
<summary>
Notifies the remote that a buffer has been attached
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.WaitForAttachAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.Threading.CancellationToken)">
<summary>
Waits until an attached notification is received along the channel
</summary>
<param name="channel"></param>
<param name="cancellationToken"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ThrowIfUnexpectedType(EpicGames.Horde.Compute.AgentMessage,System.Nullable{EpicGames.Horde.Compute.AgentMessageType})">
<summary>
Throw an exception if message is not of expected type
</summary>
<param name="message">Agent message to extend</param>
<param name="expectedType">Optional type to expect. If not specified, assume type was unwanted no matter what</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.UploadFilesAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.String,EpicGames.Horde.Storage.BlobLocator,EpicGames.Horde.Storage.IStorageBackend,System.Threading.CancellationToken)">
<summary>
Creates a sandbox on the remote machine
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseUploadFilesMessage(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parses a message as a <see cref="T:EpicGames.Horde.Compute.UploadFilesMessage"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.DeleteFilesAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.Collections.Generic.IReadOnlyList{System.String},System.Threading.CancellationToken)">
<summary>
Destroys a sandbox on the remote machine
</summary>
<param name="channel">Current channel</param>
<param name="paths">Paths of files or directories to delete</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseDeleteFilesMessage(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parses a message as a <see cref="T:EpicGames.Horde.Compute.DeleteFilesMessage"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ExecuteAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.String,System.Collections.Generic.IReadOnlyList{System.String},System.String,System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},System.Threading.CancellationToken)">
<summary>
Executes a remote process (using ExecuteV1)
</summary>
<param name="channel">Current channel</param>
<param name="executable">Executable to run, relative to the sandbox root</param>
<param name="arguments">Arguments for the child process</param>
<param name="workingDir">Working directory for the process</param>
<param name="envVars">Environment variables for the child process</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ExecuteAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.String,System.Collections.Generic.IReadOnlyList{System.String},System.String,System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},EpicGames.Horde.Compute.ExecuteProcessFlags,System.Threading.CancellationToken)">
<summary>
Executes a remote process (using ExecuteV2)
</summary>
<param name="channel">Current channel</param>
<param name="executable">Executable to run, relative to the sandbox root</param>
<param name="arguments">Arguments for the child process</param>
<param name="workingDir">Working directory for the process</param>
<param name="envVars">Environment variables for the child process</param>
<param name="flags">Additional execution flags</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ExecuteAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.String,System.Collections.Generic.IReadOnlyList{System.String},System.String,System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},EpicGames.Horde.Compute.ExecuteProcessFlags,System.String,System.Threading.CancellationToken)">
<summary>
Executes a remote process (using ExecuteV3)
</summary>
<param name="channel">Current channel</param>
<param name="executable">Executable to run, relative to the sandbox root</param>
<param name="arguments">Arguments for the child process</param>
<param name="workingDir">Working directory for the process</param>
<param name="envVars">Environment variables for the child process</param>
<param name="flags">Additional execution flags</param>
<param name="containerImageUrl">Optional container image URL. If set, execution will happen inside this container</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseExecuteProcessV1Message(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parses a message as a <see cref="T:EpicGames.Horde.Compute.ExecuteProcessMessage"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseExecuteProcessV2Message(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parses a message as a <see cref="T:EpicGames.Horde.Compute.ExecuteProcessMessage"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseExecuteProcessV3Message(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parses a message as a <see cref="T:EpicGames.Horde.Compute.ExecuteProcessMessage"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.SendExecuteOutputAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Sends output from a child process
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.SendExecuteResultAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.Int32,System.Threading.CancellationToken)">
<summary>
Sends a response from executing a child process
</summary>
<param name="channel"></param>
<param name="exitCode">Exit code from the process</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseExecuteProcessResponse(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parses a message as a <see cref="T:EpicGames.Horde.Compute.ExecuteProcessMessage"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ParseReadBlobRequest(EpicGames.Horde.Compute.AgentMessage)">
<summary>
</summary>
<param name="message"></param>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Compute.AgentMessageExtensions.BlobDataStream">
<summary>
Wraps a compute message containing blob data
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.ReadBlobAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.String,System.Int32,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads a blob from the remote
</summary>
<param name="channel">Channel to write to</param>
<param name="path">Path for the blob</param>
<param name="offset">Offset within the blob</param>
<param name="length">Length of data to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Stream containing the blob data</returns>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.SendBlobDataAsync(EpicGames.Horde.Compute.AgentMessageChannel,EpicGames.Horde.Compute.ReadBlobMessage,EpicGames.Horde.Storage.IStorageBackend,System.Threading.CancellationToken)">
<summary>
Writes blob data to a compute channel
</summary>
<param name="channel">Channel to write to</param>
<param name="message">The read request</param>
<param name="storage">Storage backend to retrieve the blob from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.SendBlobDataAsync(EpicGames.Horde.Compute.AgentMessageChannel,EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Int32,EpicGames.Horde.Storage.IStorageBackend,System.Threading.CancellationToken)">
<summary>
Writes blob data to a compute channel
</summary>
<param name="channel">Channel to write to</param>
<param name="locator">Locator for the blob to send</param>
<param name="offset">Starting offset of the data</param>
<param name="length">Length of the data</param>
<param name="storage">Storage backend to retrieve the blob from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.SendXorRequestAsync(EpicGames.Horde.Compute.AgentMessageChannel,System.ReadOnlyMemory{System.Byte},System.Byte,System.Threading.CancellationToken)">
<summary>
Send a message to request that a byte string be xor'ed with a particular value
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageExtensions.AsXorRequest(EpicGames.Horde.Compute.AgentMessage)">
<summary>
Parse a message as an XOR request
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.AgentMessageChannel">
<summary>
Implementation of a compute channel
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.AgentMessageChannel.MessageBuilder">
<summary>
Allows creating new messages in rented memory
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AgentMessageChannel.MessageBuilder.Length">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.MessageBuilder.Advance(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.MessageBuilder.GetMemory(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.MessageBuilder.GetSpan(System.Int32)">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.AgentMessageChannel.Protocol">
<summary>
The negotiated compute protocol version number
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.#ctor(System.Int32,EpicGames.Horde.Compute.ComputeProtocol,EpicGames.Horde.Compute.ComputeBufferReader,EpicGames.Horde.Compute.ComputeBufferWriter,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="channelId"></param>
<param name="protocol">Protocol version number</param>
<param name="recvBufferReader"></param>
<param name="sendBufferWriter"></param>
<param name="logger">Logger for diagnostic output</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.#ctor(EpicGames.Horde.Compute.ComputeSocket,System.Int32,EpicGames.Horde.Compute.ComputeBuffer,EpicGames.Horde.Compute.ComputeBuffer,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="socket"></param>
<param name="channelId"></param>
<param name="recvBuffer"></param>
<param name="sendBuffer"></param>
<param name="logger">Logger for diagnostic output</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.Dispose">
<summary>
Overridable dispose method
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.MarkComplete">
<summary>
Mark the send buffer as complete
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.ReceiveAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannel.CreateMessageAsync(EpicGames.Horde.Compute.AgentMessageType,System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.AgentMessageChannelExtensions">
<summary>
Extension methods to allow creating channels from leases
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannelExtensions.CreateAgentMessageChannel(EpicGames.Horde.Compute.ComputeSocket,System.Int32)">
<summary>
Creates a message channel with the given identifier
</summary>
<param name="socket">Socket to create a channel for</param>
<param name="channelId">Identifier for the channel</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannelExtensions.CreateAgentMessageChannel(EpicGames.Horde.Compute.ComputeSocket,System.Int32,System.Int32)">
<summary>
Creates a message channel with the given identifier
</summary>
<param name="socket">Socket to create a channel for</param>
<param name="channelId">Identifier for the channel</param>
<param name="bufferSize">Size of the send and receive buffer</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannelExtensions.CreateAgentMessageChannel(EpicGames.Horde.Compute.ComputeSocket,System.Int32,System.Int32,System.Int32)">
<summary>
Creates a message channel with the given identifier
</summary>
<param name="socket">Socket to create a channel for</param>
<param name="channelId">Identifier for the channel</param>
<param name="sendBufferSize">Size of the send buffer</param>
<param name="recvBufferSize">Size of the recieve buffer</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannelExtensions.ReceiveAsync(EpicGames.Horde.Compute.AgentMessageChannel,EpicGames.Horde.Compute.AgentMessageType,System.Threading.CancellationToken)">
<summary>
Reads a message from the channel
</summary>
<param name="channel">Channel to receive on</param>
<param name="type">Expected type of the message</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Data for a message that was read. Must be disposed.</returns>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannelExtensions.CreateMessageAsync(EpicGames.Horde.Compute.AgentMessageChannel,EpicGames.Horde.Compute.AgentMessageType,System.Threading.CancellationToken)">
<summary>
Creates a new builder for a message
</summary>
<param name="channel">Channel to send on</param>
<param name="type">Type of the message</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>New builder for messages</returns>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageChannelExtensions.SendAsync(EpicGames.Horde.Compute.AgentMessageChannel,EpicGames.Horde.Compute.AgentMessage,System.Threading.CancellationToken)">
<summary>
Forwards an existing message across a channel
</summary>
<param name="channel">Channel to send on</param>
<param name="message">The message to be sent</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Compute.AgentMessageHandler">
<summary>
Implements the remote end of a compute worker.
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageHandler.#ctor(EpicGames.Core.DirectoryReference,System.Collections.Generic.Dictionary{System.String,System.String},System.Boolean,System.String,System.String,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="sandboxDir">Directory to use for reading/writing files</param>
<param name="envVars">Environment variables to set for any child processes</param>
<param name="executeInProcess">Whether to execute any external assemblies in the current process</param>
<param name="wineExecutablePath">Path to Wine executable. If null, execution under Wine is disabled</param>
<param name="containerEngineExecutable">Path to container engine executable, e.g /usr/bin/podman. If null, execution inside a container is disabled</param>
<param name="logger">Logger for diagnostics</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageHandler.RunAsync(EpicGames.Horde.Compute.ComputeSocket,System.Threading.CancellationToken)">
<summary>
Runs the worker using commands sent along the given socket
</summary>
<param name="socket">Socket to read from</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageHandler.ResolveEnvVars(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<summary>
Flattens and merges available env vars to be used for compute process execution
</summary>
<param name="envVars">Optional extra env vars</param>
<returns>Merged environment variables</returns>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageHandler.getuid">
<summary>
Get user identity (Linux only)
</summary>
<returns>Real user ID of the calling process</returns>
</member>
<member name="M:EpicGames.Horde.Compute.AgentMessageHandler.getgid">
<summary>
Get group identity (Linux only)
</summary>
<returns>Real group ID of the calling process</returns>
</member>
<member name="T:EpicGames.Horde.Compute.AgentStorageBackend">
<summary>
Storage backend which can read bundles over a compute channel
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AgentStorageBackend.SupportsRedirects">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.#ctor(EpicGames.Horde.Compute.AgentMessageChannel)">
<summary>
Constructor
</summary>
<param name="channel"></param>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.OpenBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.ReadBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.WriteBlobAsync(EpicGames.Horde.Storage.BlobLocator,System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.WriteBlobAsync(System.IO.Stream,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.TryGetBlobReadRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.TryGetBlobWriteRedirectAsync(EpicGames.Horde.Storage.BlobLocator,System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.TryGetBlobWriteRedirectAsync(System.Collections.Generic.IReadOnlyCollection{EpicGames.Horde.Storage.BlobLocator},System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.AddAliasAsync(System.String,EpicGames.Horde.Storage.BlobLocator,System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.RemoveAliasAsync(System.String,EpicGames.Horde.Storage.BlobLocator,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.FindAliasesAsync(System.String,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.DeleteRefAsync(EpicGames.Horde.Storage.RefName,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.TryReadRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.WriteRefAsync(EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.HashedBlobRefValue,EpicGames.Horde.Storage.RefOptions,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.UpdateMetadataAsync(EpicGames.Horde.Storage.UpdateMetadataRequest,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.AgentStorageBackend.GetStats(EpicGames.Horde.Storage.StorageStats)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Buffers.PooledBuffer">
<summary>
In-process buffer used to store compute messages
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.PooledBuffer.#ctor(System.Int32)">
<summary>
Constructor
</summary>
<param name="capacity">Total capacity of the buffer</param>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.PooledBuffer.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Constructor
</summary>
<param name="numChunks">Number of chunks in the buffer</param>
<param name="chunkLength">Length of each chunk</param>
<param name="numReaders">Number of readers for this buffer</param>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.PooledBuffer.AddRef">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Buffers.PooledBufferDetail">
<summary>
Core implementation of <see cref="T:EpicGames.Horde.Compute.Buffers.PooledBuffer"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.PooledBufferDetail.Dispose(System.Boolean)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.PooledBufferDetail.SetReadEvent(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.PooledBufferDetail.WaitToReadAsync(System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.PooledBufferDetail.SetWriteEvent">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.PooledBufferDetail.WaitToWriteAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer">
<summary>
Core implementation of <see cref="T:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer"/>
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer.Name">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer.#ctor(EpicGames.Horde.Compute.ComputeBufferDetail)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer.AddRef">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer.CreateNew(System.String,System.Int64)">
<summary>
Create a new shared memory buffer
</summary>
<param name="name">Name of the buffer</param>
<param name="capacity">Capacity of the buffer</param>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer.CreateNew(System.String,System.Int32,System.Int32)">
<summary>
Create a new shared memory buffer
</summary>
<param name="name">Name of the buffer</param>
<param name="numChunks">Number of chunks in the buffer</param>
<param name="chunkLength">Length of each chunk</param>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer.OpenExisting(System.String)">
<summary>
Open an existing buffer by name
</summary>
<param name="name">Name of the buffer to open</param>
</member>
<member name="T:EpicGames.Horde.Compute.Buffers.SharedMemoryBufferDetail">
<summary>
Core implementation of <see cref="T:EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBufferDetail.CreateNew(System.String,System.Int32,System.Int32)">
<summary>
Create a new shared memory buffer
</summary>
<param name="name">Name of the buffer</param>
<param name="numChunks">Number of chunks in the buffer</param>
<param name="chunkLength">Length of each chunk</param>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBufferDetail.OpenExisting(System.String)">
<summary>
Open an existing buffer by name
</summary>
<param name="name">Name of the buffer to open</param>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBufferDetail.Dispose(System.Boolean)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBufferDetail.SetReadEvent(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBufferDetail.WaitToReadAsync(System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBufferDetail.SetWriteEvent">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Buffers.SharedMemoryBufferDetail.WaitToWriteAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Clients.AgentComputeClient">
<summary>
Runs a local Horde Agent process to process compute requests without communicating with a server
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.Cluster">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.Properties">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.AssignedResources">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.Socket">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.Ip">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.ConnectionMode">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.Ports">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.AgentComputeClient.LeaseImpl.CloseAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.AgentComputeClient.#ctor(System.String,System.Int32,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="hordeAgentAssembly">Path to the Horde Agent assembly</param>
<param name="port">Loopback port to connect on</param>
<param name="logger">Factory for logger instances</param>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.AgentComputeClient.GetClusterAsync(EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.AgentComputeClient.TryAssignWorkerAsync(System.Nullable{EpicGames.Horde.Compute.ClusterId},EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.AgentComputeClient.DeclareResourceNeedsAsync(EpicGames.Horde.Compute.ClusterId,System.String,System.Collections.Generic.Dictionary{System.String,System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Clients.LocalComputeClient">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Compute.IComputeClient"/> which marshals data over a loopback connection to a method running on a background task in the same process.
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.LocalComputeClient.LeaseImpl.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.LocalComputeClient.LeaseImpl.CloseAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.LocalComputeClient.#ctor(System.Int32,EpicGames.Core.DirectoryReference,System.Boolean,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="port">Port to connect on</param>
<param name="sandboxDir">Sandbox directory for the worker</param>
<param name="executeInProcess">Whether to run external assemblies in-process. Useful for debugging.</param>
<param name="logger">Logger for diagnostic output</param>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.LocalComputeClient.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.LocalComputeClient.RunListenerAsync(System.Net.Sockets.Socket,EpicGames.Core.DirectoryReference,System.Boolean,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Sets up the loopback listener and calls the server method
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.LocalComputeClient.GetClusterAsync(EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.LocalComputeClient.TryAssignWorkerAsync(System.Nullable{EpicGames.Horde.Compute.ClusterId},EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.LocalComputeClient.DeclareResourceNeedsAsync(EpicGames.Horde.Compute.ClusterId,System.String,System.Collections.Generic.Dictionary{System.String,System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Clients.TunnelHandshakeRequest">
<summary>
Handshake request message for tunneling server
</summary>
<param name="Host">Target host to relay traffic to/from</param>
<param name="Port">Target port</param>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.TunnelHandshakeRequest.#ctor(System.String,System.Int32)">
<summary>
Handshake request message for tunneling server
</summary>
<param name="Host">Target host to relay traffic to/from</param>
<param name="Port">Target port</param>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.TunnelHandshakeRequest.Host">
<summary>Target host to relay traffic to/from</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.TunnelHandshakeRequest.Port">
<summary>Target port</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.TunnelHandshakeRequest.Serialize">
<summary>
Serialize the message
</summary>
<returns>A string based representation</returns>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.TunnelHandshakeRequest.Deserialize(System.String)">
<summary>
Deserialize the message
</summary>
<param name="text">A raw string to deserialize</param>
<returns>A request message</returns>
<exception cref="T:System.Exception"></exception>
</member>
<member name="T:EpicGames.Horde.Compute.Clients.TunnelHandshakeResponse">
<summary>
Handshake response message for tunneling server
</summary>
<param name="IsSuccess">Whether successful or not</param>
<param name="Message">Message with additional information describing the outcome</param>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.TunnelHandshakeResponse.#ctor(System.Boolean,System.String)">
<summary>
Handshake response message for tunneling server
</summary>
<param name="IsSuccess">Whether successful or not</param>
<param name="Message">Message with additional information describing the outcome</param>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.TunnelHandshakeResponse.IsSuccess">
<summary>Whether successful or not</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.TunnelHandshakeResponse.Message">
<summary>Message with additional information describing the outcome</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.TunnelHandshakeResponse.Serialize">
<summary>
Serialize the message
</summary>
<returns>A string based representation</returns>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.TunnelHandshakeResponse.Deserialize(System.String)">
<summary>
Deserialize the message
</summary>
<param name="text">A raw string to deserialize</param>
<returns>A request message</returns>
<exception cref="T:System.Exception"></exception>
</member>
<member name="T:EpicGames.Horde.Compute.Clients.ServerComputeClientException">
<summary>
Exception for ServerComputeClient
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClientException.#ctor(System.String)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClientException.#ctor(System.String,System.Exception)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Clients.ServerComputeClient">
<summary>
Helper class to enlist remote resources to perform compute-intensive tasks.
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.Clients.ServerComputeClient.NonceLength">
<summary>
Length of the nonce sent as part of handshaking between initiator and remote
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClient.LeaseImpl.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClient.LeaseImpl.CloseAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClient.#ctor(System.Net.Http.HttpClient,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="httpClient">Factory for constructing http client instances</param>
<param name="logger">Logger for diagnostic messages</param>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClient.#ctor(System.Net.Http.HttpClient,System.String,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="httpClient">Factory for constructing http client instances</param>
<param name="sessionId">Arbitrary ID used for identifying this compute client. If not provided, a random one will be generated</param>
<param name="logger">Logger for diagnostic messages</param>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClient.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClient.GetClusterAsync(EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClient.TryAssignWorkerAsync(System.Nullable{EpicGames.Horde.Compute.ClusterId},EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.ServerComputeClient.DeclareResourceNeedsAsync(EpicGames.Horde.Compute.ClusterId,System.String,System.Collections.Generic.Dictionary{System.String,System.Int32},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Clients.NoComputeAgentsFoundException">
<summary>
Exception indicating that no matching compute agents were found
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.NoComputeAgentsFoundException.ClusterId">
<summary>
The compute cluster requested
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Clients.NoComputeAgentsFoundException.Requirements">
<summary>
Requested agent requirements
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Clients.NoComputeAgentsFoundException.#ctor(EpicGames.Horde.Compute.ClusterId,EpicGames.Horde.Compute.Requirements)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ClusterId">
<summary>
Identifier for a compute cluster
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ClusterId._inner">
<summary>
The text representing this id
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterId.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="input">Unique id for the string</param>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterId.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterId.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterId.Equals(EpicGames.Horde.Compute.ClusterId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterId.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterId.op_Equality(EpicGames.Horde.Compute.ClusterId,EpicGames.Horde.Compute.ClusterId)">
<inheritdoc cref="M:EpicGames.Horde.StringId.op_Equality(EpicGames.Horde.StringId,EpicGames.Horde.StringId)"/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterId.op_Inequality(EpicGames.Horde.Compute.ClusterId,EpicGames.Horde.Compute.ClusterId)">
<inheritdoc cref="M:EpicGames.Horde.StringId.op_Inequality(EpicGames.Horde.StringId,EpicGames.Horde.StringId)"/>
</member>
<member name="T:EpicGames.Horde.Compute.ClusterIdCbConverter">
<summary>
Compact binary converter for ClusterId
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterIdCbConverter.Read(EpicGames.Serialization.CbField)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterIdCbConverter.Write(EpicGames.Serialization.CbWriter,EpicGames.Horde.Compute.ClusterId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterIdCbConverter.WriteNamed(EpicGames.Serialization.CbWriter,EpicGames.Serialization.CbFieldName,EpicGames.Horde.Compute.ClusterId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ClusterIdJsonConverter">
<summary>
Type converter for ClusterId to and from JSON
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterIdJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterIdJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Compute.ClusterId,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ClusterIdTypeConverter">
<summary>
Type converter from strings to ClusterId objects
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterIdTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ClusterIdTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBuffer">
<summary>
In-process buffer used to store compute messages
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeBuffer.MaxChunks">
<summary>
Maximum number of chunks in a buffer
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeBuffer.MaxReaders">
<summary>
Maximum number of readers
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBuffer.#ctor(EpicGames.Horde.Compute.ComputeBufferDetail)">
<summary>
Constructor
</summary>
<param name="detail">Resources shared between instances of the buffer</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBuffer.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBuffer.Dispose(System.Boolean)">
<summary>
Overridable dispose method
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBuffer.CreateReader">
<summary>
Creates a new reader for this buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBuffer.CreateWriter">
<summary>
Writer for this buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBuffer.AddRef">
<summary>
Creates a new reference to the underlying buffer. The underlying resources will only be destroyed once all instances are disposed of.
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferReader">
<summary>
Read interface for a compute buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferReader.AddRef">
<summary>
Create a new reader instance using the same underlying buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferReader.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferReader.Detach">
<summary>
Detaches this reader from the underlying buffer
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ComputeBufferReader.IsComplete">
<summary>
Whether this buffer is complete (no more data will be added)
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferReader.AdvanceReadPosition(System.Int32)">
<summary>
Updates the read position
</summary>
<param name="length">Size of data that was read</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferReader.GetReadBuffer">
<summary>
Gets the next data to read
</summary>
<returns>Memory to read from</returns>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferReader.ReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<summary>
Read from a buffer into another buffer
</summary>
<param name="buffer">Memory to receive the read data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Number of bytes read</returns>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferReader.WaitToReadAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
Wait for data to be available, or for the buffer to be marked as complete
</summary>
<param name="minLength">Minimum amount of data to read</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if new data is available, false if the buffer is complete</returns>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferWriter">
<summary>
Buffer that can receive data from a remote machine.
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferWriter.AddRef">
<summary>
Create a new writer instance using the same underlying buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferWriter.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferWriter.AdvanceWritePosition(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferWriter.GetWriteBuffer">
<summary>
Gets memory to write to
</summary>
<returns>Memory to be written to</returns>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferWriter.MarkComplete">
<summary>
Mark the output to this buffer as complete
</summary>
<returns>Whether the writer was marked as complete. False if the writer has already been marked as complete.</returns>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferWriter.WriteAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Writes data into a buffer from a memory block
</summary>
<param name="buffer">The data to write</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferWriter.WaitToWriteAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
Gets memory to write to
</summary>
<param name="minLength">Minimum size of the desired write buffer</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Memory to be written to</returns>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail">
<summary>
State shared between buffer instances
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail.WriteState">
<summary>
Write state for a chunk
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeBufferDetail.WriteState.MovedToNext">
<summary>
Writer has moved to the next chunk
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeBufferDetail.WriteState.Writing">
<summary>
Chunk is still being appended to
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeBufferDetail.WriteState.Complete">
<summary>
This chunk marks the end of the stream
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail.ChunkState">
<summary>
Stores the state of a chunk in a 64-bit value, which can be updated atomically
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.ChunkState.#ctor(System.UInt64)">
<summary>
Stores the state of a chunk in a 64-bit value, which can be updated atomically
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.ChunkState.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail.ChunkStatePtr">
<summary>
Wraps a pointer to the state of a chunk
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.ChunkStatePtr.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail.ReaderState">
<summary>
State of a reader
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.ReaderState.#ctor(System.UInt64)">
<summary>
State of a reader
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.ReaderState.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail.ReaderStatePtr">
<summary>
Wraps a pointer to the state of a writer
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail.WriterState">
<summary>
State of the writer
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.WriterState.#ctor(System.UInt64)">
<summary>
State of the writer
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.WriterState.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail.WriterStatePtr">
<summary>
Wraps a pointer to the state of a writer
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeBufferDetail.HeaderPtr">
<summary>
Tracked state of the buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.#ctor(EpicGames.Horde.Compute.ComputeBufferDetail.HeaderPtr,System.Memory{System.Byte}[])">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.AddRef">
<summary>
Increment the reference count on this object
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.Release">
<summary>
Decrement the reference count on this object, and dispose of it once it reaches zero
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.Dispose(System.Boolean)">
<summary>
Overridable dispose method
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.SetReadEvent(System.Int32)">
<summary>
Signals a read event
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.SetAllReadEvents">
<summary>
Signals read events for every reader
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.WaitToReadAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
Waits for a read event to be signalled
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.SetWriteEvent">
<summary>
Signals the write event
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.WaitToWriteAsync(System.Threading.CancellationToken)">
<summary>
Waits for the write event to be signalled
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.CreateReader">
<summary>
Allocate a new reader
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.IsComplete(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.DetachReader(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.AdvanceReadPosition(System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.GetReadBuffer(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.WaitToReadAsync(System.Int32,System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.MarkComplete">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.AdvanceWritePosition(System.Int32)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.GetWriteBuffer">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeBufferDetail.WaitToWriteAsync(System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeChannel">
<summary>
Conventional TCP-like interface for writing data to a socket. Sends are "push", receives are "pull".
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ComputeChannel.Reader">
<summary>
Reader for the channel
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ComputeChannel.Writer">
<summary>
Writer for the channel
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeChannel.#ctor(EpicGames.Horde.Compute.ComputeBufferReader,EpicGames.Horde.Compute.ComputeBufferWriter)">
<summary>
Constructor
</summary>
<param name="recvBufferReader"></param>
<param name="sendBufferWriter"></param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeChannel.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeChannel.SendAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Sends data to a remote channel
</summary>
<param name="memory">Memory to write</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeChannel.RecvAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<summary>
Marks a channel as complete
</summary>
<param name="buffer">Buffer to receive the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeChannel.RecvMessageAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<summary>
Reads a complete message from the given socket, retrying reads until the buffer is full.
</summary>
<param name="buffer">Buffer to store the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeChannel.TryRecvMessageAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<summary>
Reads either a full message or end of stream from the channel
</summary>
<param name="buffer">Buffer to store the data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeChannel.MarkComplete">
<summary>
Mark the channel as complete (ie. that no more data will be sent)
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeException">
<summary>
Generic class for compute errors
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeException.#ctor(System.String)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeException.#ctor(System.String,System.Exception)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeInternalException">
<summary>
Exception thrown for internal reasons
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeInternalException.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="message"></param>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeRemoteException">
<summary>
Exception thrown on a remote machine
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeRemoteException.#ctor(EpicGames.Horde.Compute.ExceptionMessage)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeRemoteException.#ctor(System.String,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeRemoteException.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ConnectionMetadataPort">
<summary>
Describes port used by a compute task
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ConnectionMetadataPort.ComputeId">
<summary>
Built-in port used for agent and compute task communication
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ConnectionMetadataPort.Port">
<summary>
Externally visible port that is mapped to agent port
In direct connection mode, these two are identical.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ConnectionMetadataPort.AgentPort">
<summary>
Port the local process on the agent is listening on
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ConnectionMetadataPort.#ctor(System.Int32,System.Int32)">
<summary>
Constructor
</summary>
<param name="port"></param>
<param name="agentPort"></param>
</member>
<member name="T:EpicGames.Horde.Compute.AssignComputeRequest">
<summary>
Request a machine to execute compute requests
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeRequest.Protocol">
<summary>
Desired protocol version for the client
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeRequest.Requirements">
<summary>
Condition to identify machines that can execute the request
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeRequest.RequestId">
<summary>
Arbitrary ID to correlate the same request over multiple calls.
It's recommended to pick something globally unique, such as a UUID.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeRequest.Connection">
<summary>
Details for making an agent connection
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ConnectionMetadataRequest">
<summary>
Request details for making an agent connection
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ConnectionMetadataRequest.ClientPublicIp">
<summary>
Public IP of client requesting a compute resource (initiator)
As communication between client and Horde server may be on an internal network,
the client is responsible for resolving and providing this information.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ConnectionMetadataRequest.Ports">
<summary>
TCP/IP ports the compute resource will listen to.
Key = arbitrary name identifying the port
Value = actual port number
Relay connection mode uses this information to set up port forwarding.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ConnectionMetadataRequest.ModePreference">
<summary>
Type of connection mode that is preferred by the client. Server can still override.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ConnectionMetadataRequest.PreferPublicIp">
<summary>
Prefer connecting to agent over a public IP even if a more optimal route is available. Server can still override.
This is useful to avoid sending traffic over VPN tunnels.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ConnectionMetadataRequest.Encryption">
<summary>
Encryption mode to request. Server can still override.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ConnectionMetadataRequest.InactivityTimeoutMs">
<summary>
Maximum duration (in milliseconds) that communication can be inactive between
the compute client and task-running agent before the connection is terminated.
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.GetClusterResponse">
<summary>
Response to a cluster lookup request
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.GetClusterResponse.ClusterId">
<summary>
Compute cluster ID
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.AssignComputeResponse">
<summary>
Response to compute allocation request
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Ip">
<summary>
IP address of the remote agent machine running the compute task
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.ConnectionMode">
<summary>
How to establish a connection to the remote machine
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.ConnectionAddress">
<summary>
An optional address (host:port) to use when connecting to agent via tunnel or relay mode
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Port">
<summary>
Port number on the remote machine
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Ports">
<summary>
Assigned ports (externally visible port -> local port on agent)
Key is an arbitrary name identifying the port (same as was given in <see cref="T:EpicGames.Horde.Compute.ConnectionMetadataRequest" />)
When relay mode is used, ports can mapped to a different externally visible port.
If compute task uses and listens to port 7000, that port can be externally represented as something else.
For example, port 32743 can be pointed to port 7000.
This makes no difference for the compute task process, but the client/initiator making connections must
pay attention to this mapping.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Encryption">
<summary>
Encryption used
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Nonce">
<summary>
Cryptographic nonce to identify the request, as a hex string
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Key">
<summary>
AES key for the channel, as a hex string
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Certificate">
<summary>
X.509 certificate used for SSL/TLS encryption
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.ClusterId">
<summary>
Which cluster this remote machine belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.AgentId">
<summary>
Identifier for the remote machine
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.AgentVersion">
<summary>
Agent version for the remote machine
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.LeaseId">
<summary>
Identifier for the new lease on the remote machine
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.AssignedResources">
<summary>
Resources assigned to this machine
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Protocol">
<summary>
Version number for the compute protocol
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.AssignComputeResponse.Properties">
<summary>
Properties of the agent assigned to do the work
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ConnectionMode">
<summary>
Describe how to connect to the remote machine
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ConnectionMode.Direct">
<summary>
Connection is established directly to remote machine, behaving like a normal TCP/UDP connection
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ConnectionMode.Tunnel">
<summary>
Connection is tunneled through Horde server.
When connecting, initiator must send a tunnel handshake request indicating which machine/IP to tunnel to.
Once handshake is complete, TCP connection behaves as normal (UDP not supported)
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ConnectionMode.Relay">
<summary>
Connection is established to remote machine via a relay.
Forwarding is transparent and behaves like a normal TCP/UDP connection.
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.Encryption">
<summary>
Describe encryption for the compute resource connection
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.Encryption.None">
<summary>
No encryption enabled
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.Encryption.Aes">
<summary>
Use custom AES-based encryption transport
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.Encryption.Ssl">
<summary>
Use SSL/TLS encryption with RSA 2048-bits
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.Encryption.SslEcdsaP256">
<summary>
Use SSL/TLS encryption with ECDSA P-256
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ResourceNeedsMessage">
<summary>
Resource needs declaration request
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ResourceNeedsMessage.SessionId">
<summary>
Unique session ID performing compute resource requests
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ResourceNeedsMessage.Pool">
<summary>
Pool of agents requesting resources from
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ResourceNeedsMessage.ResourceNeeds">
<summary>
Key/value of resources needed by session (such as CPU or memory, see KnownPropertyNames in Horde.Server)
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.GetResourceNeedsResponse">
<summary>
Resource needs response
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.GetResourceNeedsResponse.ResourceNeeds">
<summary>
List of resource needs
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeProtocol">
<summary>
Version number for the compute protocol
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeProtocol.Unknown">
<summary>
No version specified
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeProtocol.Initial">
<summary>
Initial version number
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeProtocol.NewCpuEnvVars">
<summary>
Set new env vars UE_HORDE_CPU_COUNT and UE_HORDE_CPU_MULTIPLIER
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ComputeProtocol.Latest">
<summary>
Constant for the latest protocol version
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeProtocolUtilities">
<summary>
Helper methods for compute protocol version numbers
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeProtocolUtilities.GetBundleOptions(EpicGames.Horde.Compute.ComputeProtocol)">
<summary>
Gets the appropriate bundle options for a compute protocol version number
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeSocket">
<summary>
Socket for sending and reciving data using a "push" model. The application can attach multiple writers to accept received data.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ComputeSocket.Protocol">
<summary>
The current protocol number
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ComputeSocket.Logger">
<summary>
Logger for diagnostic messages
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeSocket.AttachRecvBuffer(System.Int32,EpicGames.Horde.Compute.ComputeBuffer)">
<summary>
Attaches a buffer to receive data.
</summary>
<param name="channelId">Channel to receive data on</param>
<param name="recvBuffer">Writer for the buffer to store received data</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeSocket.AttachSendBuffer(System.Int32,EpicGames.Horde.Compute.ComputeBuffer)">
<summary>
Attaches a buffer to send data.
</summary>
<param name="channelId">Channel to receive data on</param>
<param name="sendBuffer">Reader for the buffer to send data from</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeSocket.CreateChannel(System.Int32)">
<summary>
Creates a channel using a socket and receive buffer
</summary>
<param name="channelId">Channel id to send and receive data</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeSocket.CreateChannel(System.Int32,EpicGames.Horde.Compute.ComputeBuffer,EpicGames.Horde.Compute.ComputeBuffer)">
<summary>
Creates a channel using a socket and receive buffer
</summary>
<param name="channelId">Channel id to send and receive data</param>
<param name="recvBuffer">Buffer for receiving data</param>
<param name="sendBuffer">Buffer for sending data</param>
</member>
<member name="T:EpicGames.Horde.Compute.WorkerComputeSocket">
<summary>
Provides functionality for attaching buffers for compute workers
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.WorkerComputeSocket.IpcEnvVar">
<summary>
Name of the environment variable for passing the name of the compute channel
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.WorkerComputeSocket.Protocol">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.WorkerComputeSocket.Logger">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocket.#ctor(EpicGames.Horde.Compute.ComputeBufferWriter,Microsoft.Extensions.Logging.ILogger)">
<summary>
Creates a socket for a worker
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocket.Open">
<summary>
Opens a socket which allows a worker to communicate with the Horde Agent
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocket.Open(Microsoft.Extensions.Logging.ILogger)">
<summary>
Opens a socket which allows a worker to communicate with the Horde Agent
</summary>
<param name="logger">Logger for diagnostic messages</param>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocket.Open(System.String,Microsoft.Extensions.Logging.ILogger)">
<summary>
Opens a socket which allows a worker to communicate with the Horde Agent
</summary>
<param name="commandBufferName">Name of the command buffer</param>
<param name="logger">Logger for diagnostic messages</param>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocket.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocket.AttachRecvBuffer(System.Int32,EpicGames.Horde.Compute.ComputeBuffer)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocket.AttachSendBuffer(System.Int32,EpicGames.Horde.Compute.ComputeBuffer)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.WorkerComputeSocketBridge">
<summary>
Operates a server that a child process can open a <see cref="T:EpicGames.Horde.Compute.WorkerComputeSocket"/> to.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.WorkerComputeSocketBridge.BufferName">
<summary>
Name of the buffer to pass via <see cref="F:EpicGames.Horde.Compute.WorkerComputeSocket.IpcEnvVar"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocketBridge.#ctor(EpicGames.Horde.Compute.Buffers.SharedMemoryBuffer,EpicGames.Horde.Compute.ComputeBufferReader,EpicGames.Core.BackgroundTask,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocketBridge.CreateAsync(EpicGames.Horde.Compute.ComputeSocket,Microsoft.Extensions.Logging.ILogger)">
<summary>
Creates a new server for <see cref="T:EpicGames.Horde.Compute.WorkerComputeSocket"/>
</summary>
<param name="socket">Socket to connect to</param>
<param name="logger">Logger for errors</param>
<returns>New server instance</returns>
</member>
<member name="M:EpicGames.Horde.Compute.WorkerComputeSocketBridge.DisposeAsync">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.RemoteComputeSocket">
<summary>
Manages a set of readers and writers to buffers across a transport layer
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.RemoteComputeSocket.Protocol">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.RemoteComputeSocket.Logger">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.RemoteComputeSocket.#ctor(EpicGames.Horde.Compute.ComputeTransport,EpicGames.Horde.Compute.ComputeProtocol,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="transport">Transport to communicate with the remote</param>
<param name="protocol">The protocol version number</param>
<param name="logger">Logger for trace output</param>
</member>
<member name="M:EpicGames.Horde.Compute.RemoteComputeSocket.CloseAsync(System.Threading.CancellationToken)">
<summary>
Attempt to gracefully close the current connection and shutdown both ends of the transport
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.RemoteComputeSocket.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.RemoteComputeSocket.SendKeepAliveMessageAsync(System.Threading.CancellationToken)">
<summary>
Sends a keep alive message to the remote machine. Does not wait for a response. Designed to keep a connection open when the remote is eagerly trying to close it.
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.RemoteComputeSocket.SendAsync(System.Int32,System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.RemoteComputeSocket.MarkCompleteAsync(System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.RemoteComputeSocket.AttachRecvBuffer(System.Int32,EpicGames.Horde.Compute.ComputeBuffer)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.RemoteComputeSocket.AttachSendBuffer(System.Int32,EpicGames.Horde.Compute.ComputeBuffer)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeTransport">
<summary>
Low-level interface for transferring data
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeTransport.SendAsync(System.Buffers.ReadOnlySequence{System.Byte},System.Threading.CancellationToken)">
<summary>
Writes data to the underlying transport
</summary>
<param name="buffer">Buffer to be written</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeTransport.RecvAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<summary>
Reads data from the underlying transport into an output buffer
</summary>
<param name="buffer">Buffer to read into</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeTransport.MarkCompleteAsync(System.Threading.CancellationToken)">
<summary>
Indicate that all data has been read and written to the transport layer, and that there will be no more calls to send/recv
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeTransport.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeTransport.RecvFullAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<summary>
Fill the given buffer with data
</summary>
<param name="buffer">Buffer to read into</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeTransport.RecvOptionalAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<summary>
Fill the given buffer with data
</summary>
<param name="buffer">Buffer to read into</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeTransport.SendAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
<summary>
Writes data to the underlying transport
</summary>
<param name="buffer">Buffer to be written</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Compute.ExternalIpResolverException">
<summary>
Exception for external IP resolver
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ExternalIpResolverException.#ctor(System.String)">
<inheritdoc />
</member>
<member name="M:EpicGames.Horde.Compute.ExternalIpResolverException.#ctor(System.String,System.Exception)">
<inheritdoc />
</member>
<member name="T:EpicGames.Horde.Compute.ExternalIpResolver">
<summary>
Find public IP address of local machine by querying a third-party IP lookup service
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.ExternalIpResolver._resolvedIp">
<summary>
Cache of last resolved IP address. Once resolved, the address is cached for the lifetime of this class.
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ExternalIpResolver.#ctor(System.Net.Http.HttpClient)">
<summary>
Constructor
</summary>
<param name="httpClient"></param>
</member>
<member name="M:EpicGames.Horde.Compute.ExternalIpResolver.GetExternalIpAddressAsync(System.Threading.CancellationToken)">
<summary>
Get the external, public-facing IP of local machine
</summary>
<param name="cancellationToken">Cancellation token</param>
<returns>External IP address</returns>
<exception cref="T:EpicGames.Horde.Compute.ExternalIpResolverException">If unable to resolve</exception>
</member>
<member name="T:EpicGames.Horde.Compute.IComputeClient">
<summary>
Interface for uploading compute work to remote machines
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.IComputeClient.GetClusterAsync(EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Find the most suitable cluster to execute a given compute assignment request
</summary>
<param name="requirements">Requirements for the agent</param>
<param name="requestId">Optional ID identifying the request over multiple calls, such as retrying the same request</param>
<param name="connection">Optional preference of connection details</param>
<param name="logger">Logger for output from this worker</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.IComputeClient.TryAssignWorkerAsync(System.Nullable{EpicGames.Horde.Compute.ClusterId},EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Adds a new remote request
</summary>
<param name="clusterId">Optional cluster ID. If not set, cluster will automatically be resolved by server</param>
<param name="requirements">Requirements for the agent</param>
<param name="requestId">Optional ID identifying the request over multiple calls, such as retrying the same request</param>
<param name="connection">Optional preference of connection details</param>
<param name="logger">Logger for output from this worker</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Compute.IComputeClient.DeclareResourceNeedsAsync(EpicGames.Horde.Compute.ClusterId,System.String,System.Collections.Generic.Dictionary{System.String,System.Int32},System.Threading.CancellationToken)">
<summary>
Declare resource needs for current client
Helps inform the server about current demand.
Can be called as often as necessary to keep needs up-to-date.
</summary>
<param name="clusterId">Cluster to execute the request</param>
<param name="pool">Which pool this applies to</param>
<param name="resourceNeeds">Properties with a target amount of each, such as CPU or RAM</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Compute.ComputeClientExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Compute.IComputeClient"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeClientExtensions.TryAssignWorkerAsync(EpicGames.Horde.Compute.IComputeClient,EpicGames.Horde.Compute.ClusterId,EpicGames.Horde.Compute.Requirements,System.String,System.Nullable{EpicGames.Horde.Compute.ConnectionMode},Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Compute.IComputeClient.TryAssignWorkerAsync(System.Nullable{EpicGames.Horde.Compute.ClusterId},EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)" />
</member>
<member name="M:EpicGames.Horde.Compute.ComputeClientExtensions.TryAssignWorkerAsync(EpicGames.Horde.Compute.IComputeClient,EpicGames.Horde.Compute.ClusterId,EpicGames.Horde.Compute.Requirements,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Compute.IComputeClient.TryAssignWorkerAsync(System.Nullable{EpicGames.Horde.Compute.ClusterId},EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)" />
</member>
<member name="M:EpicGames.Horde.Compute.ComputeClientExtensions.TryAssignWorkerAsync(EpicGames.Horde.Compute.IComputeClient,EpicGames.Horde.Compute.ClusterId,EpicGames.Horde.Compute.Requirements,System.String,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Compute.IComputeClient.TryAssignWorkerAsync(System.Nullable{EpicGames.Horde.Compute.ClusterId},EpicGames.Horde.Compute.Requirements,System.String,EpicGames.Horde.Compute.ConnectionMetadataRequest,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)" />
</member>
<member name="T:EpicGames.Horde.Compute.ComputeClientException">
<summary>
Exception from ComputeClient
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.ComputeClientException.#ctor(System.String)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.IComputeLease">
<summary>
Full-duplex channel for sending and receiving messages
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.IComputeLease.Cluster">
<summary>
Compute cluster ID
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.IComputeLease.Properties">
<summary>
Properties of the remote machine
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.IComputeLease.AssignedResources">
<summary>
Resources assigned to this lease
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.IComputeLease.Socket">
<summary>
Socket to communicate with the remote
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.IComputeLease.Ip">
<summary>
IP address of the remote agent machine running the compute task
When using relay connection mode, this may be the IP of the relay rather than the remote machine itself.
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.IComputeLease.ConnectionMode">
<summary>
How to establish a connection to the remote machine (when not using the default socket)
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.IComputeLease.Ports">
<summary>
Assigned ports (externally visible port -> local port on agent)
Key is an arbitrary name identifying the port (same as was given when requesting the lease>)
When relay mode is used, ports can mapped to a different externally visible port.
If compute task uses and listens to port 7000, that port can be externally represented as something else.
For example, port 32743 can be pointed to port 7000.
This makes no difference for the compute task process, but the client/initiator making connections must
pay attention to this mapping.
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.IComputeLease.CloseAsync(System.Threading.CancellationToken)">
<summary>
Relinquish the lease gracefully
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Compute.RequestIdAllocator">
<summary>
Manages and hands out request IDs for compute allocation requests
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.RequestIdAllocator.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.RequestIdAllocator.StartBatch">
<summary>
Starts a new batch of requests.
Any requests started during current batch will be reset and marked as unfinished.
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.RequestIdAllocator.AllocateId">
<summary>
Get or create a request ID and mark it as part of current batch
</summary>
<returns>A request ID</returns>
</member>
<member name="M:EpicGames.Horde.Compute.RequestIdAllocator.MarkAccepted(System.String)">
<summary>
Mark a request Id as accepted. It won't be re-used for any future requests.
</summary>
<param name="reqId">Request ID to mark as finished</param>
</member>
<member name="T:EpicGames.Horde.Compute.Requirements">
<summary>
Requirements for a compute task to be assigned an agent
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Requirements.Pool">
<summary>
Pool of machines to draw from
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Requirements.Condition">
<summary>
Condition string to be evaluated against the machine spec, eg. cpu-cores >= 10 &amp;&amp; ram.mb >= 200 &amp;&amp; pool == 'worker'
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Requirements.Properties">
<summary>
Properties required from the remote machine
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Requirements.Resources">
<summary>
Resources used by the process
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Requirements.Exclusive">
<summary>
Whether we require exclusive access to the device
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Requirements.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Requirements.#ctor(EpicGames.Horde.Common.Condition)">
<summary>
Construct a requirements object with a condition
</summary>
<param name="condition">Condition for matching machines to execute the work</param>
</member>
<member name="M:EpicGames.Horde.Compute.Requirements.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.ResourceRequirements">
<summary>
Specifies requirements for resource allocation
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ResourceRequirements.Min">
<summary>
Minimum allocation of the requested resource
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.ResourceRequirements.Max">
<summary>
Maximum allocation of the requested resource. Allocates as much as possible unless capped.
</summary>
</member>
<member name="T:EpicGames.Horde.Compute.Transports.AesTransport">
<summary>
Transport layer that adds AES encryption on top of an underlying transport implementation.
Key must be exchanged separately (e.g. via the HTTPS request to negotiate a lease with the server).
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.Transports.AesTransport.KeyLength">
<summary>
Length of the required encryption key.
</summary>
</member>
<member name="F:EpicGames.Horde.Compute.Transports.AesTransport.NonceLength">
<summary>
Length of the nonce. This should be a cryptographically random number, and does not have to be secret.
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.AesTransport.#ctor(EpicGames.Horde.Compute.ComputeTransport,System.ReadOnlySpan{System.Byte},System.Boolean,System.Int32)">
<summary>
Constructor
</summary>
<param name="inner">The underlying transport implementation that will be encrypted</param>
<param name="key">Encryption key. Should be generated with a cryptographically secure random number generator</param>
<param name="leaveInnerOpen">Whether to dispose the inner transport when this instance is disposed</param>
<param name="readBufferSize">Default receive buffer size for data that needs to buffered for next read. Will automatically grow</param>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.AesTransport.CreateKey">
<summary>
Create a random key for this transport
</summary>
<returns>A cryptographically random key</returns>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.AesTransport.SendAsync(System.Buffers.ReadOnlySequence{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.AesTransport.RecvAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.AesTransport.MarkCompleteAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.AesTransport.DisposeAsync">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport">
<summary>
Compute transport which wraps another transport acting as a watchdog timer for inactivity
If no send or receive activity has been seen within specified timeout, the cancellation source will be triggered
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport.NoDataTimeout">
<summary>
Timeout before triggering a cancellation
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport.#ctor(EpicGames.Horde.Compute.ComputeTransport,System.Nullable{System.TimeSpan})">
<summary>
Constructor
</summary>
<param name="inner">Transport to watch</param>
<param name="noDataTimeout">Timeout before cancelling</param>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport.DisposeAsync">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport.TimeSinceActivity">
<summary>
Time since last send or receive completed
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport.RecvAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport.SendAsync(System.Buffers.ReadOnlySequence{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport.MarkCompleteAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.IdleTimeoutTransport.StartWatchdogTimerAsync(System.Threading.CancellationTokenSource,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Start a loop monitoring activity on the inner transport
</summary>
<param name="cts">Source to cancel when transport times out</param>
<param name="logger">Logger</param>
<param name="cancellationToken">Cancellation token</param>
</member>
<member name="T:EpicGames.Horde.Compute.Transports.PipeTransport">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Compute.ComputeTransport"/> for communicating over a <see cref="T:System.IO.Pipelines.Pipe"/>.
(Note: this uses a .NET in-process pipe, not an IPC pipe).
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Transports.PipeTransport.Position">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.PipeTransport.#ctor(System.IO.Pipelines.PipeReader,System.IO.Pipelines.PipeWriter)">
<summary>
Constructor
</summary>
<param name="reader">Reader for the pipe</param>
<param name="writer">Writer for the pipe</param>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.PipeTransport.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.PipeTransport.RecvAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.PipeTransport.SendAsync(System.Buffers.ReadOnlySequence{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.PipeTransport.MarkCompleteAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Transports.StreamTransport">
<summary>
Compute transport which wraps an underlying stream
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.StreamTransport.#ctor(System.IO.Stream,System.Boolean)">
<summary>
Constructor
</summary>
<param name="stream">Stream to use for the transferring data</param>
<param name="leaveOpen">Whether to leave the inner stream open when disposing</param>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.StreamTransport.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.StreamTransport.RecvAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.StreamTransport.SendAsync(System.Buffers.ReadOnlySequence{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.StreamTransport.MarkCompleteAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Compute.Transports.TcpSslTransport">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Compute.ComputeTransport"/> for communicating over a socket using SSL/TLS
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.#ctor(System.Net.Sockets.Socket,System.Byte[],System.Boolean)">
<summary>
Constructor
</summary>
<param name="socket">Socket to communicate over</param>
<param name="certData">Certificate used for auth on both server and client</param>
<param name="isServer">Whether socket is acting as a server or client</param>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.#ctor(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Boolean)">
<summary>
Constructor
</summary>
<param name="socket">Socket to communicate over</param>
<param name="cert">Certificate used for auth on both server and client</param>
<param name="isServer">Whether socket is acting as a server or client</param>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.AuthenticateAsync(System.Threading.CancellationToken)">
<summary>
Perform SSL authentication
</summary>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.ValidateCert(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
<summary>
Checks the certificate returned by the server is indeed the correct one
</summary>
<param name="sender"></param>
<param name="certificate"></param>
<param name="chain"></param>
<param name="sslPolicyErrors"></param>
<returns>True if it matches</returns>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.RecvAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.SendAsync(System.Buffers.ReadOnlySequence{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.MarkCompleteAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpSslTransport.GenerateCert(EpicGames.Horde.Compute.Encryption)">
<summary>
Generate a self-signed certificate to be used for communicating between client and server of this transport
</summary>
<returns>A X509 certificate serialized as bytes</returns>
</member>
<member name="T:EpicGames.Horde.Compute.Transports.TcpTransport">
<summary>
Implementation of <see cref="T:EpicGames.Horde.Compute.ComputeTransport"/> for communicating over a socket
</summary>
</member>
<member name="P:EpicGames.Horde.Compute.Transports.TcpTransport.Position">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpTransport.#ctor(System.Net.Sockets.Socket)">
<summary>
Constructor
</summary>
<param name="socket">Socket to communicate over</param>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpTransport.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpTransport.RecvAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpTransport.SendAsync(System.Buffers.ReadOnlySequence{System.Byte},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Compute.Transports.TcpTransport.MarkCompleteAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Dashboard.GetDashboardConfigResponse">
<summary>
Setting information required by dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.ExternalIssueServiceName">
<summary>
The name of the external issue service
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.ExternalIssueServiceUrl">
<summary>
The url of the external issue service
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.PerforceSwarmUrl">
<summary>
The url of the perforce swarm installation
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.RobomergeUrl">
<summary>
Url of Robomergem installation
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.HelpEmailAddress">
<summary>
Help email address that users can contact with issues
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.HelpSlackChannel">
<summary>
Help slack channel that users can use for issues
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.AuthMethod">
<summary>
The auth method in use
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.DeviceProblemCooldownMinutes">
<summary>
Device problem cooldown in minutes
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.AgentCategories">
<summary>
Categories to display on the agents page
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.PoolCategories">
<summary>
Categories to display on the pools page
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardConfigResponse.ArtifactTypes">
<summary>
Configured artifact types
</summary>
</member>
<member name="T:EpicGames.Horde.Dashboard.GetDashboardPoolCategoryResponse">
<summary>
Describes a category for the pools page
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPoolCategoryResponse.Name">
<summary>
Title for the tab
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPoolCategoryResponse.Condition">
<summary>
Condition for pools to be included in this category
</summary>
</member>
<member name="T:EpicGames.Horde.Dashboard.GetDashboardAgentCategoryResponse">
<summary>
Describes a category for the agents page
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardAgentCategoryResponse.Name">
<summary>
Title for the tab
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardAgentCategoryResponse.Condition">
<summary>
Condition for agents to be included in this category
</summary>
</member>
<member name="T:EpicGames.Horde.Dashboard.CreateDashboardPreviewRequest">
<summary>
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.CreateDashboardPreviewRequest.Summary">
<summary>
A summary of what the preview item changes
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.CreateDashboardPreviewRequest.DeployedCL">
<summary>
The CL the preview was deployed in
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.CreateDashboardPreviewRequest.ExampleLink">
<summary>
An example of the preview site users can view the changes
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.CreateDashboardPreviewRequest.DiscussionLink">
<summary>
Optional Link for discussion the preview item
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.CreateDashboardPreviewRequest.TrackingLink">
<summary>
Optional Link for discussing the preview item
</summary>
</member>
<member name="T:EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest">
<summary>
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest.Id">
<summary>
The preview item to update
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest.Summary">
<summary>
A summary of what the preview item changes
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest.DeployedCL">
<summary>
The CL the preview was deployed in
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest.Open">
<summary>
Whather the preview is under consideration, if false the preview item didn't pass muster
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest.ExampleLink">
<summary>
An example of the preview site users can view the changes
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest.DiscussionLink">
<summary>
Optional Link for discussion the preview item
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest.TrackingLink">
<summary>
Optional Link for discussing the preview item
</summary>
</member>
<member name="T:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse">
<summary>
Dashboard preview item response
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse.Id">
<summary>
The unique ID of the preview item
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse.CreatedAt">
<summary>
When the preview item was created
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse.Summary">
<summary>
A summary of what the preview item changes
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse.DeployedCL">
<summary>
The CL the preview was deployed in
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse.Open">
<summary>
Whather the preview is under consideration, if false the preview item didn't pass muster
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse.ExampleLink">
<summary>
An example of the preview site users can view the changes
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse.DiscussionLink">
<summary>
Optional Link for discussion the preview item
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardPreviewResponse.TrackingLink">
<summary>
Optional Link for discussing the preview item
</summary>
</member>
<member name="T:EpicGames.Horde.Dashboard.GetDashboardChallengeResponse">
<summary>
Dashboard challenge response
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardChallengeResponse.NeedsFirstTimeSetup">
<summary>
Whether first time setup needs to run
</summary>
</member>
<member name="P:EpicGames.Horde.Dashboard.GetDashboardChallengeResponse.NeedsAuthorization">
<summary>
Whether the user needs to authorize
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.DeviceId">
<summary>
Identifier for a pool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Devices.DeviceId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a pool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Devices.DeviceId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Devices.DeviceId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.DeviceId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Devices.DeviceId.Sanitize(System.String)">
<inheritdoc cref="M:EpicGames.Horde.StringId.Sanitize(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Devices.DeviceId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Devices.DeviceIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.DeviceIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Devices.DeviceIdConverter.ToStringId(EpicGames.Horde.Devices.DeviceId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Devices.DevicePoolType">
<summary>
The type of device pool
</summary>
</member>
<member name="F:EpicGames.Horde.Devices.DevicePoolType.Automation">
<summary>
Available to CIS jobs
</summary>
</member>
<member name="F:EpicGames.Horde.Devices.DevicePoolType.Shared">
<summary>
Shared by users with remote checking and checkouts
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CreateDevicePlatformRequest">
<summary>
Create device platform request
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDevicePlatformRequest.Name">
<summary>
The name of the platform
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CreateDevicePlatformResponse">
<summary>
Create device platform response object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDevicePlatformResponse.Id">
<summary>
Id of newly created platform
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.CreateDevicePlatformResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.UpdateDevicePlatformRequest">
<summary>
Update requesty object for a device platform
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDevicePlatformRequest.ModelIds">
<summary>
The vendor model ids for the platform
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetDevicePlatformResponse">
<summary>
Get object response which describes a device platform
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformResponse.Id">
<summary>
Unique id of device platform
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformResponse.Name">
<summary>
Friendly name of device platform
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformResponse.ModelIds">
<summary>
Platform vendor models
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.GetDevicePlatformResponse.#ctor(System.String,System.String,System.String[])">
<summary>
Response constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CreateDevicePoolRequest">
<summary>
Device pool creation request object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDevicePoolRequest.Name">
<summary>
The name for the new pool
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDevicePoolRequest.PoolType">
<summary>
The name for the new pool
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDevicePoolRequest.ProjectIds">
<summary>
Projects associated with this device pool
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.UpdateDevicePoolRequest">
<summary>
Device pool update request object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDevicePoolRequest.Id">
<summary>
Id of the device pool to update
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDevicePoolRequest.ProjectIds">
<summary>
Projects associated with this device pool
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CreateDevicePoolResponse">
<summary>
Device pool creation response object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDevicePoolResponse.Id">
<summary>
Id of the newly created device pool
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.CreateDevicePoolResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetDevicePoolResponse">
<summary>
Device pool response object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolResponse.Id">
<summary>
Id of the device pool
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolResponse.Name">
<summary>
Name of the device pool
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolResponse.PoolType">
<summary>
Type of the device pool
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolResponse.WriteAccess">
<summary>
Whether there is write access to the pool
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.GetDevicePoolResponse.#ctor(System.String,System.String,EpicGames.Horde.Devices.DevicePoolType,System.Boolean)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CreateDeviceRequest">
<summary>
Device creation request object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceRequest.PlatformId">
<summary>
The platform of the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceRequest.PoolId">
<summary>
The pool to assign the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceRequest.Name">
<summary>
The friendly name of the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceRequest.Enabled">
<summary>
Whether to create the device in enabled state
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceRequest.Address">
<summary>
The network address of the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceRequest.ModelId">
<summary>
The vendor model id of the device
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CreateDeviceResponse">
<summary>
Device creation response object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceResponse.Id">
<summary>
The id of the newly created device
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.CreateDeviceResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="id"></param>
</member>
<member name="T:EpicGames.Horde.Devices.GetDeviceUtilizationResponse">
<summary>
Get response object which describes a device (DEPRECATED)
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceUtilizationResponse.JobId">
<summary>
The job id which utilized device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceUtilizationResponse.StepId">
<summary>
The job's step id
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceUtilizationResponse.ReservationStartUtc">
<summary>
The time device was reserved
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceUtilizationResponse.ReservationFinishUtc">
<summary>
The time device was freed
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetDeviceResponse">
<summary>
Get response object which describes a device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.Id">
<summary>
The unique id of the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.PlatformId">
<summary>
The platform of the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.PoolId">
<summary>
The pool the device belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.Name">
<summary>
The friendly name of the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.Enabled">
<summary>
Whether the device is currently enabled
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.Address">
<summary>
The address of the device (if it allows network connections)
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.ModelId">
<summary>
The vendor model id of the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.Notes">
<summary>
Any notes provided for the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.ProblemTime">
<summary>
If the device has a marked problem
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.MaintenanceTime">
<summary>
If the device is in maintenance mode
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.CheckedOutByUserId">
<summary>
The user id that has the device checked out
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.CheckOutTime">
<summary>
The last time the device was checked out
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.CheckOutExpirationTime">
<summary>
When the checkout will expire
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.ModifiedByUser">
<summary>
The last user to modifiy the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceResponse.Utilization">
<summary>
Device Utilization data
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.GetDeviceResponse.#ctor(System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.String,System.String,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.Collections.Generic.List{EpicGames.Horde.Devices.GetDeviceUtilizationResponse},System.String,System.Nullable{System.DateTime},System.Nullable{System.DateTime})">
<summary>
Device response constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.UpdateDeviceRequest">
<summary>
Device update request object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDeviceRequest.PoolId">
<summary>
The device pool id
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDeviceRequest.Name">
<summary>
The device name
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDeviceRequest.Address">
<summary>
IP address or hostname of device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDeviceRequest.ModelId">
<summary>
Device vendor model id
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDeviceRequest.Notes">
<summary>
Markdown notes
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDeviceRequest.Enabled">
<summary>
Whether device is enabled
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDeviceRequest.Maintenance">
<summary>
Whether the device is in maintenance mode
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.UpdateDeviceRequest.Problem">
<summary>
Whether to set or clear any device problem state
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CheckoutDeviceRequest">
<summary>
Device checkout request object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CheckoutDeviceRequest.Checkout">
<summary>
Whether to checkout or in the device
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.DeviceReservationRequest">
<summary>
Device reservation request object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.DeviceReservationRequest.PlatformId">
<summary>
Device reservation platform id
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.DeviceReservationRequest.IncludeModels">
<summary>
The optional vendor model ids to include for this device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.DeviceReservationRequest.ExcludeModels">
<summary>
The optional vendor model ids to exclude for this device
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CreateDeviceReservationRequest">
<summary>
Reservation request object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceReservationRequest.PoolId">
<summary>
What pool to reserve devices in
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceReservationRequest.Devices">
<summary>
Devices to reserve
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.CreateDeviceReservationResponse">
<summary>
Device reservation response object
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceReservationResponse.Id">
<summary>
The reservation id of newly created reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.CreateDeviceReservationResponse.Devices">
<summary>
The devices that were reserved
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetDeviceReservationResponse">
<summary>
A reservation containing one or more devices
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.Id">
<summary>
Randomly generated unique id for this reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.PoolId">
<summary>
Which device pool the reservation is in
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.Devices">
<summary>
The reserved devices
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.JobId">
<summary>
JobID holding reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.StepId">
<summary>
Job step id holding reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.JobName">
<summary>
Job mame holding reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.StepName">
<summary>
Job step holding reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.UserId">
<summary>
Reservations held by a user, requires a token
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.Hostname">
<summary>
The hostname of machine holding reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.ReservationDetails">
<summary>
The optional reservation details
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.CreateTimeUtc">
<summary>
The UTC time when the reservation was created
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceReservationResponse.LegacyGuid">
<summary>
The legacy reservation system guid, to be removed once can update Gauntlet client in all streams
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetTelemetryInfoResponse">
<summary>
Device telemetry respponse
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.CreateTimeUtc">
<summary>
The UTC time the telemetry data was created
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.StreamId">
<summary>
The stream id which utilized device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.JobId">
<summary>
The job id which utilized device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.JobName">
<summary>
The job name which utilized device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.StepId">
<summary>
The job's step id
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.StepName">
<summary>
The job name which utilized device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.ReservationStartUtc">
<summary>
If this telemetry has a reservation, the start time of the reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.ReservationFinishUtc">
<summary>
If this telemetry has a reservation, the finish time of the reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetTelemetryInfoResponse.ProblemTimeUtc">
<summary>
If this telemetry marks a detected device issue, the time of the issue
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetDeviceTelemetryResponse">
<summary>
Device telemetry respponse
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceTelemetryResponse.DeviceId">
<summary>
The device id for the telemetry data
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDeviceTelemetryResponse.Telemetry">
<summary>
Individual telemetry data points
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.GetDeviceTelemetryResponse.#ctor(System.String,System.Collections.Generic.List{EpicGames.Horde.Devices.GetTelemetryInfoResponse})">
<summary>
Constructor
</summary>
<param name="deviceId"></param>
<param name="telemetry"></param>
</member>
<member name="T:EpicGames.Horde.Devices.GetDevicePoolReservationTelemetryResponse">
<summary>
Stream device telemetry for pool snapshot
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolReservationTelemetryResponse.DeviceId">
<summary>
Device id for reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolReservationTelemetryResponse.JobId">
<summary>
Job id associated with reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolReservationTelemetryResponse.StepId">
<summary>
The step id of reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolReservationTelemetryResponse.JobName">
<summary>
The name of the job holding reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolReservationTelemetryResponse.StepName">
<summary>
The name of the step holding reservation
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.GetDevicePoolReservationTelemetryResponse.#ctor(System.String,System.String,System.String,System.String,System.String)">
<summary>
constructor
</summary>
<param name="deviceId"></param>
<param name="jobId"></param>
<param name="stepId"></param>
<param name="jobName"></param>
<param name="stepName"></param>
</member>
<member name="T:EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse">
<summary>
Device telemetry respponse
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse.PlatformId">
<summary>
The corresponding platform id
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse.Available">
<summary>
Available devices of this platform
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse.Maintenance">
<summary>
Devices in maintenance state
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse.Problem">
<summary>
Devices in problem state
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse.Disabled">
<summary>
Number of devices in disabled state
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse.Reserved">
<summary>
Reserved devices
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse.#ctor(System.String,System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{EpicGames.Horde.Devices.GetDevicePoolReservationTelemetryResponse}})">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetDevicePoolTelemetryResponse">
<summary>
Device telemetry respponse
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolTelemetryResponse.CreateTimeUtc">
<summary>
The UTC time the telemetry data was created
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetDevicePoolTelemetryResponse.Telemetry">
<summary>
Individual pool telemetry data points
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.GetDevicePoolTelemetryResponse.#ctor(System.DateTime,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{EpicGames.Horde.Devices.GetDevicePlatformTelemetryResponse}})">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.LegacyCreateReservationRequest">
<summary>
Reservation request for legacy clients
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.LegacyCreateReservationRequest.DeviceTypes">
<summary>
The device types to reserve, these are mapped to platforms
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.LegacyCreateReservationRequest.Hostname">
<summary>
The hostname of machine reserving devices
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.LegacyCreateReservationRequest.Duration">
<summary>
The duration of reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.LegacyCreateReservationRequest.ReservationDetails">
<summary>
Reservation details string
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.LegacyCreateReservationRequest.PoolId">
<summary>
The PoolId of reservation request
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.LegacyCreateReservationRequest.JobId">
<summary>
The JobId of reservation request
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.LegacyCreateReservationRequest.StepId">
<summary>
The StepId of reservation request
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.LegacyCreateReservationRequest.DeviceName">
<summary>
A specific device to reserve
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetLegacyReservationResponse">
<summary>
Reservation response for legacy clients
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.DeviceNames">
<summary>
The names of the devices that were reserved
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.DevicePerfSpecs">
<summary>
The corresponding perf specs of the reserved devices
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.DeviceModels">
<summary>
The corresponding perf specs of the reserved devices
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.HostName">
<summary>
The host name of the machine making the reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.StartDateTime">
<summary>
The start time of the reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.Duration">
<summary>
The duration of the reservation (before renew)
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.JobId">
<summary>
The JobId of reservation request
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.StepId">
<summary>
The StepId of reservation request
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.JobName">
<summary>
The job name of reservation request
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.StepName">
<summary>
The step name of reservation request
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.Guid">
<summary>
The legacy guid of the reservation
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyReservationResponse.InstallRequired">
<summary>
The step name of reservation request
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.GetLegacyDeviceResponse">
<summary>
Device response for legacy clients
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.Id">
<summary>
The id of the reserved device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.Name">
<summary>
The name of the reserved device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.Type">
<summary>
The (legacy) type of the device, mapped from platform id
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.IPOrHostName">
<summary>
The IP or hostname of device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.PerfSpec">
<summary>
The (legacy) perf spec of the device
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.Model">
<summary>
The device model information
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.AvailableStartTime">
<summary>
The available start time which is parsed client side
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.AvailableEndTime">
<summary>
The available end time which is parsed client side
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.Enabled">
<summary>
Whether device is enabled
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.GetLegacyDeviceResponse.DeviceData">
<summary>
Associated device data
</summary>
</member>
<member name="T:EpicGames.Horde.Devices.DevicePlatformId">
<summary>
Identifier for a device platform
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePlatformId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a device platform
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Devices.DevicePlatformId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePlatformId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.DevicePlatformId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePlatformId.Sanitize(System.String)">
<inheritdoc cref="M:EpicGames.Horde.StringId.Sanitize(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePlatformId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Devices.DevicePlatformIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePlatformIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePlatformIdConverter.ToStringId(EpicGames.Horde.Devices.DevicePlatformId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Devices.DevicePoolId">
<summary>
Identifier for a device pool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePoolId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a device pool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Devices.DevicePoolId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePoolId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Devices.DevicePoolId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePoolId.Sanitize(System.String)">
<inheritdoc cref="M:EpicGames.Horde.StringId.Sanitize(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePoolId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Devices.DevicePoolIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePoolIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Devices.DevicePoolIdConverter.ToStringId(EpicGames.Horde.Devices.DevicePoolId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.HordeApiVersion">
<summary>
Version number for the Horde public API. Can be retrieved from the /api/v1/server/info endpoint via the
<see cref="T:EpicGames.Horde.Server.GetServerInfoResponse"/> response. Should be serialized as an integer in messages to allow
clients with missing enum names to still parse the result correctly.
</summary>
</member>
<member name="F:EpicGames.Horde.HordeApiVersion.Unknown">
<summary>
Unknown version
</summary>
</member>
<member name="F:EpicGames.Horde.HordeApiVersion.Initial">
<summary>
Initial version
</summary>
</member>
<member name="F:EpicGames.Horde.HordeApiVersion.AddLengthsToInteriorNodes">
<summary>
Interior nodes in chunked data now include the length of chunked data to allow seeking.
</summary>
</member>
<member name="F:EpicGames.Horde.HordeApiVersion.AddFileModTimes">
<summary>
Add support for last modified timestamps to file entries in directory nodes
</summary>
</member>
<member name="F:EpicGames.Horde.HordeApiVersion.AddRollingHashesForLeafNodes">
<summary>
Interior nodes in chunked data now include the rolling hash of any leaf nodes
</summary>
</member>
<member name="F:EpicGames.Horde.HordeApiVersion.LatestPlusOne">
<summary>
One past the latest known version number. Add new version numbers above this point.
</summary>
</member>
<member name="F:EpicGames.Horde.HordeApiVersion.Latest">
<summary>
Latest API version
</summary>
</member>
<member name="T:EpicGames.Horde.HordeApiVersionConverter">
<summary>
Converter for <see cref="T:EpicGames.Horde.HordeApiVersion"/> which forces serialization as an integer, to override any
default <see cref="T:System.Text.Json.Serialization.JsonStringEnumConverter"/> that may be enabled.
</summary>
</member>
<member name="M:EpicGames.Horde.HordeApiVersionConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeApiVersionConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.HordeApiVersion,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.HordeClient">
<summary>
Default implementation of <see cref="T:EpicGames.Horde.IHordeClient"/>
</summary>
</member>
<member name="P:EpicGames.Horde.HordeClient.ServerUrl">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.HordeClient.Artifacts">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.HordeClient.Compute">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.HordeClient.Projects">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.HordeClient.Secrets">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.HordeClient.Tools">
<inheritdoc/>
</member>
<member name="E:EpicGames.Horde.HordeClient.OnAccessTokenStateChanged">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.HordeClient.Logger">
<summary>
Accessor for the logger instance
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClient.#ctor(System.Uri,EpicGames.Horde.Storage.Bundles.BundleCache,Microsoft.Extensions.Options.IOptionsSnapshot{EpicGames.Horde.HordeOptions},Microsoft.Extensions.Logging.ILoggerFactory)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClient.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.NotifyAuthStateChanged">
<summary>
Notify listeners that the auth state has changed
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClient.LoginAsync(System.Boolean,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.HasValidAccessToken">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.GetAccessTokenAsync(System.Boolean,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.CreateGrpcChannelAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.CreateGrpcClientAsync``1(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.CreateHttpClient">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.CreateComputeClient">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.GetStorageNamespace(System.String,System.String)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.CreateServerLogger(EpicGames.Horde.Logs.LogId,Microsoft.Extensions.Logging.LogLevel)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClient.CreateAuthenticatedHttpClient">
<summary>
Creates an http client for satisfying requests
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClient.CreateUnauthenticatedHttpClient">
<summary>
Creates an http client for satisfying requests
</summary>
</member>
<member name="T:EpicGames.Horde.HordeClientWithStaticCredentials">
<summary>
Default implementation of <see cref="T:EpicGames.Horde.IHordeClient"/>
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientWithStaticCredentials.#ctor(System.Uri,System.String,EpicGames.Horde.IHordeHttpMessageHandler,EpicGames.Horde.Storage.Bundles.BundleCache,Microsoft.Extensions.Options.IOptionsSnapshot{EpicGames.Horde.HordeOptions},Microsoft.Extensions.Logging.ILoggerFactory)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientWithStaticCredentials.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithStaticCredentials.LoginAsync(System.Boolean,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithStaticCredentials.HasValidAccessToken">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithStaticCredentials.GetAccessTokenAsync(System.Boolean,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithStaticCredentials.CreateAuthenticatedHttpClient">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithStaticCredentials.CreateUnauthenticatedHttpClient">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.HordeClientWithDynamicCredentials">
<summary>
Default implementation of <see cref="T:EpicGames.Horde.IHordeClient"/>
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientWithDynamicCredentials.#ctor(System.Uri,EpicGames.Horde.Storage.Bundles.BundleCache,EpicGames.Horde.IHordeHttpMessageHandler,Microsoft.Extensions.Options.IOptionsSnapshot{EpicGames.Horde.HordeOptions},Microsoft.Extensions.Logging.ILoggerFactory)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientWithDynamicCredentials.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithDynamicCredentials.LoginAsync(System.Boolean,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithDynamicCredentials.HasValidAccessToken">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithDynamicCredentials.GetAccessTokenAsync(System.Boolean,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithDynamicCredentials.CreateAuthenticatedHttpClient">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeClientWithDynamicCredentials.CreateUnauthenticatedHttpClient">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.HordeClientFactory">
<summary>
Allows creating <see cref="T:EpicGames.Horde.HordeClient"/> instances
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientFactory.#ctor(EpicGames.Horde.Storage.Bundles.BundleCache,EpicGames.Horde.IHordeHttpMessageHandler,Microsoft.Extensions.Options.IOptionsSnapshot{EpicGames.Horde.HordeOptions},Microsoft.Extensions.Logging.ILoggerFactory)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientFactory.Create(System.Uri,System.String)">
<summary>
Create a client using the user's default access token
</summary>
</member>
<member name="T:EpicGames.Horde.HordeExtensions">
<summary>
Extension methods for Horde
</summary>
</member>
<member name="M:EpicGames.Horde.HordeExtensions.AddHorde(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Adds Horde-related services with the default settings
</summary>
<param name="serviceCollection">Collection to register services with</param>
</member>
<member name="M:EpicGames.Horde.HordeExtensions.AddHorde(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{EpicGames.Horde.HordeOptions})">
<summary>
Adds Horde-related services
</summary>
<param name="serviceCollection">Collection to register services with</param>
<param name="configureHorde">Callback to configure options</param>
</member>
<member name="T:EpicGames.Horde.HordeHttpAuthHandler">
<summary>
HTTP message handler which automatically refreshes access tokens as required
</summary>
</member>
<member name="P:EpicGames.Horde.HordeHttpAuthHandler.AllowInteractiveLogin">
<summary>
Option for HTTP requests that can override the default behavior for whether to enable interactive auth prompts
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandler.#ctor(System.Net.Http.HttpMessageHandler,EpicGames.Horde.HordeHttpAuthHandlerState,Microsoft.Extensions.Options.IOptions{EpicGames.Horde.HordeOptions})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandler.SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.HordeHttpAuthHandlerState">
<summary>
Shared object used to track the latest access obtained token
</summary>
</member>
<member name="E:EpicGames.Horde.HordeHttpAuthHandlerState.OnStateChanged">
<summary>
Event handler for the auth state changing
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.#ctor(System.Net.Http.HttpMessageHandler,System.Uri,Microsoft.Extensions.Options.IOptions{EpicGames.Horde.HordeOptions},Microsoft.Extensions.Logging.ILogger{EpicGames.Horde.HordeHttpAuthHandlerState},EpicGames.OIDC.ITokenStore,EpicGames.OIDC.IOidcTokenManager,EpicGames.Core.IClock)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.IsLoggedIn">
<summary>
Checks if we have a valid auth header at the moment
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.GetCurrentAccessToken">
<summary>
Gets the current access token
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.TryGetCurrentAuthState(EpicGames.Horde.HordeHttpAuthHandlerState.AuthState@)">
<summary>
Gets the current auth state instance. Fails if the current auth task has not finished.
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.Reset">
<summary>
Resets the current auth state
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.Invalidate(System.String)">
<summary>
Marks the given access token as invalid, having attempted to use it and got an unauthorized response
</summary>
<param name="accessToken">The access header to invalidate</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.GetAccessTokenFromConfig">
<summary>
Try to get a configured auth header
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpAuthHandlerState.GetAccessTokenAsync(System.Boolean,System.Threading.CancellationToken)">
<summary>
Gets the current access token
</summary>
</member>
<member name="T:EpicGames.Horde.HordeHttpClient">
<summary>
Wraps an Http client which communicates with the Horde server
</summary>
</member>
<member name="F:EpicGames.Horde.HordeHttpClient.HordeUrlEnvVarName">
<summary>
Name of an environment variable containing the Horde server URL
</summary>
</member>
<member name="F:EpicGames.Horde.HordeHttpClient.HordeTokenEnvVarName">
<summary>
Name of an environment variable containing a token for connecting to the Horde server
</summary>
</member>
<member name="F:EpicGames.Horde.HordeHttpClient.HttpClientName">
<summary>
Name of clients created from the http client factory
</summary>
</member>
<member name="F:EpicGames.Horde.HordeHttpClient.AnonymousHttpClientName">
<summary>
Name of clients used for anonymous requests.
</summary>
</member>
<member name="F:EpicGames.Horde.HordeHttpClient.UploadRedirectHttpClientName">
<summary>
Name of clients created from the http client factory for handling upload redirects. Should not contain Horde auth headers.
</summary>
</member>
<member name="P:EpicGames.Horde.HordeHttpClient.HttpClient">
<summary>
Accessor for the inner http client
</summary>
</member>
<member name="P:EpicGames.Horde.HordeHttpClient.BaseUrl">
<summary>
Base address for the Horde server
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.#ctor(System.Net.Http.HttpClient)">
<summary>
Constructor
</summary>
<param name="httpClient">The inner HTTP client instance</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.ConfigureJsonSerializer(System.Text.Json.JsonSerializerOptions)">
<summary>
Configures a JSON serializer to read Horde responses
</summary>
<param name="options">options for the serializer</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.CheckConnectionAsync(System.Threading.CancellationToken)">
<summary>
Check account login status.
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.CreateArtifactAsync(EpicGames.Horde.Artifacts.ArtifactName,EpicGames.Horde.Artifacts.ArtifactType,System.String,EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Commits.CommitId,System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String},System.Threading.CancellationToken)">
<summary>
Creates a new artifact
</summary>
<param name="name">Name of the artifact</param>
<param name="type">Additional search keys tagged on the artifact</param>
<param name="description">Description for the artifact</param>
<param name="streamId">Stream to create the artifact for</param>
<param name="commitId">Commit for the artifact</param>
<param name="keys">Keys used to identify the artifact</param>
<param name="metadata">Metadata for the artifact</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.DeleteArtifactAsync(EpicGames.Horde.Artifacts.ArtifactId,System.Threading.CancellationToken)">
<summary>
Deletes an artifact
</summary>
<param name="id">Identifier for the artifact</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetArtifactAsync(EpicGames.Horde.Artifacts.ArtifactId,System.Threading.CancellationToken)">
<summary>
Gets metadata about an artifact object
</summary>
<param name="id">Identifier for the artifact</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetArtifactZipAsync(EpicGames.Horde.Artifacts.ArtifactId,System.Threading.CancellationToken)">
<summary>
Gets a zip stream for a particular artifact
</summary>
<param name="id">Identifier for the artifact</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.FindArtifactsAsync(System.Nullable{EpicGames.Horde.Streams.StreamId},EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Commits.CommitId,System.Nullable{EpicGames.Horde.Artifacts.ArtifactName},System.Nullable{EpicGames.Horde.Artifacts.ArtifactType},System.Collections.Generic.IEnumerable{System.String},System.Int32,System.Threading.CancellationToken)">
<summary>
Finds artifacts with a certain type with an optional streamId
</summary>
<param name="streamId">Stream to look for the artifact in</param>
<param name="minCommitId">The minimum change number for the artifacts</param>
<param name="maxCommitId">The minimum change number for the artifacts</param>
<param name="name">Name of the artifact</param>
<param name="type">Type to find</param>
<param name="keys">Keys for artifacts to return</param>
<param name="maxResults">Maximum number of results to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about all the artifacts</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.FindArtifactsAsync(System.Collections.Generic.IEnumerable{EpicGames.Horde.Artifacts.ArtifactId},System.Nullable{EpicGames.Horde.Streams.StreamId},EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Commits.CommitId,System.Nullable{EpicGames.Horde.Artifacts.ArtifactName},System.Nullable{EpicGames.Horde.Artifacts.ArtifactType},System.Collections.Generic.IEnumerable{System.String},System.Int32,System.Threading.CancellationToken)">
<summary>
Finds artifacts with a certain type with an optional streamId
</summary>
<param name="ids">Identifiers to return</param>
<param name="streamId">Stream to look for the artifact in</param>
<param name="minCommitId">The minimum change number for the artifacts</param>
<param name="maxCommitId">The minimum change number for the artifacts</param>
<param name="name">Name of the artifact</param>
<param name="type">Type to find</param>
<param name="keys">Keys for artifacts to return</param>
<param name="maxResults">Maximum number of results to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about all the artifacts</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.CreateDashbordPreviewAsync(EpicGames.Horde.Dashboard.CreateDashboardPreviewRequest,System.Threading.CancellationToken)">
<summary>
Create a new dashboard preview item
</summary>
<param name="request">Request to create a new preview item</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Config information needed by the dashboard</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.UpdateDashbordPreviewAsync(EpicGames.Horde.Dashboard.UpdateDashboardPreviewRequest,System.Threading.CancellationToken)">
<summary>
Update a dashboard preview item
</summary>
<returns>Config information needed by the dashboard</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetDashbordPreviewsAsync(System.Boolean,System.Threading.CancellationToken)">
<summary>
Query dashboard preview items
</summary>
<returns>Config information needed by the dashboard</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetParametersAsync(System.Threading.CancellationToken)">
<summary>
Query parameters for other tools
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Parameters for other tools</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetParametersAsync(System.String,System.Threading.CancellationToken)">
<summary>
Query parameters for other tools
</summary>
<param name="path">Path for properties to return</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about all the projects</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetProjectsAsync(System.Boolean,System.Boolean,System.Threading.CancellationToken)">
<summary>
Query all the projects
</summary>
<param name="includeStreams">Whether to include streams in the response</param>
<param name="includeCategories">Whether to include categories in the response</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about all the projects</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetProjectAsync(EpicGames.Horde.Projects.ProjectId,System.Threading.CancellationToken)">
<summary>
Retrieve information about a specific project
</summary>
<param name="projectId">Id of the project to get information about</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about the requested project</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetSecretsAsync(System.Threading.CancellationToken)">
<summary>
Query all the secrets available to the current user
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about all the projects</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetSecretAsync(EpicGames.Horde.Secrets.SecretId,System.Threading.CancellationToken)">
<summary>
Retrieve information about a specific project
</summary>
<param name="secretId">Id of the secret to retrieve</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about the requested project</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetServerInfoAsync(System.Threading.CancellationToken)">
<summary>
Gets information about the currently deployed server version
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about the deployed server instance</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.TryReadRefAsync(System.String,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<summary>
Attempts to read a named storage ref from the server
</summary>
<param name="path">Path to the ref</param>
<param name="cacheTime">Max allowed age for a cached value to be returned</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetTelemetryAsync(System.DateTime,System.Int32,System.Nullable{System.Int32},System.Threading.CancellationToken)">
<summary>
Gets telemetry for Horde within a given range
</summary>
<param name="endDate">End date for the range</param>
<param name="range">Number of hours to return</param>
<param name="tzOffset">Timezone offset</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetToolsAsync(System.Threading.CancellationToken)">
<summary>
Enumerates all the available tools.
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetToolAsync(EpicGames.Horde.Tools.ToolId,System.Threading.CancellationToken)">
<summary>
Gets information about a particular tool
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetToolDeploymentAsync(EpicGames.Horde.Tools.ToolId,EpicGames.Horde.Tools.ToolDeploymentId,System.Threading.CancellationToken)">
<summary>
Gets information about a particular deployment
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetToolDeploymentZipAsync(EpicGames.Horde.Tools.ToolId,System.Nullable{EpicGames.Horde.Tools.ToolDeploymentId},System.Threading.CancellationToken)">
<summary>
Gets a zip stream for a particular deployment
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.CreateToolDeploymentAsync(EpicGames.Horde.Tools.ToolId,System.String,System.Nullable{System.Double},System.Nullable{System.Boolean},EpicGames.Horde.Storage.HashedBlobRefValue,System.Threading.CancellationToken)">
<summary>
Creates a new tool deployment
</summary>
<param name="id">Id for the tool</param>
<param name="version">Version string for the new deployment</param>
<param name="duration">Duration over which to deploy the tool</param>
<param name="createPaused">Whether to create the deployment, but do not start rolling it out yet</param>
<param name="target">Location of a directory node describing the deployment</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetJobAsync(EpicGames.Horde.Jobs.JobId,System.Threading.CancellationToken)">
<summary>
Gets job information for given job ID. Fail response if jobID does not exist.
</summary>
<param name="id">Id of the job to get infomation for</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetSearchLogAsync(EpicGames.Horde.Logs.LogId,System.String,System.Int32,System.Threading.CancellationToken)">
<summary>
Get the given log file
</summary>
<param name="logId">Id of the log file to retrieve</param>
<param name="searchText">Text to search for in the log</param>
<param name="count">Number of lines to return (default 5)</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetLogLinesAsync(EpicGames.Horde.Logs.LogId,System.Int32,System.Int32,System.Threading.CancellationToken)">
<summary>
Get the requested number of lines from given logFileId, starting at index
</summary>
<param name="logId">Id of log file to retrieve lines from</param>
<param name="startIndex">Start index of lines to retrieve</param>
<param name="count">Number of lines to retrieve</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetGraphAsync(EpicGames.Horde.Jobs.JobId,System.Threading.CancellationToken)">
<summary>
Get graph of the given job
</summary>
<param name="jobId"></param>
<param name="cancellationToken"></param>
<returns>Contains buildgraph information for the job</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpClient.GetUgsMetadataAsync(EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Commits.CommitId,EpicGames.Horde.Projects.ProjectId,System.Threading.CancellationToken)">
<summary>
</summary>
<param name="streamId"></param>
<param name="commitId"></param>
<param name="projectId"></param>
<param name="cancellationToken"></param>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.HordeHttpMessageHandler">
<summary>
Concrete implementation of <see cref="T:EpicGames.Horde.IHordeHttpMessageHandler"/> which manages the lifetime of the <see cref="T:System.Net.Http.HttpMessageHandler"/> instance.
</summary>
</member>
<member name="P:EpicGames.Horde.HordeHttpMessageHandler.Instance">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeHttpMessageHandler.#ctor(Microsoft.Extensions.Logging.ILogger{EpicGames.Horde.HordeHttpMessageHandler})">
<summary>
Constructor
</summary>
<param name="logger"></param>
</member>
<member name="M:EpicGames.Horde.HordeHttpMessageHandler.Dispose">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.HordeHttpMessageHandler.CreateDefaultTimeoutRetryPolicy(System.Net.Http.HttpRequestMessage,Microsoft.Extensions.Logging.ILogger)">
<summary>
Create a default timeout retry policy
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpMessageHandler.CreateDefaultTransientErrorPolicy(System.Net.Http.HttpRequestMessage,Microsoft.Extensions.Logging.ILogger)">
<summary>
Create a default timeout retry policy
</summary>
</member>
<member name="T:EpicGames.Horde.HordeHttpRequest">
<summary>
Static helper methods for implementing Horde HTTP requests with standard semantics
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpRequest.CreateJsonSerializerOptions">
<summary>
Create the shared instance of JSON options for HordeHttpClient instances
</summary>
</member>
<member name="M:EpicGames.Horde.HordeHttpRequest.ConfigureJsonSerializer(System.Text.Json.JsonSerializerOptions)">
<summary>
Configures a JSON serializer to read Horde responses
</summary>
<param name="options">options for the serializer</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpRequest.DeleteAsync(System.Net.Http.HttpClient,System.String,System.Threading.CancellationToken)">
<summary>
Deletes a resource from an HTTP endpoint
</summary>
<param name="httpClient">Http client instance</param>
<param name="relativePath">The url to retrieve</param>
<param name="cancellationToken">Cancels the request</param>
</member>
<member name="M:EpicGames.Horde.HordeHttpRequest.GetAsync``1(System.Net.Http.HttpClient,System.String,System.Threading.CancellationToken)">
<summary>
Gets a resource from an HTTP endpoint and parses it as a JSON object
</summary>
<typeparam name="TResponse">The object type to return</typeparam>
<param name="httpClient">Http client instance</param>
<param name="relativePath">The url to retrieve</param>
<param name="cancellationToken">Cancels the request</param>
<returns>New instance of the object</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpRequest.PostAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Threading.CancellationToken)">
<summary>
Posts an object to an HTTP endpoint as a JSON object, and parses the response object
</summary>
<typeparam name="TRequest">The object type to post</typeparam>
<param name="httpClient">Http client instance</param>
<param name="relativePath">The url to retrieve</param>
<param name="request">The object to post</param>
<param name="cancellationToken">Cancels the request</param>
<returns>The response parsed into the requested type</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpRequest.PostAsync``2(System.Net.Http.HttpClient,System.String,``1,System.Threading.CancellationToken)">
<summary>
Posts an object to an HTTP endpoint as a JSON object, and parses the response object
</summary>
<typeparam name="TResponse">The object type to return</typeparam>
<typeparam name="TRequest">The object type to post</typeparam>
<param name="httpClient">Http client instance</param>
<param name="relativePath">The url to retrieve</param>
<param name="request">The object to post</param>
<param name="cancellationToken">Cancels the request</param>
<returns>The response parsed into the requested type</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpRequest.PutAsync``1(System.Net.Http.HttpClient,System.String,``0,System.Threading.CancellationToken)">
<summary>
Puts an object to an HTTP endpoint as a JSON object
</summary>
<typeparam name="TRequest">The object type to post</typeparam>
<param name="httpClient">Http client instance</param>
<param name="relativePath">The url to write to</param>
<param name="request">The object to post</param>
<param name="cancellationToken">Cancels the request</param>
<returns>Response message</returns>
</member>
<member name="M:EpicGames.Horde.HordeHttpRequest.PutAsync``2(System.Net.Http.HttpClient,System.String,``1,System.Threading.CancellationToken)">
<summary>
Puts an object to an HTTP endpoint as a JSON object
</summary>
<typeparam name="TResponse">The object type to return</typeparam>
<typeparam name="TRequest">The object type to post</typeparam>
<param name="httpClient">Http client instance</param>
<param name="relativePath">The url to write to</param>
<param name="request">The object to post</param>
<param name="cancellationToken">Cancels the request</param>
<returns>Response message</returns>
</member>
<member name="T:EpicGames.Horde.HordeOptions">
<summary>
Options for configuring the Horde connection
</summary>
</member>
<member name="P:EpicGames.Horde.HordeOptions.ServerUrl">
<summary>
Address of the Horde server
</summary>
</member>
<member name="P:EpicGames.Horde.HordeOptions.AccessToken">
<summary>
Access token to use for connecting to the server
</summary>
</member>
<member name="P:EpicGames.Horde.HordeOptions.AllowAuthPrompt">
<summary>
Whether to allow opening a browser window to prompt for authentication
</summary>
</member>
<member name="P:EpicGames.Horde.HordeOptions.Bundle">
<summary>
Options for creating new bundles
</summary>
</member>
<member name="P:EpicGames.Horde.HordeOptions.BundleCache">
<summary>
Options for caching bundles
</summary>
</member>
<member name="P:EpicGames.Horde.HordeOptions.BackendCache">
<summary>
Options for the storage backend cache
</summary>
</member>
<member name="M:EpicGames.Horde.HordeOptions.GetServerUrlOrDefault">
<summary>
Gets the configured server URL, or the default value
</summary>
</member>
<member name="M:EpicGames.Horde.HordeOptions.GetServerUrlFromEnvironment">
<summary>
Reads the server URL from the environment
</summary>
</member>
<member name="M:EpicGames.Horde.HordeOptions.GetDefaultServerUrl">
<summary>
Gets the default server URL for the current user
</summary>
<returns>Default URL</returns>
</member>
<member name="M:EpicGames.Horde.HordeOptions.SetDefaultServerUrl(System.Uri)">
<summary>
Sets the default server url for the current user
</summary>
<param name="serverUrl">Horde server URL to use</param>
</member>
<member name="T:EpicGames.Horde.StorageBackendCacheOptions">
<summary>
Options for the storage backend cache
</summary>
</member>
<member name="P:EpicGames.Horde.StorageBackendCacheOptions.CacheDir">
<summary>
Directory to store cached data
</summary>
</member>
<member name="P:EpicGames.Horde.StorageBackendCacheOptions.MaxSize">
<summary>
Maximum size of the cache, in bytes
</summary>
</member>
<member name="T:EpicGames.Horde.IHordeClient">
<summary>
Interface for Horde functionality.
</summary>
</member>
<member name="P:EpicGames.Horde.IHordeClient.ServerUrl">
<summary>
URL of the horde server
</summary>
</member>
<member name="P:EpicGames.Horde.IHordeClient.Artifacts">
<summary>
Accessor for the artifact collection
</summary>
</member>
<member name="P:EpicGames.Horde.IHordeClient.Compute">
<summary>
Accessor for the compute client
</summary>
</member>
<member name="P:EpicGames.Horde.IHordeClient.Projects">
<summary>
Accessor for the project collection
</summary>
</member>
<member name="P:EpicGames.Horde.IHordeClient.Secrets">
<summary>
Accessor for the secret collection
</summary>
</member>
<member name="P:EpicGames.Horde.IHordeClient.Tools">
<summary>
Accessor for the tools collection
</summary>
</member>
<member name="E:EpicGames.Horde.IHordeClient.OnAccessTokenStateChanged">
<summary>
Event triggered whenever the access token state changes
</summary>
</member>
<member name="M:EpicGames.Horde.IHordeClient.LoginAsync(System.Boolean,System.Threading.CancellationToken)">
<summary>
Connect to the Horde server
</summary>
<param name="interactive">Whether to allow prompting for credentials</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the connection succeded</returns>
</member>
<member name="M:EpicGames.Horde.IHordeClient.HasValidAccessToken">
<summary>
Gets the current connection state
</summary>
</member>
<member name="M:EpicGames.Horde.IHordeClient.GetAccessTokenAsync(System.Boolean,System.Threading.CancellationToken)">
<summary>
Gets an access token for the server
</summary>
</member>
<member name="M:EpicGames.Horde.IHordeClient.CreateGrpcClientAsync``1(System.Threading.CancellationToken)">
<summary>
Gets a gRPC client interface
</summary>
</member>
<member name="M:EpicGames.Horde.IHordeClient.CreateHttpClient">
<summary>
Creates a Horde HTTP client
</summary>
</member>
<member name="M:EpicGames.Horde.IHordeClient.GetStorageNamespace(System.String,System.String)">
<summary>
Creates a storage namespace for the given base path
</summary>
</member>
<member name="M:EpicGames.Horde.IHordeClient.CreateServerLogger(EpicGames.Horde.Logs.LogId,Microsoft.Extensions.Logging.LogLevel)">
<summary>
Creates a logger device that writes data to the server
</summary>
</member>
<member name="T:EpicGames.Horde.HordeClientExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.IHordeClient"/>
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientExtensions.GetStorageNamespace(EpicGames.Horde.IHordeClient,EpicGames.Horde.Storage.NamespaceId,System.String)">
<summary>
Creates a storage namespace for a particular id
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientExtensions.GetStorageNamespace(EpicGames.Horde.IHordeClient,EpicGames.Horde.Artifacts.ArtifactId)">
<summary>
Creates a storage namespace for a particular artifact
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientExtensions.GetStorageNamespace(EpicGames.Horde.IHordeClient,EpicGames.Horde.Logs.LogId)">
<summary>
Creates a storage namespace for a particular log
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientExtensions.GetStorageNamespace(EpicGames.Horde.IHordeClient,EpicGames.Horde.Tools.ToolId)">
<summary>
Creates a storage namespace for a particular tool
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientExtensions.TryReadRefAsync(EpicGames.Horde.IHordeClient,System.String,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<summary>
Reads a blob storage ref from a path
</summary>
</member>
<member name="M:EpicGames.Horde.HordeClientExtensions.TryReadRefAsync``1(EpicGames.Horde.IHordeClient,System.String,EpicGames.Horde.Storage.RefCacheTime,System.Threading.CancellationToken)">
<summary>
Reads a typed blob storage ref from a path
</summary>
</member>
<member name="T:EpicGames.Horde.IHordeHttpMessageHandler">
<summary>
Provides access to a <see cref="T:System.Net.Http.HttpMessageHandler"/> instances for Horde with a default resiliance pipeline.
</summary>
</member>
<member name="P:EpicGames.Horde.IHordeHttpMessageHandler.Instance">
<summary>
Instance of the http message handler
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.BuildGraphIssueHandler">
<summary>
Instance of a particular BuildGraph script error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.BuildGraphIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.BuildGraphIssueHandler.IsMatchingEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if the given event id matches
</summary>
<param name="eventId">The event id to compare</param>
<returns>True if the given event id matches</returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.BuildGraphIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.BuildGraphIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.CompileIssueHandler">
<summary>
Instance of a particular compile error
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.CompileIssueHandler.CompileTypeAnnotation">
<summary>
Annotation describing the compile type
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.CompileIssueHandler.CompileGroupAnnotation">
<summary>
Annotation specifying a group for compile issues from this node
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.CompileIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.CompileIssueHandler.#ctor(EpicGames.Horde.Issues.IssueHandlerContext)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.CompileIssueHandler.IsMatchingEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if the given event id matches
</summary>
<param name="eventId">The event id to compare</param>
<returns>True if the given event id matches</returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.CompileIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.CompileIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.ContentIssueHandler">
<summary>
Instance of a particular compile error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.ContentIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ContentIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ContentIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.CopyrightIssueHandler">
<summary>
Instance of a particular compile error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.CopyrightIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.CopyrightIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.CopyrightIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.DefaultIssueHandler">
<summary>
Default handler for log events not matched by any other handler
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.DefaultIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.DefaultIssueHandler.#ctor(EpicGames.Horde.Issues.IssueHandlerContext)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.DefaultIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.DefaultIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.ExternalIssueHandler">
<summary>
Handler for log events with issue fingerprints embedded in the structured log data itself
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.ExternalIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ExternalIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ExternalIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler">
<summary>
Instance of a particular Gauntlet error
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.FrameworkPrefix">
<summary>
Prefix for framework keys
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.TestPrefix">
<summary>
Prefix for test keys
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.DevicePrefix">
<summary>
Prefix for device keys
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.BuildDropPrefix">
<summary>
Prefix for build drop keys
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.FatalPrefix">
<summary>
Prefix for fatal failure keys
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.CallstackLogType">
<summary>
Callstack log type property
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.SummaryLogType">
<summary>
Summary log type property
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.MaxMessageLength">
<summary>
Max Message Length to hash
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.s_knownGauntletEvents">
<summary>
Known Gauntlet events
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.#ctor(EpicGames.Horde.Issues.IssueHandlerContext)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.IsMatchingEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if the given event id matches
</summary>
<param name="eventId">The event id to compare</param>
<returns>True if the given event id matches</returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.GetEventPrefix(Microsoft.Extensions.Logging.EventId)">
<summary>
Return the prefix string associate with the event id
</summary>
<param name="eventId">The event id to get the information from</param>
<returns>The corresponding prefix as a string</returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.GetHash(EpicGames.Horde.Issues.IssueEvent,System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey},System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueMetadata},System.Boolean@)">
<summary>
Produce a hash from error message
</summary>
<param name="issueEvent">The issue event</param>
<param name="keys">Receives a set of the keys</param>
<param name="metadata">Receives a set of metadata</param>
<param name="hasCallstack">Set true if a callstack property was found</param>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.GauntletIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.HashedIssueHandler">
<summary>
Instance of a particular compile error
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.HashedIssueHandler.s_knownGeneralEvents">
<summary>
Known general events
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.HashedIssueHandler.#ctor(EpicGames.Horde.Issues.IssueHandlerContext)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.HashedIssueHandler.IsGeneralEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if the given event is general and should be salted to make it unique
</summary>
<param name="eventId">The event id to compare</param>
<returns>True if the given event id matches</returns>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.HashedIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.HashedIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.HashedIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.LocalizationIssueHandler">
<summary>
Instance of a localization error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.LocalizationIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.LocalizationIssueHandler.IsMatchingEventId(System.Nullable{Microsoft.Extensions.Logging.EventId})">
<summary>
Determines if the given event id matches
</summary>
<param name="eventId">The event id to compare</param>
<returns>True if the given event id matches</returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.LocalizationIssueHandler.IsMaskedEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if an event should be masked by this
</summary>
<param name="eventId"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.LocalizationIssueHandler.GetSourceFiles(EpicGames.Horde.Issues.IssueEvent,System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey})">
<summary>
Extracts a list of source files from an event
</summary>
<param name="issueEvent">The event data</param>
<param name="sourceFiles">List of source files</param>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.LocalizationIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.LocalizationIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.PerforceCaseIssueHandler">
<summary>
Instance of a Perforce case mismatch error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.PerforceCaseIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.PerforceCaseIssueHandler.IsMatchingEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if the given event id matches
</summary>
<param name="eventId">The event id to compare</param>
<returns>True if the given event id matches</returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.PerforceCaseIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.PerforceCaseIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.SanitizerIssueHandler">
<summary>
Instance of a specific Thread Sanitizer error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.SanitizerIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.SanitizerIssueHandler.SanitizerName">
<summary>
Log value describing the thread sanitizer error summary reason
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.SanitizerIssueHandler.SummaryReason">
<summary>
Log value describing the thread sanitizer error summary reason
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.SanitizerIssueHandler.SummarySourceFile">
<summary>
Log value describing the thread sanitizer error summary source file
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SanitizerIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SanitizerIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.ScopedIssueHandler">
<summary>
Instance of a particular compile error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.ScopedIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ScopedIssueHandler.#ctor(EpicGames.Horde.Issues.IssueHandlerContext)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ScopedIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ScopedIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.ShaderIssueHandler">
<summary>
Instance of a particular shader compile error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.ShaderIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ShaderIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.ShaderIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.SymbolIssueHandler">
<summary>
Instance of a particular compile error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.SymbolIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SymbolIssueHandler.IsMatchingEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if the given event id matches
</summary>
<param name="eventId">The event id to compare</param>
<returns>True if the given event id matches</returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SymbolIssueHandler.IsMaskedEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if an event should be masked by this
</summary>
<param name="eventId"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SymbolIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SymbolIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.SystemicIssueHandler">
<summary>
Instance of a particular systemic error
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.Handlers.SystemicIssueHandler.s_knownSystemic">
<summary>
Known systemic errors
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.SystemicIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SystemicIssueHandler.IsMatchingEventId(Microsoft.Extensions.Logging.EventId)">
<summary>
Determines if the given event id matches
</summary>
<param name="eventId">The event id to compare</param>
<returns>True if the given event id matches</returns>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SystemicIssueHandler.#ctor(EpicGames.Horde.Issues.IssueHandlerContext)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SystemicIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.SystemicIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.Handlers.UnacceptableWordsIssueHandler">
<summary>
Instance of a Perforce case mismatch error
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.Handlers.UnacceptableWordsIssueHandler.Priority">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.UnacceptableWordsIssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.Handlers.UnacceptableWordsIssueHandler.GetIssues">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.IIssueFingerprint">
<summary>
Fingerprint for an issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IIssueFingerprint.Type">
<summary>
The type of issue, which defines the handler to use for it
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IIssueFingerprint.SummaryTemplate">
<summary>
Template string for the issue summary
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IIssueFingerprint.Keys">
<summary>
List of keys which identify this issue.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IIssueFingerprint.RejectKeys">
<summary>
Set of keys which should trigger a negative match
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IIssueFingerprint.Metadata">
<summary>
Collection of additional metadata added by the handler
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IIssueFingerprint.ChangeFilter">
<summary>
Filter for changes that should be included in this issue
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IssueFingerprintExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Issues.IIssueFingerprint"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueFingerprintExtensions.IsMatch(EpicGames.Horde.Issues.IIssueFingerprint,EpicGames.Horde.Issues.IIssueFingerprint)">
<summary>
Checks if a fingerprint matches another fingerprint
</summary>
<param name="fingerprint">The first fingerprint to compare</param>
<param name="other">The other fingerprint to compare to</param>
<returns>True is the fingerprints match</returns>
</member>
<member name="M:EpicGames.Horde.Issues.IssueFingerprintExtensions.IsMatchForNewSpan(EpicGames.Horde.Issues.IIssueFingerprint,EpicGames.Horde.Issues.IIssueFingerprint)">
<summary>
Checks if a fingerprint matches another fingerprint for creating a new span
</summary>
<param name="fingerprint">The first fingerprint to compare</param>
<param name="other">The other fingerprint to compare to</param>
<returns>True is the fingerprints match</returns>
</member>
<member name="T:EpicGames.Horde.Issues.IssueChangeFilter">
<summary>
Set of rules for filtering the list of suspects for an issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueChangeFilter.None">
<summary>
Filter exclude all changes
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueChangeFilter.All">
<summary>
Filter including all changes
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueChangeFilter.Code">
<summary>
Set of extensions to treat as code
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueChangeFilter.Content">
<summary>
Set of file extensions to treat as content
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IssueEvent">
<summary>
Wraps a log event and allows it to be tagged by issue handlers
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEvent.LineIndex">
<summary>
Index of the line within this log
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEvent.Severity">
<summary>
Severity of the event
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEvent.EventId">
<summary>
The type of event
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEvent.Lines">
<summary>
Gets this event data as a BSON document
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueEvent.#ctor(System.Int32,Microsoft.Extensions.Logging.LogLevel,System.Nullable{Microsoft.Extensions.Logging.EventId},System.Collections.Generic.IReadOnlyList{EpicGames.Core.JsonLogEvent})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueEvent.Render">
<summary>
Renders the entire message of this event
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueEvent.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.IssueEventGroup">
<summary>
A group of <see cref="T:EpicGames.Horde.Issues.IssueEvent"/> objects with their fingerprint
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEventGroup.Type">
<summary>
The type of issue, which defines the handler to use for it
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEventGroup.SummaryTemplate">
<summary>
Template string for the issue summary
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEventGroup.Keys">
<summary>
List of keys which identify this issue.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEventGroup.Metadata">
<summary>
Collection of additional metadata added by the handler
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEventGroup.ChangeFilter">
<summary>
Filter for changes that should be included in this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueEventGroup.Events">
<summary>
Individual log events
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueEventGroup.#ctor(System.String,System.String,System.String)">
<summary>
Constructor
</summary>
<param name="type">The type of issue</param>
<param name="summaryTemplate">Template for the summary string to display for the issue</param>
<param name="changeFilter">Filter for changes covered by this issue</param>
</member>
<member name="M:EpicGames.Horde.Issues.IssueEventGroup.#ctor(System.String,System.String,System.Collections.Generic.IReadOnlyList{System.String})">
<summary>
Constructor
</summary>
<param name="type">The type of issue</param>
<param name="summaryTemplate">Template for the summary string to display for the issue</param>
<param name="changeFilter">Filter for changes covered by this issue</param>
</member>
<member name="T:EpicGames.Horde.Issues.IssueExtensions">
<summary>
Extension methods for logging issue data
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueExtensions.AddIssueFingerprint(EpicGames.Core.LogEvent,EpicGames.Horde.Issues.IssueFingerprint)">
<summary>
Adds an issue fingerprint to a log event
</summary>
<param name="logEvent">Log event to modify</param>
<param name="fingerprint">Fingerprint for the issue</param>
</member>
<member name="M:EpicGames.Horde.Issues.IssueExtensions.BeginIssueScope(Microsoft.Extensions.Logging.ILogger,EpicGames.Horde.Issues.IssueFingerprint)">
<summary>
Enters a scope which annotates log messages with the supplied issue fingerprint
</summary>
<param name="logger">Logger device to operate on</param>
<param name="fingerprint">Fingerprint for the issue</param>
<returns>Disposable object for the lifetime of this scope</returns>
</member>
<member name="T:EpicGames.Horde.Issues.IssueFingerprint">
<summary>
Fingerprint for an issue. Can be embedded into a structured log event under the "$issue" property to guide how Horde should group the event.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueFingerprint.Type">
<summary>
The type of issue, which defines the handler to use for it
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueFingerprint.SummaryTemplate">
<summary>
Template string for the issue summary
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueFingerprint.Keys">
<summary>
List of keys which identify this issue.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueFingerprint.RejectKeys">
<summary>
Set of keys which should trigger a negative match
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueFingerprint.Metadata">
<summary>
Collection of additional metadata added by the handler
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueFingerprint.ChangeFilter">
<summary>
Filter for changes that touch files which should be included in this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueFingerprint.SerializedKeys">
<summary>
Keys set which is null when empty
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueFingerprint.SerializedMetadata">
<summary>
Metadata set which is null when empty
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueFingerprint.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueFingerprint.#ctor(System.String,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IssueHandlerAttribute">
<summary>
Marks an issue handler that should be automatically inserted into the pipeline
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueHandlerAttribute.Tag">
<summary>
Class of handler which can be explicitly enabled via a workflow
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IssueHandler">
<summary>
Interface for issue matchers
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueHandler.Priority">
<summary>
Priority value for this issue handler. Handlers are processed in order of decreasing priority.
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueHandler.HandleEvent(EpicGames.Horde.Issues.IssueEvent)">
<summary>
Attempts to assign a log event to an issue
</summary>
<param name="issueEvent">Events to process</param>
<returns>Issue definition for this log event</returns>
</member>
<member name="M:EpicGames.Horde.Issues.IssueHandler.GetIssues">
<summary>
Gets all the issues created by this handler
</summary>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Issues.IssueHandlerContext">
<summary>
Context object for issue handlers
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueHandlerContext.StreamId">
<summary>
Identifier for the current stream
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueHandlerContext.TemplateId">
<summary>
Identififer of the template
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueHandlerContext.NodeName">
<summary>
Identifier for the current node name
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueHandlerContext.NodeAnnotations">
<summary>
Annotations for this node
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueHandlerContext.#ctor(EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Jobs.Templates.TemplateId,System.String,System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IssueKeyType">
<summary>
Type of a key in an issue, used for grouping.
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueKeyType.None">
<summary>
Unknown type
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueKeyType.File">
<summary>
Filename
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueKeyType.Note">
<summary>
Secondary file
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueKeyType.Symbol">
<summary>
Name of a symbol
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueKeyType.Hash">
<summary>
Hash of a particular error
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueKeyType.Step">
<summary>
Identifier for a particular step
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IssueKey">
<summary>
Defines a key which can be used to group an issue with other issues
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueKey.Name">
<summary>
Name of the key
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueKey.Type">
<summary>
Type of the key
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueKey.Scope">
<summary>
Arbitrary string that can be used to discriminate between otherwise identical keys, limiting the issues that it can merge with.
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.#ctor(System.String,EpicGames.Horde.Issues.IssueKeyType)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.#ctor(System.String,EpicGames.Horde.Issues.IssueKeyType,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.FromFile(System.String,System.Boolean)">
<summary>
Creates an issue key for a file
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.FromSymbol(System.String)">
<summary>
Creates an issue key for a file
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.FromHash(EpicGames.Core.Md5Hash)">
<summary>
Creates an issue key for a particular hash
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.FromStep(EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Jobs.Templates.TemplateId,System.String)">
<summary>
Creates an issue key for a particular step
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.FromStepAndSeverity(EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Jobs.Templates.TemplateId,System.String,Microsoft.Extensions.Logging.LogLevel)">
<summary>
Creates an issue key for a particular step and severity
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.Equals(EpicGames.Horde.Issues.IssueKey)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.op_Equality(EpicGames.Horde.Issues.IssueKey,EpicGames.Horde.Issues.IssueKey)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKey.op_Inequality(EpicGames.Horde.Issues.IssueKey,EpicGames.Horde.Issues.IssueKey)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.IssueKeyExtensions">
<summary>
Extension methods for issue keys
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKeyExtensions.Add(System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey},System.String,EpicGames.Horde.Issues.IssueKeyType,System.String)">
<summary>
Adds a new entry to a set
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKeyExtensions.AddAssets(System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey},EpicGames.Horde.Issues.IssueEvent)">
<summary>
Adds all the assets from the given log event
</summary>
<param name="keys">Set of keys</param>
<param name="issueEvent">The log event to parse</param>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKeyExtensions.AddDepotPaths(System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey},EpicGames.Horde.Issues.IssueEvent)">
<summary>
Extracts a list of source files from an event
</summary>
<param name="keys">Set of keys</param>
<param name="issueEvent">The event data</param>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKeyExtensions.AddHash(System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey},EpicGames.Core.Md5Hash,System.String)">
<summary>
Extracts a list of source files from an event
</summary>
<param name="keys">Set of keys</param>
<param name="hash">The event hash</param>
<param name="scope">Scope for merging this hash value</param>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKeyExtensions.AddSourceFiles(System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey},EpicGames.Horde.Issues.IssueEvent)">
<summary>
Extracts a list of source files from an event
</summary>
<param name="keys">Set of keys</param>
<param name="issueEvent">The event data</param>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKeyExtensions.AddSourceFile(System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey},System.String,EpicGames.Horde.Issues.IssueKeyType)">
<summary>
Add a new source file to a list of unique source files
</summary>
<param name="keys">List of source files</param>
<param name="relativePath">File to add</param>
<param name="type">Type of key to add</param>
</member>
<member name="M:EpicGames.Horde.Issues.IssueKeyExtensions.AddSymbols(System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueKey},EpicGames.Horde.Issues.IssueEvent)">
<summary>
Parses symbol names from a log event
</summary>
<param name="keys">List of source files</param>
<param name="eventData">The log event data</param>
</member>
<member name="T:EpicGames.Horde.Issues.IssueSeverity">
<summary>
The severity of an issue
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueSeverity.Unspecified">
<summary>
Unspecified severity
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueSeverity.Warning">
<summary>
This error represents a warning
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueSeverity.Error">
<summary>
This issue represents an error
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.GetIssueStepResponse">
<summary>
Identifies a particular changelist and job
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.Change">
<summary>
The changelist number
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.CommitId">
<summary>
The commit for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.Severity">
<summary>
Severity of the issue in this step
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.JobName">
<summary>
Name of the job containing this step
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.JobId">
<summary>
The unique job id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.BatchId">
<summary>
The unique batch id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.StepId">
<summary>
The unique step id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.StepTime">
<summary>
Time at which the step ran
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStepResponse.LogId">
<summary>
The unique log id
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.GetIssueSpanResponse">
<summary>
Trace of a set of node failures across multiple steps
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueSpanResponse.Id">
<summary>
Unique id of this span
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueSpanResponse.TemplateId">
<summary>
The template containing this step
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueSpanResponse.Name">
<summary>
Name of the step
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueSpanResponse.WorkflowId">
<summary>
Workflow that this span belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueSpanResponse.LastSuccess">
<summary>
The previous build
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueSpanResponse.Steps">
<summary>
The failing builds for a particular event
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueSpanResponse.NextSuccess">
<summary>
The following successful build
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.GetIssueStreamResponse">
<summary>
Information about a particular step
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStreamResponse.StreamId">
<summary>
Unique id of the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStreamResponse.MinChange">
<summary>
Minimum commit affected by this issue (ie. last successful build)
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStreamResponse.MaxChange">
<summary>
Maximum commit affected by this issue (ie. next successful build)
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStreamResponse.MinCommitId">
<summary>
Minimum changelist affected by this issue (ie. last successful build)
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStreamResponse.MaxCommitId">
<summary>
Maximum changelist affected by this issue (ie. next successful build)
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueStreamResponse.Nodes">
<summary>
Map of steps to (event signature id -> trace id)
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IssueBuildOutcome">
<summary>
Outcome of a particular build
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueBuildOutcome.Unknown">
<summary>
Unknown outcome
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueBuildOutcome.Success">
<summary>
Build succeeded
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueBuildOutcome.Error">
<summary>
Build failed
</summary>
</member>
<member name="F:EpicGames.Horde.Issues.IssueBuildOutcome.Warning">
<summary>
Build finished with warnings
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.GetIssueAffectedTemplateResponse">
<summary>
Information about a template affected by an issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedTemplateResponse.TemplateId">
<summary>
The template id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedTemplateResponse.TemplateName">
<summary>
The template name
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedTemplateResponse.Resolved">
<summary>
Whether it has been resolved or not
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedTemplateResponse.Severity">
<summary>
The issue severity of the affected template
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.GetIssueAffectedStreamResponse">
<summary>
Summary for the state of a stream in an issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedStreamResponse.StreamId">
<summary>
Id of the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedStreamResponse.StreamName">
<summary>
Name of the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedStreamResponse.Resolved">
<summary>
Whether the issue has been resolved in this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedStreamResponse.AffectedTemplates">
<summary>
The affected templates
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedStreamResponse.TemplateIds">
<summary>
List of affected template ids
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedStreamResponse.ResolvedTemplateIds">
<summary>
List of resolved template ids
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueAffectedStreamResponse.UnresolvedTemplateIds">
<summary>
List of unresolved template ids
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.GetIssueResponse">
<summary>
Stores information about a build health issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.Id">
<summary>
The unique object id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.CreatedAt">
<summary>
Time at which the issue was created
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.RetrievedAt">
<summary>
Time at which the issue was retrieved
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.Project">
<summary>
The associated project for the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.Summary">
<summary>
The summary text for this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.Description">
<summary>
Detailed description text
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.FingerprintDescription">
<summary>
Description of the current fingerprint used for issue identification
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.Severity">
<summary>
Severity of this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.Promoted">
<summary>
Whether the issue is promoted
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.Owner">
<summary>
Owner of the issue [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.OwnerId">
<summary>
User id of the owner [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.OwnerInfo">
<summary>
Owner of the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.NominatedBy">
<summary>
User that nominated the current owner [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.NominatedByInfo">
<summary>
Owner of the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.AcknowledgedAt">
<summary>
Time that the issue was acknowledged
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.FixChange">
<summary>
Perforce changelist that fixed this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.FixCommitId">
<summary>
Commit that fixed this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.FixSystemic">
<summary>
Whether the issue is marked fixed as a systemic issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.ResolvedAt">
<summary>
Time at which the issue was resolved
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.ResolvedBy">
<summary>
Name of the user that resolved the issue [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.ResolvedById">
<summary>
User id of the person that resolved the issue [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.ResolvedByInfo">
<summary>
User that resolved the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.VerifiedAt">
<summary>
Time at which the issue was verified
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.LastSeenAt">
<summary>
Time that the issue was last seen
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.Streams">
<summary>
List of stream paths affected by this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.ResolvedStreams">
<summary>
List of affected stream ids
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.UnresolvedStreams">
<summary>
List of unresolved streams
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.AffectedStreams">
<summary>
List of affected streams
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.PrimarySuspects">
<summary>
Most likely suspects for causing this issue [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.PrimarySuspectIds">
<summary>
User ids of the most likely suspects [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.PrimarySuspectsInfo">
<summary>
Most likely suspects for causing this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.ShowDesktopAlerts">
<summary>
Whether to show alerts for this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.ExternalIssueKey">
<summary>
Key for this issue in external issue tracker
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.QuarantinedByUserInfo">
<summary>
User who quarantined the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.QuarantineTimeUtc">
<summary>
The UTC time when the issue was quarantined
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.ForceClosedByUserInfo">
<summary>
User who force closed the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetIssueResponse.WorkflowThreadUrl">
<summary>
The workflow thread url for this issue
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.FindIssueSpanResponse">
<summary>
Information about a span within an issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueSpanResponse.Id">
<summary>
Unique id of this span
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueSpanResponse.TemplateId">
<summary>
The template containing this step
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueSpanResponse.Name">
<summary>
Name of the step
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueSpanResponse.WorkflowId">
<summary>
Workflow for this span
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueSpanResponse.LastSuccess">
<summary>
The previous build
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueSpanResponse.NextSuccess">
<summary>
The following successful build
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.FindIssueResponse">
<summary>
Stores information about a build health issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.Id">
<summary>
The unique object id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.CreatedAt">
<summary>
Time at which the issue was created
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.RetrievedAt">
<summary>
Time at which the issue was retrieved
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.Project">
<summary>
The associated project for the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.Summary">
<summary>
The summary text for this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.Description">
<summary>
Detailed description text
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.Severity">
<summary>
Severity of this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.StreamSeverity">
<summary>
Severity of this issue in the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.Promoted">
<summary>
Whether the issue is promoted
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.Owner">
<summary>
Owner of the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.NominatedBy">
<summary>
Owner of the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.AcknowledgedAt">
<summary>
Time that the issue was acknowledged
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.FixChange">
<summary>
Changelist that fixed this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.FixCommitId">
<summary>
Changelist that fixed this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.FixSystemic">
<summary>
Whether the issue is marked fixed as a systemic issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.ResolvedAt">
<summary>
Time at which the issue was resolved
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.ResolvedBy">
<summary>
User that resolved the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.VerifiedAt">
<summary>
Time at which the issue was verified
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.LastSeenAt">
<summary>
Time that the issue was last seen
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.Spans">
<summary>
Spans for this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.ExternalIssueKey">
<summary>
Key for this issue in external issue tracker
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.QuarantinedBy">
<summary>
User who quarantined the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.QuarantineTimeUtc">
<summary>
The UTC time when the issue was quarantined
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.WorkflowThreadUrl">
<summary>
The workflow thread url for this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.FindIssueResponse.OpenWorkflows">
<summary>
Workflows for which this issue is open
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.UpdateIssueRequest">
<summary>
Request an issue to be updated
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.Summary">
<summary>
Summary of the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.Description">
<summary>
Description of the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.Promoted">
<summary>
Whether the issue is promoted or not
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.OwnerId">
<summary>
New user id for owner of the issue, can be cleared by passing empty string
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.NominatedById">
<summary>
User id that nominated the new owner
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.Acknowledged">
<summary>
Whether the issue has been acknowledged
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.Declined">
<summary>
Whether the user has declined this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.FixChange">
<summary>
The change at which the issue is claimed fixed. 0 = not fixed, -1 = systemic issue.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.FixCommitId">
<summary>
The change at which the issue is claimed fixed. """" = not fixed.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.FixSystemic">
<summary>
Set to mark the issue as fixed systemically
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.Resolved">
<summary>
Whether the issue should be marked as resolved
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.AddSpans">
<summary>
List of spans to add to this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.RemoveSpans">
<summary>
List of spans to remove from this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.ExternalIssueKey">
<summary>
A key to issue in external tracker
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.QuarantinedById">
<summary>
Id of user quarantining issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.UpdateIssueRequest.ForceClosedById">
<summary>
Id of user who is forcibly closing this issue, skipping verification checks. This is useful for when a failing step has been removed for example
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.GetExternalIssueProjectResponse">
<summary>
External issue project information
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueProjectResponse.ProjectKey">
<summary>
The project key
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueProjectResponse.Name">
<summary>
The name of the project
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueProjectResponse.Id">
<summary>
The id of the project
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueProjectResponse.Components">
<summary>
component id => name
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueProjectResponse.IssueTypes">
<summary>
IssueType id => name
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.MarkFixedViaPerforceRequest">
<summary>
Marks an issue as fixed by another user. Designed for use from a Perforce trigger.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.MarkFixedViaPerforceRequest.UserName">
<summary>
Name of the user that fixed the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.MarkFixedViaPerforceRequest.FixChange">
<summary>
Change that fixed the issue
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.CreateExternalIssueRequest">
<summary>
Request an issue to be created on external issue tracking system
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueRequest.IssueId">
<summary>
Horde issue which is linked to external issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueRequest.StreamId">
<summary>
StreamId of a stream with this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueRequest.Summary">
<summary>
Summary text for external issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueRequest.ProjectId">
<summary>
External issue project id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueRequest.ComponentId">
<summary>
External issue component id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueRequest.IssueTypeId">
<summary>
External issue type id
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueRequest.Description">
<summary>
Optional description text for external issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueRequest.HordeIssueLink">
<summary>
Optional link to issue on Horde
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.CreateExternalIssueResponse">
<summary>
Response for externally created issue
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueResponse.Key">
<summary>
External issue key
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.CreateExternalIssueResponse.Link">
<summary>
Link to issue on external tracking site
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.CreateExternalIssueResponse.#ctor(System.String,System.String)">
<summary>
Constructor
</summary>
<param name="key"></param>
<param name="link"></param>
</member>
<member name="T:EpicGames.Horde.Issues.GetExternalIssueResponse">
<summary>
External issue response object
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueResponse.Key">
<summary>
The external issue key
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueResponse.Link">
<summary>
The issue link on external tracking site
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueResponse.StatusName">
<summary>
The issue status name, "To Do", "In Progress", etc
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueResponse.ResolutionName">
<summary>
The issue resolution name, "Fixed", "Closed", etc
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueResponse.PriorityName">
<summary>
The issue priority name, "1 - Critical", "2 - Major", etc
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueResponse.AssigneeName">
<summary>
The current assignee's user name
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueResponse.AssigneeDisplayName">
<summary>
The current assignee's display name
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetExternalIssueResponse.AssigneeEmailAddress">
<summary>
The current assignee's email address
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IssueMetadata">
<summary>
Entry in an issue's metadata collection. Implemented as a case-insensitive key and value
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueMetadata.Key">
<summary>
Key for the metadata item
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IssueMetadata.Value">
<summary>
Value for the metadata
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueMetadata.#ctor(System.String,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueMetadata.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.IssueMetadata.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.IssueMetadata.Equals(EpicGames.Horde.Issues.IssueMetadata)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.IssueMetadata.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.IssueMetadataEntryExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Issues.IssueMetadata"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueMetadataEntryExtensions.Add(System.Collections.Generic.HashSet{EpicGames.Horde.Issues.IssueMetadata},System.String,System.String)">
<summary>
Adds a new entry to a set
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.IssueMetadataEntryExtensions.FindValues(System.Collections.Generic.IReadOnlySet{EpicGames.Horde.Issues.IssueMetadata},System.String)">
<summary>
Gets all the metadata values with a given key
</summary>
<param name="entries">Set of entries to search</param>
<param name="key">Key name to search for</param>
<returns>All values with the given key</returns>
</member>
<member name="T:EpicGames.Horde.Issues.IWorkflow">
<summary>
Configuration for an issue workflow
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.Id">
<summary>
Identifier for this workflow
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.ReportTimes">
<summary>
Times of day at which to send a report
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.SummaryTab">
<summary>
Name of the tab to post summary data to
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.ReportChannel">
<summary>
Channel to post summary information for these templates.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.ReportWarnings">
<summary>
Whether to include issues with a warning status in the summary
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.GroupIssuesByTemplate">
<summary>
Whether to group issues by template in the report
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.TriageChannel">
<summary>
Channel to post threads for triaging new issues
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.TriagePrefix">
<summary>
Prefix for all triage messages
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.TriageSuffix">
<summary>
Suffix for all triage messages
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.TriageInstructions">
<summary>
Instructions posted to triage threads
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.TriageAlias">
<summary>
User id of a Slack user/alias to ping if there is nobody assigned to an issue by default.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.TriageTypeAliases">
<summary>
Slack user/alias to ping for specific issue types (such as Systemic), if there is nobody assigned to an issue by default.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.EscalateAlias">
<summary>
Alias to ping if an issue has not been resolved for a certain amount of time
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.EscalateTimes">
<summary>
Times after an issue has been opened to escalate to the alias above, in minutes. Continues to notify on the last interval once reaching the end of the list.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.MaxMentions">
<summary>
Maximum number of people to mention on a triage thread
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.AllowMentions">
<summary>
Whether to mention people on this thread. Useful to disable for testing.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.InviteRestrictedUsers">
<summary>
Uses the admin.conversations.invite API to invite users to the channel
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.SkipWhenEmpty">
<summary>
Skips sending reports when there are no active issues.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.ShowMergeWarnings">
<summary>
Whether to show warnings about merging changes into the origin stream.
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.Annotations">
<summary>
Additional node annotations implicit in this workflow
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.ExternalIssues">
<summary>
External issue tracking configuration for this workflow
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflow.IssueHandlers">
<summary>
Additional issue handlers enabled for this workflow
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.IWorkflowExternalIssues">
<summary>
External issue tracking configuration for a workflow
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflowExternalIssues.ProjectKey">
<summary>
Project key in external issue tracker
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflowExternalIssues.DefaultComponentId">
<summary>
Default component id for issues using workflow
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.IWorkflowExternalIssues.DefaultIssueTypeId">
<summary>
Default issue type id for issues using workflow
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.WorkflowId">
<summary>
Identifier for a workflow
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Issues.WorkflowId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a workflow
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Issues.WorkflowId.Id">
<summary>Id to construct from</summary>
</member>
<member name="P:EpicGames.Horde.Issues.WorkflowId.Empty">
<summary>
Empty workflow id constant
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.WorkflowId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.WorkflowId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Issues.WorkflowId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.WorkflowIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.WorkflowIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.WorkflowIdConverter.ToStringId(EpicGames.Horde.Issues.WorkflowId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Issues.GetWorkflowResponse">
<summary>
Configuration for an issue workflow
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.Id">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.ReportTimes">
<inheritdoc cref="P:EpicGames.Horde.Issues.IWorkflow.ReportTimes"/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.SummaryTab">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.ReportChannel">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.ReportWarnings">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.GroupIssuesByTemplate">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.TriageChannel">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.TriagePrefix">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.TriageSuffix">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.TriageInstructions">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.TriageAlias">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.TriageTypeAliases">
<inheritdoc cref="P:EpicGames.Horde.Issues.IWorkflow.TriageTypeAliases"/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.EscalateAlias">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.EscalateTimes">
<inheritdoc cref="P:EpicGames.Horde.Issues.IWorkflow.EscalateTimes"/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.MaxMentions">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.AllowMentions">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.InviteRestrictedUsers">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.SkipWhenEmpty">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.ShowMergeWarnings">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.Annotations">
<inheritdoc cref="P:EpicGames.Horde.Issues.IWorkflow.Annotations"/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.ExternalIssues">
<inheritdoc cref="P:EpicGames.Horde.Issues.IWorkflow.ExternalIssues"/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowResponse.IssueHandlers">
<inheritdoc cref="P:EpicGames.Horde.Issues.IWorkflow.IssueHandlers"/>
</member>
<member name="M:EpicGames.Horde.Issues.GetWorkflowResponse.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.GetWorkflowResponse.#ctor(EpicGames.Horde.Issues.IWorkflow)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Issues.GetWorkflowExternalIssuesResponse">
<summary>
External issue tracking configuration for a workflow
</summary>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowExternalIssuesResponse.ProjectKey">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowExternalIssuesResponse.DefaultComponentId">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Issues.GetWorkflowExternalIssuesResponse.DefaultIssueTypeId">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Issues.GetWorkflowExternalIssuesResponse.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Issues.GetWorkflowExternalIssuesResponse.#ctor(EpicGames.Horde.Issues.IWorkflowExternalIssues)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Bisect.BisectTaskId">
<summary>
Identifier for a job
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Jobs.Bisect.BisectTaskId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a job
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Jobs.Bisect.BisectTaskId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Bisect.BisectTaskId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Jobs.Bisect.BisectTaskId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Bisect.BisectTaskIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.BinaryId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Bisect.BisectTaskIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Bisect.BisectTaskIdConverter.ToBinaryId(EpicGames.Horde.Jobs.Bisect.BisectTaskId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.GetNodeResponse">
<summary>
Information required to create a node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.Name">
<summary>
The name of this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.Inputs">
<summary>
Inputs for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.Outputs">
<summary>
Output from this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.InputDependencies">
<summary>
Indices of nodes which must have succeeded for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.OrderDependencies">
<summary>
Indices of nodes which must have completed for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.Priority">
<summary>
The priority of this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.AllowRetry">
<summary>
Whether this node can be retried
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.RunEarly">
<summary>
This node can start running early, before dependencies of other nodes in the same group are complete
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.Warnings">
<summary>
Whether to include warnings in diagnostic output
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.AverageDuration">
<summary>
Average time to execute this node based on historical trends
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.Credentials">
<summary>
Credentials required for this node to run. This dictionary maps from environment variable names to a credential property in the format 'CredentialName.PropertyName'.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.Properties">
<summary>
Properties for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.Annotations">
<summary>
Annotations for this node
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GetNodeResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="name"></param>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.GetGroupResponse">
<summary>
Information about a group of nodes
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetGroupResponse.AgentType">
<summary>
The type of agent to execute this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetGroupResponse.Nodes">
<summary>
Nodes in the group
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GetGroupResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.GetAggregateResponse">
<summary>
Information about an aggregate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetAggregateResponse.Name">
<summary>
Name of the aggregate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetAggregateResponse.Nodes">
<summary>
Nodes which must be part of the job for the aggregate to be shown
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GetAggregateResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.GetLabelResponse">
<summary>
Information about a label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetLabelResponse.Category">
<summary>
Category of the aggregate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetLabelResponse.Name">
<summary>
Label for this aggregate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetLabelResponse.DashboardName">
<summary>
Name to show for this label on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetLabelResponse.DashboardCategory">
<summary>
Category to show this label in on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetLabelResponse.UgsName">
<summary>
Name to show for this label in UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetLabelResponse.UgsProject">
<summary>
Project to display this label for in UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetLabelResponse.RequiredNodes">
<summary>
Nodes which must be part of the job for the aggregate to be shown
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetLabelResponse.IncludedNodes">
<summary>
Nodes to include in the status of this aggregate, if present in the job
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.GetGraphResponse">
<summary>
Information about a graph
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetGraphResponse.Hash">
<summary>
The hash of the graph
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetGraphResponse.Groups">
<summary>
Array of nodes for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetGraphResponse.Aggregates">
<summary>
List of aggregates
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.GetGraphResponse.Labels">
<summary>
List of labels for the graph
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GetGraphResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.IGraph">
<summary>
A unique dependency graph instance
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraph.Id">
<summary>
Hash of this graph
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraph.Schema">
<summary>
Schema version for this document
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraph.Groups">
<summary>
List of groups for this graph
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraph.Aggregates">
<summary>
List of aggregates for this graph
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraph.Labels">
<summary>
Status labels for this graph
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraph.Artifacts">
<summary>
Artifacts for this graph
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.GraphExtensions">
<summary>
Extension methods for graphs
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GraphExtensions.GetNode(EpicGames.Horde.Jobs.Graphs.IGraph,EpicGames.Horde.Jobs.Graphs.NodeRef)">
<summary>
Gets the node from a node reference
</summary>
<param name="graph">The graph instance</param>
<param name="nodeRef">The node reference</param>
<returns>The node for the given reference</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GraphExtensions.TryFindNode(EpicGames.Horde.Jobs.Graphs.IGraph,System.String,EpicGames.Horde.Jobs.Graphs.NodeRef@)">
<summary>
Tries to find a node by name
</summary>
<param name="graph">The graph to search</param>
<param name="nodeName">Name of the node</param>
<param name="nodeRef">Receives the node reference</param>
<returns>True if the node was found, false otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GraphExtensions.TryFindNode(EpicGames.Horde.Jobs.Graphs.IGraph,System.String,EpicGames.Horde.Jobs.Graphs.INode@)">
<summary>
Tries to find a node by name
</summary>
<param name="graph">The graph to search</param>
<param name="nodeName">Name of the node</param>
<param name="node">Receives the node</param>
<returns>True if the node was found, false otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GraphExtensions.TryFindAggregate(EpicGames.Horde.Jobs.Graphs.IGraph,System.String,System.Int32@)">
<summary>
Tries to find a node by name
</summary>
<param name="graph">The graph to search</param>
<param name="name">Name of the node</param>
<param name="aggregateIdx">Receives the aggregate index</param>
<returns>True if the node was found, false otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GraphExtensions.TryFindAggregate(EpicGames.Horde.Jobs.Graphs.IGraph,System.String,EpicGames.Horde.Jobs.Graphs.IAggregate@)">
<summary>
Tries to find a node by name
</summary>
<param name="graph">The graph to search</param>
<param name="name">Name of the node</param>
<param name="aggregate">Receives the aggregate</param>
<returns>True if the node was found, false otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.GraphExtensions.GetDependencies(EpicGames.Horde.Jobs.Graphs.IGraph,EpicGames.Horde.Jobs.Graphs.INode)">
<summary>
Gets a list of dependencies for the given node
</summary>
<param name="graph">The graph instance</param>
<param name="node">The node to return dependencies for</param>
<returns>List of dependencies</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.INode">
<summary>
Represents a node in the graph
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.Name">
<summary>
The name of this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.Inputs">
<summary>
References to inputs for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.OutputNames">
<summary>
List of output names
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.InputDependencies">
<summary>
Indices of nodes which must have succeeded for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.OrderDependencies">
<summary>
Indices of nodes which must have completed for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.Priority">
<summary>
The priority that this node should be run at, within this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.AllowRetry">
<summary>
Whether this node can be run multiple times
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.RunEarly">
<summary>
This node can start running early, before dependencies of other nodes in the same group are complete
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.Warnings">
<summary>
Whether to include warnings in the output (defaults to true)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.Credentials">
<summary>
List of credentials required for this node. Each entry maps an environment variable name to a credential in the form "CredentialName.PropertyName".
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.Properties">
<summary>
Properties for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INode.Annotations">
<summary>
Annotations for this node
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.INodeGroup">
<summary>
Information about a sequence of nodes which can execute on a single agent
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INodeGroup.AgentType">
<summary>
The type of agent to execute this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.INodeGroup.Nodes">
<summary>
Nodes in this group
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.NodeRef">
<summary>
Reference to a node within another grup
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeRef.GroupIdx">
<summary>
The group index of the referenced node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeRef.NodeIdx">
<summary>
The node index of the referenced node
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeRef.#ctor">
<summary>
Private constructor for serialization
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeRef.#ctor(System.Int32,System.Int32)">
<summary>
Constructor
</summary>
<param name="groupIdx">Index of thr group containing the node</param>
<param name="nodeIdx">Index of the node within the group</param>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeRef.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeRef.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeRef.ToNode(System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Jobs.Graphs.INodeGroup})">
<summary>
Converts this reference to a node name
</summary>
<param name="groups">List of groups that this reference points to</param>
<returns>Name of the referenced node</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.NodeOutputRef">
<summary>
Output from a node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeOutputRef.NodeRef">
<summary>
Node producing the output
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeOutputRef.OutputIdx">
<summary>
Index of the output
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeOutputRef.#ctor(EpicGames.Horde.Jobs.Graphs.NodeRef,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeOutputRef.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeOutputRef.GetHashCode">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.IAggregate">
<summary>
An collection of node references
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IAggregate.Name">
<summary>
Name of the aggregate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IAggregate.Nodes">
<summary>
List of nodes for the aggregate to be valid
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.LabelChange">
<summary>
Change at which to display a label
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.LabelChange.Current">
<summary>
The current changelist
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.LabelChange.Code">
<summary>
The last code changelist
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.ILabel">
<summary>
Label indicating the status of a set of nodes
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.ILabel.DashboardName">
<summary>
Label to show in the dashboard. Null if does not need to be shown.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.ILabel.DashboardCategory">
<summary>
Category for the label. May be null.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.ILabel.UgsName">
<summary>
Name to display for this label in UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.ILabel.UgsProject">
<summary>
Project which this label applies to, for UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.ILabel.Change">
<summary>
Which change to display the label on
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.ILabel.RequiredNodes">
<summary>
List of required nodes for the aggregate to be valid
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.ILabel.IncludedNodes">
<summary>
List of optional nodes to include in the aggregate state
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.LabelExtensions">
<summary>
Extension methods for ILabel
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.LabelExtensions.GetDependencies(EpicGames.Horde.Jobs.Graphs.ILabel,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Jobs.Graphs.INodeGroup})">
<summary>
Enumerate all the required dependencies of this node group
</summary>
<param name="label">The label instance</param>
<param name="groups">List of groups for the job containing this aggregate</param>
<returns>Sequence of nodes</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.IGraphArtifact">
<summary>
Artifact produced by a graph
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraphArtifact.Name">
<summary>
Name of the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraphArtifact.Type">
<summary>
Type of the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraphArtifact.Description">
<summary>
Description for the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraphArtifact.BasePath">
<summary>
Base path for files in the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraphArtifact.Keys">
<summary>
Keys for finding the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraphArtifact.Metadata">
<summary>
Metadata for the artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraphArtifact.NodeName">
<summary>
Name of the node producing this artifact
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IGraphArtifact.OutputName">
<summary>
Tag for the artifact files
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.NewNode">
<summary>
Information required to create a node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.Name">
<summary>
The name of this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.Inputs">
<summary>
Input names
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.Outputs">
<summary>
Output names
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.InputDependencies">
<summary>
List of nodes which must succeed for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.OrderDependencies">
<summary>
List of nodes which must have completed for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.Priority">
<summary>
The priority of this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.AllowRetry">
<summary>
This node can be run multiple times
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.RunEarly">
<summary>
This node can start running early, before dependencies of other nodes in the same group are complete
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.Warnings">
<summary>
Whether to include warnings in the diagnostic output
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.Credentials">
<summary>
Credentials required for this node to run. This dictionary maps from environment variable names to a credential property in the format 'CredentialName.PropertyName'.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.Properties">
<summary>
Properties for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewNode.Annotations">
<summary>
Additional user annotations for this node
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NewNode.#ctor(System.String,System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},System.Nullable{EpicGames.Horde.Jobs.Priority},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String},EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations)">
<summary>
Constructor
</summary>
<param name="name">Name of the node</param>
<param name="inputs">List of inputs for the node</param>
<param name="outputs">List of output names for the node</param>
<param name="inputDependencies">List of nodes which must have completed succesfully for this node to run</param>
<param name="orderDependencies">List of nodes which must have completed for this node to run</param>
<param name="priority">Priority of this node</param>
<param name="allowRetry">Whether the node can be run multiple times</param>
<param name="runEarly">Whether the node can run early, before dependencies of other nodes in the same group complete</param>
<param name="warnings">Whether to include warnings in the diagnostic output (defaults to true)</param>
<param name="credentials">Credentials required for this node to run</param>
<param name="properties">Properties for the node</param>
<param name="annotations">User annotations for this node</param>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NewNode.#ctor(EpicGames.Horde.Jobs.Graphs.IGraph,EpicGames.Horde.Jobs.Graphs.INode)">
<summary>
Constructor
</summary>
<param name="graph">Existing graph containing a node</param>
<param name="node">Node to copy</param>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.NewGroup">
<summary>
Information about a group of nodes
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewGroup.AgentType">
<summary>
The type of agent to execute this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewGroup.Nodes">
<summary>
Nodes in the group
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NewGroup.#ctor(System.String,System.Collections.Generic.List{EpicGames.Horde.Jobs.Graphs.NewNode})">
<summary>
Constructor
</summary>
<param name="agentType">The type of agent to execute this group</param>
<param name="nodes">Nodes in this group</param>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NewGroup.#ctor(EpicGames.Horde.Jobs.Graphs.IGraph,EpicGames.Horde.Jobs.Graphs.INodeGroup)">
<summary>
Constructor
</summary>
<param name="graph">Graph containing the node group</param>
<param name="group">Node group to copy</param>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.NewLabel">
<summary>
Information about a group of nodes
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.Category">
<summary>
Category for this label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.Name">
<summary>
Name of the aggregate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.DashboardName">
<summary>
Name of the aggregate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.DashboardCategory">
<summary>
Category for this label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.UgsName">
<summary>
Name of the badge in UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.UgsProject">
<summary>
Project to show this label for in UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.Change">
<summary>
Which change the label applies to
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.RequiredNodes">
<summary>
Nodes which must be part of the job for the aggregate to be valid
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewLabel.IncludedNodes">
<summary>
Nodes which must be part of the job for the aggregate to be valid
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.NewAggregate">
<summary>
Information about a group of nodes
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewAggregate.Name">
<summary>
Name of the aggregate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NewAggregate.Nodes">
<summary>
Nodes which must be part of the job for the aggregate to be valid
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NewAggregate.#ctor(System.String,System.Collections.Generic.List{System.String})">
<summary>
Constructor
</summary>
<param name="name">Name of this aggregate</param>
<param name="nodes">Nodes which must be part of the job for the aggregate to be shown</param>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.NewGraphArtifact">
<summary>
Information about an artifact
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NewGraphArtifact.#ctor(EpicGames.Horde.Artifacts.ArtifactName,EpicGames.Horde.Artifacts.ArtifactType,System.String,System.String,System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},System.String,System.String)">
<summary>
Information about an artifact
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations">
<summary>
Interface which wraps a generic key/value dictionary to provide specific node annotations
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.WorkflowId">
<summary>
Workflow to use for triaging issues from this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.CreateIssues">
<summary>
Whether to create issues for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.AutoAssign">
<summary>
Whether to automatically assign issues that could only be caused by one user, or have a well defined correlation with a modified file.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.AutoAssignToUser">
<summary>
Automatically assign any issues to the given user
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.NotifySubmitters">
<summary>
Whether to notify all submitters between a build suceeding and failing, allowing them to step forward and take ownership of an issue.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.IssueGroup">
<summary>
Key to use for grouping issues together, preventing them being merged with other groups
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.BuildBlocker">
<summary>
Whether failures in this node should be flagged as build blockers
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Graphs.NodeAnnotations">
<summary>
Set of annotations for a node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.Empty">
<summary>
Empty annotation dictionary
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.WorkflowKeyName">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.WorkflowId"/>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.CreateIssuesKeyName">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.CreateIssues"/>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.AutoAssignKeyName">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.AutoAssign"/>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.AutoAssignToUserKeyName">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.AutoAssignToUser"/>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.NotifySubmittersKeyName">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.NotifySubmitters"/>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.IssueGroupKeyName">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.IssueGroup"/>
</member>
<member name="F:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.BuildBlockerKeyName">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Graphs.IReadOnlyNodeAnnotations.BuildBlocker"/>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.#ctor(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<summary>
Constructor
</summary>
<param name="annotations"></param>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.WorkflowId">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.CreateIssues">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.AutoAssign">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.AutoAssignToUser">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.NotifySubmitters">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.IssueGroup">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.BuildBlocker">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Graphs.NodeAnnotations.Merge(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<summary>
Merge in entries from another set of annotation
</summary>
<param name="other"></param>
</member>
<member name="T:EpicGames.Horde.Jobs.IJob">
<summary>
Document describing a job
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.IJob.TargetArgumentPrefix">
<summary>
Job argument indicating a target that should be built
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.IJob.SetupNodeName">
<summary>
Name of the node which parses the buildgraph script
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Id">
<summary>
Identifier for the job. Randomly generated.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.StreamId">
<summary>
The stream that this job belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.TemplateId">
<summary>
The template ref id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.TemplateHash">
<summary>
The template that this job was created from
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.GraphHash">
<summary>
Hash of the graph definition
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Graph">
<summary>
Graph for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.StartedByUserId">
<summary>
Id of the user that started this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.AbortedByUserId">
<summary>
Id of the user that aborted this job. Set to null if the job is not aborted.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.CancellationReason">
<summary>
Optional reason for why the job was canceled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.StartedByBisectTaskId">
<summary>
Identifier of the bisect task that started this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Name">
<summary>
Name of the job.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.CommitId">
<summary>
The commit to build
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.CodeCommitId">
<summary>
The code commit for this build
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.PreflightCommitId">
<summary>
The preflight changelist number
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.PreflightDescription">
<summary>
Description for the shelved change if running a preflight
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Priority">
<summary>
Priority of this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.AutoSubmit">
<summary>
For preflights, submit the change if the job is successful
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.AutoSubmitChange">
<summary>
The submitted changelist number
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.AutoSubmitMessage">
<summary>
Message produced by trying to auto-submit the change
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.UpdateIssues">
<summary>
Whether to update issues based on the outcome of this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.PromoteIssuesByDefault">
<summary>
Whether to promote issues by default based on the outcome of this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.CreateTimeUtc">
<summary>
Time that the job was created (in UTC)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.JobOptions">
<summary>
Options for executing the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Claims">
<summary>
Claims inherited from the user that started this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Batches">
<summary>
Array of jobstep runs
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Parameters">
<summary>
Parameters for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Arguments">
<summary>
Optional user-defined properties for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Targets">
<summary>
Custom list of targets for the job. If null or empty, the list of targets is determined from the command line.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.AdditionalArguments">
<summary>
Additional arguments for the job, when a set of parameters are applied.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Environment">
<summary>
Environment variables for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Issues">
<summary>
Issues associated with this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.NotificationTriggerId">
<summary>
Unique id for notifications
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.ShowUgsBadges">
<summary>
Whether to show badges in UGS for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.ShowUgsAlerts">
<summary>
Whether to show alerts in UGS for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.NotificationChannel">
<summary>
Notification channel for this job.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.NotificationChannelFilter">
<summary>
Notification channel filter for this job.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.LabelIdxToTriggerId">
<summary>
Mapping of label ids to notification trigger ids for notifications
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.Reports">
<summary>
List of reports for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.ChainedJobs">
<summary>
List of downstream job triggers
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.UpdateTimeUtc">
<summary>
The last update time
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJob.UpdateIndex">
<summary>
Update counter for this document. Any updates should compare-and-swap based on the value of this counter, or increment it in the case of server-side updates.
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.RefreshAsync(System.Threading.CancellationToken)">
<summary>
Gets the latest job state
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryGetBatch(EpicGames.Horde.Jobs.JobStepBatchId,EpicGames.Horde.Jobs.IJobStepBatch@)">
<summary>
Attempt to get a batch with the given id
</summary>
<param name="batchId">The job batch id</param>
<param name="batch">Receives the batch interface on success</param>
<returns>True if the batch was found</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryGetStep(EpicGames.Horde.Jobs.JobStepId,EpicGames.Horde.Jobs.IJobStep@)">
<summary>
Attempt to get a step with the given id
</summary>
<param name="stepId">The job step id</param>
<param name="step">Receives the step interface on success</param>
<returns>True if the step was found</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryDeleteAsync(System.Threading.CancellationToken)">
<summary>
Attempt to delete the job
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the job was deleted. False if the job is not the latest revision.</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryRemoveFromDispatchQueueAsync(System.Threading.CancellationToken)">
<summary>
Removes a job from the dispatch queue. Ignores the state of any batches still remaining to execute. Should only be used to correct for inconsistent state.
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryUpdateJobAsync(System.String,System.Nullable{EpicGames.Horde.Jobs.Priority},System.Nullable{System.Boolean},System.Nullable{System.Int32},System.String,System.Nullable{EpicGames.Horde.Users.UserId},System.Nullable{EpicGames.Horde.Notifications.NotificationTriggerId},System.Collections.Generic.List{EpicGames.Horde.Jobs.JobReport},System.Collections.Generic.List{System.String},System.Nullable{System.Collections.Generic.KeyValuePair{System.Int32,EpicGames.Horde.Notifications.NotificationTriggerId}},System.Nullable{System.Collections.Generic.KeyValuePair{EpicGames.Horde.Jobs.Templates.TemplateId,EpicGames.Horde.Jobs.JobId}},System.String,System.Threading.CancellationToken)">
<summary>
Updates a new job
</summary>
<param name="name">Name of the job</param>
<param name="priority">Priority of the job</param>
<param name="autoSubmit">Automatically submit the job on completion</param>
<param name="autoSubmitChange">Changelist that was automatically submitted</param>
<param name="autoSubmitMessage"></param>
<param name="abortedByUserId">Name of the user that aborted the job</param>
<param name="notificationTriggerId">Id for a notification trigger</param>
<param name="reports">New reports</param>
<param name="arguments">New arguments for the job</param>
<param name="labelIdxToTriggerId">New trigger ID for a label in the job</param>
<param name="jobTrigger">New downstream job id</param>
<param name="cancellationReason">Optional reason why the job was canceled</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryUpdateBatchAsync(EpicGames.Horde.Jobs.JobStepBatchId,System.Nullable{EpicGames.Horde.Logs.LogId},System.Nullable{EpicGames.Horde.Jobs.JobStepBatchState},System.Nullable{EpicGames.Horde.Jobs.JobStepBatchError},System.Threading.CancellationToken)">
<summary>
Updates the state of a batch
</summary>
<param name="batchId">Unique id of the batch to update</param>
<param name="newLogId">The new log file id</param>
<param name="newState">New state of the jobstep</param>
<param name="newError">Error code for the batch</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the job was updated, false if it was deleted</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryUpdateStepAsync(EpicGames.Horde.Jobs.JobStepBatchId,EpicGames.Horde.Jobs.JobStepId,EpicGames.Horde.Jobs.JobStepState,EpicGames.Horde.Jobs.JobStepOutcome,System.Nullable{EpicGames.Horde.Jobs.JobStepError},System.Nullable{System.Boolean},System.Nullable{EpicGames.Horde.Users.UserId},System.Nullable{EpicGames.Horde.Logs.LogId},System.Nullable{EpicGames.Horde.Notifications.NotificationTriggerId},System.Nullable{EpicGames.Horde.Users.UserId},System.Nullable{EpicGames.Horde.Jobs.Priority},System.Collections.Generic.List{EpicGames.Horde.Jobs.JobReport},System.Collections.Generic.Dictionary{System.String,System.String},System.String,System.Threading.CancellationToken)">
<summary>
Update a jobstep state
</summary>
<param name="batchId">Unique id of the batch containing the step</param>
<param name="stepId">Unique id of the step to update</param>
<param name="newState">New state of the jobstep</param>
<param name="newOutcome">New outcome of the jobstep</param>
<param name="newError">New error annotation for this jobstep</param>
<param name="newAbortRequested">New state of request abort</param>
<param name="newAbortByUserId">New name of user that requested the abort</param>
<param name="newLogId">New log id for the jobstep</param>
<param name="newNotificationTriggerId">New id for a notification trigger</param>
<param name="newRetryByUserId">Whether the step should be retried</param>
<param name="newPriority">New priority for this step</param>
<param name="newReports">New report documents</param>
<param name="newProperties">Property changes. Any properties with a null value will be removed.</param>
<param name="newCancellationReason">The reason the job step was canceled</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the job was updated, false if it was deleted in the meantime</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryUpdateGraphAsync(EpicGames.Horde.Jobs.Graphs.IGraph,System.Threading.CancellationToken)">
<summary>
Attempts to update the node groups to be executed for a job. Fails if another write happens in the meantime.
</summary>
<param name="newGraph">New graph for this job</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the groups were updated to the given list. False if another write happened first.</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TrySkipAllBatchesAsync(EpicGames.Horde.Jobs.JobStepBatchError,System.Threading.CancellationToken)">
<summary>
Marks a job as skipped
</summary>
<param name="reason">Reason for this batch being failed</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Updated version of the job</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TrySkipBatchAsync(EpicGames.Horde.Jobs.JobStepBatchId,EpicGames.Horde.Jobs.JobStepBatchError,System.Threading.CancellationToken)">
<summary>
Marks a batch as skipped
</summary>
<param name="batchId">The batch to mark as skipped</param>
<param name="reason">Reason for this batch being failed</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Updated version of the job</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryFailBatchAsync(System.Int32,EpicGames.Horde.Jobs.JobStepBatchError,System.Threading.CancellationToken)">
<summary>
Abort an agent's lease, and update the payload accordingly
</summary>
<param name="batchIdx">Index of the batch to cancel</param>
<param name="reason">Reason for this batch being failed</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the job is updated</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryAssignLeaseAsync(System.Int32,EpicGames.Horde.Agents.Pools.PoolId,EpicGames.Horde.Agents.AgentId,EpicGames.Horde.Agents.Sessions.SessionId,EpicGames.Horde.Agents.Leases.LeaseId,EpicGames.Horde.Logs.LogId,System.Threading.CancellationToken)">
<summary>
Attempt to assign a lease to execute a batch
</summary>
<param name="batchIdx">Index of the batch</param>
<param name="poolId">The pool id</param>
<param name="agentId">New agent to execute the batch</param>
<param name="sessionId">Session of the agent that is to execute the batch</param>
<param name="leaseId">The lease unique id</param>
<param name="logId">Unique id of the log for the batch</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the batch is updated</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.IJob.TryCancelLeaseAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
Cancel a lease reservation on a batch (before it has started)
</summary>
<param name="batchIdx">Index of the batch to cancel</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the job is updated</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.JobExtensions">
<summary>
Extension methods for jobs
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetState(EpicGames.Horde.Jobs.IJob)">
<summary>
Gets the current job state
</summary>
<param name="job">The job document</param>
<returns>Job state</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetTargetState(EpicGames.Horde.Jobs.IJob)">
<summary>
Gets the outcome for a particular named target. May be an aggregate or node name.
</summary>
<param name="job">The job to check</param>
<returns>The step outcome</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetTargetState(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.IGraph,System.String)">
<summary>
Gets the outcome for a particular named target. May be an aggregate or node name.
</summary>
<param name="job">The job to check</param>
<param name="graph">Graph for the job</param>
<param name="target">Target to find an outcome for</param>
<returns>The step outcome</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetTargetState(System.Collections.Generic.IEnumerable{EpicGames.Horde.Jobs.IJobStep})">
<summary>
Gets the outcome for a particular named target. May be an aggregate or node name.
</summary>
<param name="steps">Steps to include</param>
<returns>The step outcome</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetTargetOutcome(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.IGraph,System.String)">
<summary>
Gets the outcome for a particular named target. May be an aggregate or node name.
</summary>
<param name="job">The job to check</param>
<param name="graph">Graph for the job</param>
<param name="target">Target to find an outcome for</param>
<returns>The step outcome</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.TryGetStepForNode(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.NodeRef,EpicGames.Horde.Jobs.IJobStep@)">
<summary>
Gets the job step for a particular node
</summary>
<param name="job">The job to search</param>
<param name="nodeRef">The node ref</param>
<param name="jobStep">Receives the jobstep on success</param>
<returns>True if the jobstep was founds</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetStepForNodeMap(EpicGames.Horde.Jobs.IJob)">
<summary>
Gets a dictionary that maps <see cref="T:EpicGames.Horde.Jobs.Graphs.NodeRef"/> objects to their associated
<see cref="T:EpicGames.Horde.Jobs.IJobStep"/> objects on a <see cref="T:EpicGames.Horde.Jobs.IJob"/>.
</summary>
<param name="job">The job document</param>
<returns>Map of <see cref="T:EpicGames.Horde.Jobs.Graphs.NodeRef"/> to <see cref="T:EpicGames.Horde.Jobs.IJobStep"/></returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.FindLatestStepForNode(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.NodeRef)">
<summary>
Find the latest step executing the given node
</summary>
<param name="job">The job being run</param>
<param name="nodeRef">Node to find</param>
<returns>The retried step information</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetTimingInfo(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.IGraph,EpicGames.Horde.Jobs.Timing.IJobTiming,Microsoft.Extensions.Logging.ILogger)">
<summary>
Gets the estimated timing info for all nodes in the job
</summary>
<param name="job">The job document</param>
<param name="graph">Graph for this job</param>
<param name="jobTiming">Job timing information</param>
<param name="logger">Logger for any diagnostic messages</param>
<returns>Map of node to expected timing info</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetAverageWaitTime(EpicGames.Horde.Jobs.Graphs.IGraph,EpicGames.Horde.Jobs.IJobStepBatch,EpicGames.Horde.Jobs.Timing.IJobTiming,Microsoft.Extensions.Logging.ILogger)">
<summary>
Gets the average wait time for this batch
</summary>
<param name="graph">Graph for the job</param>
<param name="batch">The batch to get timing info for</param>
<param name="jobTiming">The job timing information</param>
<param name="logger">Logger for diagnostic info</param>
<returns>Wait time for the batch</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetAverageInitTime(EpicGames.Horde.Jobs.Graphs.IGraph,EpicGames.Horde.Jobs.IJobStepBatch,EpicGames.Horde.Jobs.Timing.IJobTiming,Microsoft.Extensions.Logging.ILogger)">
<summary>
Gets the average initialization time for this batch
</summary>
<param name="graph">Graph for the job</param>
<param name="batch">The batch to get timing info for</param>
<param name="jobTiming">The job timing information</param>
<param name="logger">Logger for diagnostic messages</param>
<returns>Initialization time for this batch</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.NullableTimeSpanFromSeconds(System.Nullable{System.Single})">
<summary>
Creates a nullable timespan from a nullable number of seconds
</summary>
<param name="seconds">The number of seconds to construct from</param>
<returns>TimeSpan object</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.TryGetStep(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.JobStepBatchId,EpicGames.Horde.Jobs.JobStepId,EpicGames.Horde.Jobs.IJobStep@)">
<summary>
Attempts to get a batch with the given id
</summary>
<param name="job">The job document</param>
<param name="batchId">The batch id</param>
<param name="stepId">The step id</param>
<param name="step">On success, receives the step object</param>
<returns>True if the batch was found</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetNodesForLabel(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.IGraph,System.Int32)">
<summary>
Finds the set of nodes affected by a label
</summary>
<param name="job">The job document</param>
<param name="graph">Graph definition for the job</param>
<param name="labelIdx">Index of the label. -1 or Graph.Labels.Count are treated as referring to the default lable.</param>
<returns>Set of nodes affected by the given label</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetLabelStateResponses(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.IGraph,System.Collections.Generic.List{EpicGames.Horde.Jobs.GetLabelStateResponse})">
<summary>
Create a list of aggregate responses, combining the graph definitions with the state of the job
</summary>
<param name="job">The job document</param>
<param name="graph">Graph definition for the job</param>
<param name="responses">List to receive all the responses</param>
<returns>The default label state</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetLabelStates(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.IGraph)">
<summary>
Get the states of all labels for this job
</summary>
<param name="job">The job to get states for</param>
<param name="graph">The graph for this job</param>
<returns>Collection of label states by label index</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetUgsBadgeStates(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.IGraph)">
<summary>
Get the states of all UGS badges for this job
</summary>
<param name="job">The job to get states for</param>
<param name="graph">The graph for this job</param>
<returns>List of badge states</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetUgsBadgeStates(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.Graphs.IGraph,System.Collections.Generic.IReadOnlyList{System.ValueTuple{EpicGames.Horde.Jobs.LabelState,EpicGames.Horde.Jobs.LabelOutcome}})">
<summary>
Get the states of all UGS badges for this job
</summary>
<param name="job">The job to get states for</param>
<param name="graph">The graph for this job</param>
<param name="labelStates">The existing label states to get the UGS badge states from</param>
<returns>List of badge states</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetJobState(EpicGames.Horde.Jobs.IJob,System.Collections.Generic.IReadOnlyDictionary{EpicGames.Horde.Jobs.Graphs.NodeRef,EpicGames.Horde.Jobs.IJobStep},EpicGames.Horde.Jobs.LabelState@,EpicGames.Horde.Jobs.LabelOutcome@)">
<summary>
Gets the state of a job, as a label that includes all steps
</summary>
<param name="job">The job to query</param>
<param name="stepForNode">Map from node to step</param>
<param name="newState">Receives the state of the label</param>
<param name="newOutcome">Receives the outcome of the label</param>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetLabelState(System.Collections.Generic.IEnumerable{EpicGames.Horde.Jobs.Graphs.NodeRef},System.Collections.Generic.IReadOnlyDictionary{EpicGames.Horde.Jobs.Graphs.NodeRef,EpicGames.Horde.Jobs.IJobStep},EpicGames.Horde.Jobs.LabelState@,EpicGames.Horde.Jobs.LabelOutcome@)">
<summary>
Gets the state of a label
</summary>
<param name="includedNodes">Nodes to include in this label</param>
<param name="stepForNode">Map from node to step</param>
<param name="newState">Receives the state of the label</param>
<param name="newOutcome">Receives the outcome of the label</param>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetArtifactKey(EpicGames.Horde.Jobs.IJob)">
<summary>
Gets a key attached to all artifacts produced for a job
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.GetArtifactKey(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.IJobStep)">
<summary>
Gets a key attached to all artifacts produced for a job step
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.SkipBatchAsync(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.JobStepBatchId,EpicGames.Horde.Jobs.JobStepBatchError,System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Jobs.IJob.TrySkipBatchAsync(EpicGames.Horde.Jobs.JobStepBatchId,EpicGames.Horde.Jobs.JobStepBatchError,System.Threading.CancellationToken)"/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobExtensions.SkipAllBatchesAsync(EpicGames.Horde.Jobs.IJob,EpicGames.Horde.Jobs.JobStepBatchError,System.Threading.CancellationToken)">
<inheritdoc cref="M:EpicGames.Horde.Jobs.IJob.TrySkipAllBatchesAsync(EpicGames.Horde.Jobs.JobStepBatchError,System.Threading.CancellationToken)"/>
</member>
<member name="T:EpicGames.Horde.Jobs.IJobStepBatch">
<summary>
Stores information about a batch of job steps
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.Job">
<summary>
Job that this batch belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.Id">
<summary>
Unique id for this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.AgentType">
<summary>
The type of agent to execute this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.LogId">
<summary>
The log file id for this batch
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.Group">
<summary>
The node group for this batch
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.GroupIdx">
<summary>
Index of the group being executed
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.State">
<summary>
The state of this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.Error">
<summary>
Error associated with this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.Steps">
<summary>
Steps within this run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.PoolId">
<summary>
The pool that this agent was taken from
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.AgentId">
<summary>
The agent assigned to execute this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.SessionId">
<summary>
The agent session that is executing this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.LeaseId">
<summary>
The lease that's executing this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.SchedulePriority">
<summary>
The weighted priority of this batch for the scheduler
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.ReadyTimeUtc">
<summary>
Time at which the group became ready (UTC).
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.StartTimeUtc">
<summary>
Time at which the group started (UTC).
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStepBatch.FinishTimeUtc">
<summary>
Time at which the group finished (UTC)
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepBatchExtensions">
<summary>
Extension methods for IJobStepBatch
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchExtensions.TryGetStep(EpicGames.Horde.Jobs.IJobStepBatch,EpicGames.Horde.Jobs.JobStepId,EpicGames.Horde.Jobs.IJobStep@)">
<summary>
Attempts to get a step with the given id
</summary>
<param name="batch">The batch to search</param>
<param name="stepId">The step id</param>
<param name="step">On success, receives the step object</param>
<returns>True if the step was found</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchExtensions.CanBeAppendedTo(EpicGames.Horde.Jobs.IJobStepBatch)">
<summary>
Determines if new steps can be appended to this batch. We do not allow this after the last step has been completed, because the agent is shutting down.
</summary>
<param name="batch">The batch to search</param>
<returns>True if new steps can be appended to this batch</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchExtensions.GetWaitTime(EpicGames.Horde.Jobs.IJobStepBatch)">
<summary>
Gets the wait time for this batch
</summary>
<param name="batch">The batch to search</param>
<returns>Wait time for the batch</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchExtensions.GetInitTime(EpicGames.Horde.Jobs.IJobStepBatch)">
<summary>
Gets the initialization time for this batch
</summary>
<param name="batch">The batch to search</param>
<returns>Initialization time for this batch</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchExtensions.GetStartDependencies(EpicGames.Horde.Jobs.IJobStepBatch,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Jobs.Graphs.INodeGroup})">
<summary>
Get the dependencies required for this batch to start, taking run-early nodes into account
</summary>
<param name="batch">The batch to search</param>
<param name="groups">List of node groups</param>
<returns>Set of nodes that must have completed for this batch to start</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchExtensions.GetStartDependencies(System.Collections.Generic.IEnumerable{EpicGames.Horde.Jobs.Graphs.INode},System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Jobs.Graphs.INodeGroup})">
<summary>
Get the dependencies required for this batch to start, taking run-early nodes into account
</summary>
<param name="batchNodes">Nodes in the batch to search</param>
<param name="groups">List of node groups</param>
<returns>Set of nodes that must have completed for this batch to start</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.IJobStep">
<summary>
Embedded jobstep document
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Job">
<summary>
Job that this step belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Batch">
<summary>
Batch that this step belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Id">
<summary>
Unique ID assigned to this jobstep. A new id is generated whenever a jobstep's order is changed.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Node">
<summary>
The node for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.NodeIdx">
<summary>
Index of the node which this jobstep is to execute
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Name">
<summary>
The name of this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Inputs">
<summary>
References to inputs for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.OutputNames">
<summary>
List of output names
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.InputDependencies">
<summary>
Indices of nodes which must have succeeded for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.OrderDependencies">
<summary>
Indices of nodes which must have completed for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.AllowRetry">
<summary>
Whether this node can be run multiple times
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.RunEarly">
<summary>
This node can start running early, before dependencies of other nodes in the same group are complete
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Warnings">
<summary>
Whether to include warnings in the output (defaults to true)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Credentials">
<summary>
List of credentials required for this node. Each entry maps an environment variable name to a credential in the form "CredentialName.PropertyName".
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Annotations">
<summary>
Annotations for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.State">
<summary>
Current state of the job step. This is updated automatically when runs complete.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Outcome">
<summary>
Current outcome of the jobstep
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Error">
<summary>
Error from executing this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.LogId">
<summary>
The log id for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.NotificationTriggerId">
<summary>
Unique id for notifications
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.ReadyTimeUtc">
<summary>
Time at which the batch transitioned to the ready state (UTC).
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.StartTimeUtc">
<summary>
Time at which the batch transitioned to the executing state (UTC).
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.FinishTimeUtc">
<summary>
Time at which the run finished (UTC)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Priority">
<summary>
Override for the priority of this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.RetriedByUserId">
<summary>
If a retry is requested, stores the name of the user that requested it
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.AbortRequested">
<summary>
Signal if a step should be aborted
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.AbortedByUserId">
<summary>
If an abort is requested, stores the id of the user that requested it
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.CancellationReason">
<summary>
Optional reason for why the job step was canceled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Reports">
<summary>
List of reports for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobStep.Properties">
<summary>
Reports for this jobstep.
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepExtensions">
<summary>
Extension methods for job steps
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepExtensions.IsPendingState(EpicGames.Horde.Jobs.JobStepState)">
<summary>
Determines if a jobstep state is completed, skipped, or aborted.
</summary>
<returns>True if the step is completed, skipped, or aborted</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepExtensions.IsPending(EpicGames.Horde.Jobs.IJobStep)">
<summary>
Determines if a jobstep is done by checking to see if it is completed, skipped, or aborted.
</summary>
<returns>True if the step is completed, skipped, or aborted</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepExtensions.HasTimedOut(EpicGames.Horde.Jobs.IJobStep,System.DateTime)">
<summary>
Determine if a step should be timed out
</summary>
<param name="step"></param>
<param name="utcNow"></param>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Jobs.TimingInfo">
<summary>
Cumulative timing information to reach a certain point in a job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TimingInfo.TotalWaitTime">
<summary>
Wait time on the critical path
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TimingInfo.TotalInitTime">
<summary>
Sync time on the critical path
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TimingInfo.TotalTimeToComplete">
<summary>
Duration to this point
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TimingInfo.AverageTotalWaitTime">
<summary>
Average wait time to this point
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TimingInfo.AverageTotalInitTime">
<summary>
Average sync time to this point
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TimingInfo.AverageTotalTimeToComplete">
<summary>
Average duration to this point
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TimingInfo.StepTiming">
<summary>
Individual step timing information
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.TimingInfo.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.TimingInfo.#ctor(EpicGames.Horde.Jobs.TimingInfo)">
<summary>
Copy constructor
</summary>
<param name="other">The timing info object to copy from</param>
</member>
<member name="M:EpicGames.Horde.Jobs.TimingInfo.WaitFor(EpicGames.Horde.Jobs.TimingInfo)">
<summary>
Modifies this timing to wait for another timing
</summary>
<param name="other">The other node to wait for</param>
</member>
<member name="M:EpicGames.Horde.Jobs.TimingInfo.WaitForAll(System.Collections.Generic.IEnumerable{EpicGames.Horde.Jobs.TimingInfo})">
<summary>
Waits for all the given timing info objects to complete
</summary>
<param name="others">Other timing info objects to wait for</param>
</member>
<member name="M:EpicGames.Horde.Jobs.TimingInfo.Max(System.Collections.Generic.IEnumerable{EpicGames.Horde.Jobs.TimingInfo})">
<summary>
Constructs a new TimingInfo object which represents the last TimingInfo to finish
</summary>
<param name="others">TimingInfo objects to wait for</param>
<returns>New TimingInfo instance</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.TimingInfo.CopyToResponse(EpicGames.Horde.Jobs.GetTimingInfoResponse)">
<summary>
Copies this info to a repsonse object
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.IChainedJob">
<summary>
Information about a chained job trigger
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IChainedJob.Target">
<summary>
The target to monitor
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IChainedJob.TemplateRefId">
<summary>
The template to trigger on success
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IChainedJob.JobId">
<summary>
The triggered job id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IChainedJob.UseDefaultChangeForTemplate">
<summary>
Whether to run the latest change, or default change for the template, when starting the new job. Uses same change as the triggering job by default.
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.IJobReport">
<summary>
Report for a job or jobstep
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobReport.Name">
<summary>
Name of the report
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobReport.Placement">
<summary>
Where to render the report
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobReport.ArtifactId">
<summary>
The artifact id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IJobReport.Content">
<summary>
Inline data for the report
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobReport">
<summary>
Implementation of IReport
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobReport.Name">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobReport.Placement">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobReport.ArtifactId">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobReport.Content">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.JobId">
<summary>
Identifier for a job
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Jobs.JobId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a job
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Jobs.JobId.Id">
<summary>Id to construct from</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobId.Empty">
<summary>
Constant value for an empty job id
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.JobIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.BinaryId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobIdConverter.ToBinaryId(EpicGames.Horde.Jobs.JobId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.JobState">
<summary>
State of the job
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobState.Waiting">
<summary>
Waiting for resources
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobState.Running">
<summary>
Currently running one or more steps
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobState.Complete">
<summary>
All steps have completed
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.IReadOnlyJobOptions">
<summary>
Read-only interface for job options
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobOptions.Executor">
<summary>
Name of the executor to use
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobOptions.UseWine">
<summary>
Whether to execute using Wine emulation on Linux
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobOptions.RunInSeparateProcess">
<summary>
Executes the job lease in a separate process
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobOptions.WorkspaceMaterializer">
<summary>
What workspace materializer to use in WorkspaceExecutor. Will override any value from workspace config.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobOptions.Container">
<summary>
Options for executing a job inside a container
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobOptions.ExpireAfterDays">
<summary>
Number of days after which to expire jobs
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobOptions.Driver">
<summary>
Name of the driver to use
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobOptions">
<summary>
Options for executing a job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobOptions.Executor">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobOptions.UseWine">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobOptions.RunInSeparateProcess">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobOptions.WorkspaceMaterializer">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobOptions.Container">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobOptions.ExpireAfterDays">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.JobOptions.Driver">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobOptions.MergeDefaults(EpicGames.Horde.Jobs.JobOptions)">
<summary>
Merge defaults from another options object
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.IReadOnlyJobContainerOptions">
<summary>
Options for a job container
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobContainerOptions.Enabled">
<summary>
Whether to execute job inside a container
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobContainerOptions.ImageUrl">
<summary>
Image URL to container, such as "quay.io/podman/hello"
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobContainerOptions.ContainerEngineExecutable">
<summary>
Container engine executable (docker or with full path like /usr/bin/podman)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.IReadOnlyJobContainerOptions.ExtraArguments">
<summary>
Additional arguments to pass to container engine
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobContainerOptions">
<summary>
Options for executing a job inside a container
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobContainerOptions.Enabled">
<summary>
Whether to execute job inside a container
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobContainerOptions.ImageUrl">
<summary>
Image URL to container, such as "quay.io/podman/hello"
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobContainerOptions.ContainerEngineExecutable">
<summary>
Container engine executable (docker or with full path like /usr/bin/podman)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobContainerOptions.ExtraArguments">
<summary>
Additional arguments to pass to container engine
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobContainerOptions.MergeDefaults(EpicGames.Horde.Jobs.JobContainerOptions)">
<summary>
Merge defaults from another options object
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.ChangeQueryMessage">
<summary>
Query selecting the base changelist to use
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.ChangeQueryMessage.Name">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.ChangeQueryMessage.Condition">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.ChangeQueryMessage.TemplateId">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.ChangeQueryMessage.Target">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.ChangeQueryMessage.Outcomes">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Templates.IChangeQuery.Outcomes"/>
</member>
<member name="P:EpicGames.Horde.Jobs.ChangeQueryMessage.CommitTag">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.ChangeQueryMessage.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.ChangeQueryMessage.#ctor(EpicGames.Horde.Jobs.Templates.IChangeQuery)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.CreateJobRequest">
<summary>
Parameters required to create a job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.StreamId">
<summary>
The stream that this job belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.TemplateId">
<summary>
The template for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.Name">
<summary>
Name of the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.Change">
<summary>
The changelist number to build. Can be null for latest.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.CommitId">
<summary>
The changelist number to build. Can be null for latest.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.ChangeQuery">
<summary>
Parameters to use when selecting the change to execute at.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.ChangeQueries">
<summary>
List of change queries to evaluate
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.PreflightChange">
<summary>
The preflight changelist number
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.PreflightCommitId">
<summary>
The preflight commit
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.JobOptions">
<summary>
Job options
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.Priority">
<summary>
Priority for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.AutoSubmit">
<summary>
Whether to automatically submit the preflighted change on completion
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.UpdateIssues">
<summary>
Whether to update issues based on the outcome of this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.Parameters">
<summary>
Values for the template parameters
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.Arguments">
<summary>
Arguments for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.AdditionalArguments">
<summary>
Additional arguments for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobRequest.Targets">
<summary>
Targets for the job. Will override any parameters specified in the Arguments or Parameters section if specified.
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.CreateJobRequest.#ctor(EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Jobs.Templates.TemplateId)">
<summary>
Private constructor for serialization
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.CreateJobResponse">
<summary>
Response from creating a new job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.CreateJobResponse.Id">
<summary>
Unique id for the new job
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.CreateJobResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="id">Unique id for the new job</param>
</member>
<member name="T:EpicGames.Horde.Jobs.UpdateJobRequest">
<summary>
Updates an existing job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateJobRequest.Name">
<summary>
New name for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateJobRequest.Priority">
<summary>
New priority for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateJobRequest.AutoSubmit">
<summary>
Set whether the job should be automatically submitted or not
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateJobRequest.Aborted">
<summary>
Mark this job as aborted
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateJobRequest.CancellationReason">
<summary>
Optional reason the job was canceled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateJobRequest.Arguments">
<summary>
New list of arguments for the job. Only -Target= arguments can be modified after the job has started.
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobReportPlacement">
<summary>
Placement for a job report
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobReportPlacement.Panel">
<summary>
On a panel of its own
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobReportPlacement.Summary">
<summary>
In the summary panel
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetJobReportResponse">
<summary>
Information about a report associated with a job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobReportResponse.Name">
<summary>
Name of the report
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobReportResponse.Placement">
<summary>
Report placement
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobReportResponse.ArtifactId">
<summary>
The artifact id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobReportResponse.Content">
<summary>
Content for the report
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.GetJobReportResponse.#ctor(System.String,EpicGames.Horde.Jobs.JobReportPlacement)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetJobResponse">
<summary>
Information about a job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Id">
<summary>
Unique Id for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Name">
<summary>
Name of the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.StreamId">
<summary>
Unique id of the stream containing this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Change">
<summary>
The changelist number to build
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.CommitId">
<summary>
The commit to build
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.CodeChange">
<summary>
The code changelist
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.CodeCommitId">
<summary>
The code commit to build
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.PreflightChange">
<summary>
The preflight changelist number
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.PreflightCommitId">
<summary>
The preflight commit
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.PreflightDescription">
<summary>
Description of the preflight
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.TemplateId">
<summary>
The template type
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.TemplateHash">
<summary>
Hash of the actual template data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.GraphHash">
<summary>
Hash of the graph for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.StartedByUserId">
<summary>
The user that started this job [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.StartedByUser">
<summary>
The user that started this job [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.StartedByUserInfo">
<summary>
The user that started this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.StartedByBisectTaskId">
<summary>
Bisection task id that started this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.AbortedByUser">
<summary>
The user that aborted this job [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.AbortedByUserInfo">
<summary>
The user that aborted this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.CancellationReason">
<summary>
Optional reason the job was canceled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Priority">
<summary>
Priority of the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.AutoSubmit">
<summary>
Whether the change will automatically be submitted or not
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.AutoSubmitChange">
<summary>
The submitted changelist number
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.AutoSubmitMessage">
<summary>
Message produced by trying to auto-submit the change
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.CreateTime">
<summary>
Time that the job was created
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.State">
<summary>
The global job state
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Batches">
<summary>
Array of jobstep batches
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Labels">
<summary>
List of labels
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.DefaultLabel">
<summary>
The default label, containing the state of all steps that are otherwise not matched.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Reports">
<summary>
List of reports
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Artifacts">
<summary>
Artifacts produced by this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Parameters">
<summary>
Parameters for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Arguments">
<summary>
Command line arguments for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.AdditionalArguments">
<summary>
Additional command line arguments for the job for when using the parameters block
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.Targets">
<summary>
Custom list of targets for the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.UpdateTime">
<summary>
The last update time for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.UseArtifactsV2">
<summary>
Whether to use the V2 artifacts endpoint
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.UpdateIssues">
<summary>
Whether issues are being updated by this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobResponse.CanUpdate">
<summary>
Whether the current user is allowed to update this job
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.GetJobResponse.#ctor(EpicGames.Horde.Jobs.JobId,EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Jobs.Templates.TemplateId,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.GetJobResponse.#ctor">
<summary>
Default constructor needed for JsonSerializer
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetJobArtifactResponse">
<summary>
Response describing an artifact produced during a job
</summary>
<param name="Id">Identifier for this artifact, if it has been produced</param>
<param name="Name">Name of the artifact</param>
<param name="Type">Artifact type</param>
<param name="Description">Description to display for the artifact on the dashboard</param>
<param name="Keys">Keys for the artifact</param>
<param name="Metadata">Metadata for the artifact</param>
<param name="StepId">Step producing the artifact</param>
</member>
<member name="M:EpicGames.Horde.Jobs.GetJobArtifactResponse.#ctor(System.Nullable{EpicGames.Horde.Artifacts.ArtifactId},EpicGames.Horde.Artifacts.ArtifactName,EpicGames.Horde.Artifacts.ArtifactType,System.String,System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},EpicGames.Horde.Jobs.JobStepId)">
<summary>
Response describing an artifact produced during a job
</summary>
<param name="Id">Identifier for this artifact, if it has been produced</param>
<param name="Name">Name of the artifact</param>
<param name="Type">Artifact type</param>
<param name="Description">Description to display for the artifact on the dashboard</param>
<param name="Keys">Keys for the artifact</param>
<param name="Metadata">Metadata for the artifact</param>
<param name="StepId">Step producing the artifact</param>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobArtifactResponse.Id">
<summary>Identifier for this artifact, if it has been produced</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobArtifactResponse.Name">
<summary>Name of the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobArtifactResponse.Type">
<summary>Artifact type</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobArtifactResponse.Description">
<summary>Description to display for the artifact on the dashboard</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobArtifactResponse.Keys">
<summary>Keys for the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobArtifactResponse.Metadata">
<summary>Metadata for the artifact</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobArtifactResponse.StepId">
<summary>Step producing the artifact</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetJobTimingResponse">
<summary>
The timing info for a job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobTimingResponse.JobResponse">
<summary>
The job response
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobTimingResponse.Steps">
<summary>
Timing info for each step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobTimingResponse.Labels">
<summary>
Timing information for each label
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.GetJobTimingResponse.#ctor(EpicGames.Horde.Jobs.GetJobResponse,System.Collections.Generic.Dictionary{System.String,EpicGames.Horde.Jobs.GetStepTimingInfoResponse},System.Collections.Generic.List{EpicGames.Horde.Jobs.GetLabelTimingInfoResponse})">
<summary>
Constructor
</summary>
<param name="jobResponse">The job response</param>
<param name="steps">Timing info for each steps</param>
<param name="labels">Timing info for each label</param>
</member>
<member name="T:EpicGames.Horde.Jobs.FindJobTimingsResponse">
<summary>
The timing info for
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.FindJobTimingsResponse.Timings">
<summary>
Timing info for each job
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.FindJobTimingsResponse.#ctor(System.Collections.Generic.Dictionary{System.String,EpicGames.Horde.Jobs.GetJobTimingResponse})">
<summary>
Constructor
</summary>
<param name="timings">Timing info for each job</param>
</member>
<member name="T:EpicGames.Horde.Jobs.UpdateStepRequest">
<summary>
Request used to update a jobstep
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepRequest.State">
<summary>
The new jobstep state
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepRequest.Outcome">
<summary>
Outcome from the jobstep
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepRequest.AbortRequested">
<summary>
If the step has been requested to abort
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepRequest.CancellationReason">
<summary>
Optional reason the job step was canceled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepRequest.LogId">
<summary>
Specifies the log file id for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepRequest.Retry">
<summary>
Whether the step should be re-run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepRequest.Priority">
<summary>
New priority for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepRequest.Properties">
<summary>
Properties to set. Any entries with a null value will be removed.
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.UpdateStepResponse">
<summary>
Response object when updating a jobstep
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepResponse.BatchId">
<summary>
If a new step is created (due to specifying the retry flag), specifies the batch id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateStepResponse.StepId">
<summary>
If a step is retried, includes the new step id
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepOutputRef">
<summary>
Reference to the output of a step within the job
</summary>
<param name="StepId">Step producing the output</param>
<param name="OutputIdx">Index of the output from this step</param>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepOutputRef.#ctor(EpicGames.Horde.Jobs.JobStepId,System.Int32)">
<summary>
Reference to the output of a step within the job
</summary>
<param name="StepId">Step producing the output</param>
<param name="OutputIdx">Index of the output from this step</param>
</member>
<member name="P:EpicGames.Horde.Jobs.JobStepOutputRef.StepId">
<summary>Step producing the output</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobStepOutputRef.OutputIdx">
<summary>Index of the output from this step</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetJobStepResponse">
<summary>
Returns information about a jobstep
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Id">
<summary>
The unique id of the step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.NodeIdx">
<summary>
Index of the node which this jobstep is to execute
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Name">
<summary>
The name of this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.AllowRetry">
<summary>
Whether this node can be run multiple times
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.RunEarly">
<summary>
This node can start running early, before dependencies of other nodes in the same group are complete
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Warnings">
<summary>
Whether to include warnings in the output (defaults to true)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Inputs">
<summary>
References to inputs for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.OutputNames">
<summary>
List of output names
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.InputDependencies">
<summary>
Indices of nodes which must have succeeded for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.OrderDependencies">
<summary>
Indices of nodes which must have completed for this node to run
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Credentials">
<summary>
List of credentials required for this node. Each entry maps an environment variable name to a credential in the form "CredentialName.PropertyName".
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Annotations">
<summary>
Annotations for this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.State">
<summary>
Current state of the job step. This is updated automatically when runs complete.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Outcome">
<summary>
Current outcome of the jobstep
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Error">
<summary>
Error describing additional context for why a step failed to complete
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.AbortRequested">
<summary>
If the step has been requested to abort
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.AbortByUser">
<summary>
Name of the user that requested the abort of this step [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.AbortedByUserInfo">
<summary>
The user that requested this step be run again
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.CancellationReason">
<summary>
Optional reason the job step was canceled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.RetryByUser">
<summary>
Name of the user that requested this step be run again [DEPRECATED]
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.RetriedByUserInfo">
<summary>
The user that requested this step be run again
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.LogId">
<summary>
The log id for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.ReadyTime">
<summary>
Time at which the batch was ready (UTC).
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.StartTime">
<summary>
Time at which the batch started (UTC).
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.FinishTime">
<summary>
Time at which the batch finished (UTC)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Reports">
<summary>
List of reports
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepResponse.Properties">
<summary>
User-defined properties for this jobstep.
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepBatchState">
<summary>
The state of a particular run
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchState.Waiting">
<summary>
Waiting for dependencies of at least one jobstep to complete
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchState.Ready">
<summary>
Ready to execute
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchState.Starting">
<summary>
Preparing to execute work
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchState.Running">
<summary>
Executing work
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchState.Stopping">
<summary>
Preparing to stop
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchState.Complete">
<summary>
All steps have finished executing
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepBatchError">
<summary>
Error code for a batch not being executed
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.None">
<summary>
No error
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.UnknownStream">
<summary>
The stream for this job is unknown
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.UnknownAgentType">
<summary>
The given agent type for this batch was not valid for this stream
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.UnknownPool">
<summary>
The pool id referenced by the agent type was not found
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.NoAgentsInPool">
<summary>
There are no agents in the given pool currently online
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.NoAgentsOnline">
<summary>
There are no agents in this pool that are onlinbe
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.UnknownWorkspace">
<summary>
Unknown workspace referenced by the agent type
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.Cancelled">
<summary>
Cancelled
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.LostConnection">
<summary>
Lost connection with the agent machine
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.Incomplete">
<summary>
Lease terminated prematurely but can be retried.
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.ExecutionError">
<summary>
An error ocurred while executing the lease. Cannot be retried.
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.UnknownShelf">
<summary>
The change that the job is running against is invalid
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.NoLongerNeeded">
<summary>
Step was no longer needed during a job update
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.SyncingFailed">
<summary>
Syncing the branch failed
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepBatchError.AgentSetupFailed">
<summary>
Legacy alias for <see cref="F:EpicGames.Horde.Jobs.JobStepBatchError.SyncingFailed"/>
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.UpdateBatchRequest">
<summary>
Request to update a jobstep batch
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateBatchRequest.LogId">
<summary>
The new log file id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.UpdateBatchRequest.State">
<summary>
The state of this batch
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetJobBatchResponse">
<summary>
Information about a jobstep batch
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.Id">
<summary>
Unique id for this batch
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.GroupIdx">
<summary>
Index of the group being executed
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.AgentType">
<summary>
The agent type
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.AgentId">
<summary>
The agent assigned to execute this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.AgentRate">
<summary>
Rate for using this agent (per hour)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.SessionId">
<summary>
The agent session holding this lease
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.LeaseId">
<summary>
The lease that's executing this group
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.LogId">
<summary>
The unique log file id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.State">
<summary>
The state of this batch
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.Error">
<summary>
Error code for this batch
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.WeightedPriority">
<summary>
The priority of this batch
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.StartTime">
<summary>
Time at which the group started (UTC).
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.FinishTime">
<summary>
Time at which the group finished (UTC)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.ReadyTime">
<summary>
Time at which the group became ready (UTC).
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobBatchResponse.Steps">
<summary>
Steps within this run
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.LabelState">
<summary>
State of an aggregate
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.LabelState.Unspecified">
<summary>
Aggregate is not currently being built (no required nodes are present)
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.LabelState.Running">
<summary>
Steps are still running
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.LabelState.Complete">
<summary>
All steps are complete
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.LabelOutcome">
<summary>
Outcome of an aggregate
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.LabelOutcome.Unspecified">
<summary>
Aggregate is not currently being built
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.LabelOutcome.Failure">
<summary>
A step dependency failed
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.LabelOutcome.Warnings">
<summary>
A dependency finished with warnings
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.LabelOutcome.Success">
<summary>
Successful
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetLabelStateResponse">
<summary>
State of a label within a job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelStateResponse.DashboardName">
<summary>
Name to show for this label on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelStateResponse.DashboardCategory">
<summary>
Category to show this label in on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelStateResponse.UgsName">
<summary>
Name to show for this label in UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelStateResponse.UgsProject">
<summary>
Project to display this label for in UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelStateResponse.State">
<summary>
State of the label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelStateResponse.Outcome">
<summary>
Outcome of the label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelStateResponse.Steps">
<summary>
Steps to include in the status of this label
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetDefaultLabelStateResponse">
<summary>
Information about the default label (ie. with inlined list of nodes)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetDefaultLabelStateResponse.Nodes">
<summary>
List of nodes covered by default label
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetTimingInfoResponse">
<summary>
Information about the timing info for a particular target
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetTimingInfoResponse.TotalWaitTime">
<summary>
Wait time on the critical path
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetTimingInfoResponse.TotalInitTime">
<summary>
Sync time on the critical path
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetTimingInfoResponse.TotalTimeToComplete">
<summary>
Duration to this point
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetTimingInfoResponse.AverageTotalWaitTime">
<summary>
Average wait time by the time the job reaches this point
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetTimingInfoResponse.AverageTotalInitTime">
<summary>
Average sync time to this point
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetTimingInfoResponse.AverageTotalTimeToComplete">
<summary>
Average duration to this point
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetStepTimingInfoResponse">
<summary>
Information about the timing info for a particular target
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetStepTimingInfoResponse.Name">
<summary>
Name of this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetStepTimingInfoResponse.AverageStepWaitTime">
<summary>
Average wait time for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetStepTimingInfoResponse.AverageStepInitTime">
<summary>
Average init time for this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetStepTimingInfoResponse.AverageStepDuration">
<summary>
Average duration for this step
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetLabelTimingInfoResponse">
<summary>
Information about the timing info for a label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelTimingInfoResponse.Name">
<summary>
Name of the label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelTimingInfoResponse.Category">
<summary>
Category for the label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelTimingInfoResponse.DashboardName">
<summary>
Name of the label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelTimingInfoResponse.DashboardCategory">
<summary>
Category for the label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelTimingInfoResponse.UgsName">
<summary>
Name of the label
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetLabelTimingInfoResponse.UgsProject">
<summary>
Category for the label
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.GetJobStepRefResponse">
<summary>
Describes the history of a step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.JobId">
<summary>
The job id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.BatchId">
<summary>
The batch containing the step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.StepId">
<summary>
The step identifier
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.Change">
<summary>
The change number being built
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.CommitId">
<summary>
The commit being built
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.LogId">
<summary>
The step log id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.PoolId">
<summary>
The pool id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.AgentId">
<summary>
The agent id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.Outcome">
<summary>
Outcome of the step, once complete.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.IssueIds">
<summary>
The issues which affected this step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.StartTime">
<summary>
Time at which the step started.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.GetJobStepRefResponse.FinishTime">
<summary>
Time at which the step finished.
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepBatchId">
<summary>
Identifier for a job step batch
</summary>
<param name="SubResourceId">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchId.#ctor(EpicGames.Horde.Jobs.SubResourceId)">
<summary>
Identifier for a job step batch
</summary>
<param name="SubResourceId">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Jobs.JobStepBatchId.SubResourceId">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchId.#ctor(System.UInt16)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchId.GenerateNewId">
<summary>
Creates a new <see cref="T:EpicGames.Horde.Jobs.JobId"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.Jobs.SubResourceId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepBatchIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.Jobs.SubResourceId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchIdConverter.FromSubResourceId(EpicGames.Horde.Jobs.SubResourceId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepBatchIdConverter.ToSubResourceId(EpicGames.Horde.Jobs.JobStepBatchId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepError">
<summary>
Systemic error codes for a job step failing
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepError.None">
<summary>
No systemic error
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepError.TimedOut">
<summary>
Step did not complete in the required amount of time
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepError.Paused">
<summary>
Step is in is paused state so was skipped
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepError.Incomplete">
<summary>
Step did not complete because the batch exited
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepId">
<summary>
Identifier for a jobstep
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepId.#ctor(EpicGames.Horde.Jobs.SubResourceId)">
<summary>
Identifier for a jobstep
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Jobs.JobStepId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepId.#ctor(System.UInt16)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepId.GenerateNewId">
<summary>
Creates a new <see cref="T:EpicGames.Horde.Jobs.JobId"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.Jobs.SubResourceId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepId.TryParse(System.String,EpicGames.Horde.Jobs.JobStepId@)">
<inheritdoc cref="M:EpicGames.Horde.Jobs.SubResourceId.TryParse(System.String,EpicGames.Horde.Jobs.SubResourceId@)"/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.Jobs.SubResourceId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepIdConverter.FromSubResourceId(EpicGames.Horde.Jobs.SubResourceId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepIdConverter.ToSubResourceId(EpicGames.Horde.Jobs.JobStepId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepOutcome">
<summary>
Outcome for a jobstep
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepOutcome.Unspecified">
<summary>
Outcome is not known
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepOutcome.Failure">
<summary>
Step failed
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepOutcome.Warnings">
<summary>
Step completed with warnings
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepOutcome.Success">
<summary>
Step succeeded
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepRefId">
<summary>
Unique id struct for JobStepRef objects. Includes a job id, batch id, and step id to uniquely identify the step.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobStepRefId.JobId">
<summary>
The job id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobStepRefId.BatchId">
<summary>
The batch id within the job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.JobStepRefId.StepId">
<summary>
The step id
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.#ctor(EpicGames.Horde.Jobs.JobId,EpicGames.Horde.Jobs.JobStepBatchId,EpicGames.Horde.Jobs.JobStepId)">
<summary>
Constructor
</summary>
<param name="jobId">The job id</param>
<param name="batchId">The batch id within the job</param>
<param name="stepId">The step id</param>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.Parse(System.String)">
<summary>
Parse a job step id from a string
</summary>
<param name="text">Text to parse</param>
<returns>The parsed id</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.ToString">
<summary>
Formats this id as a string
</summary>
<returns>Formatted id</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.Equals(EpicGames.Horde.Jobs.JobStepRefId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.CompareTo(EpicGames.Horde.Jobs.JobStepRefId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.op_Equality(EpicGames.Horde.Jobs.JobStepRefId,EpicGames.Horde.Jobs.JobStepRefId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.op_Inequality(EpicGames.Horde.Jobs.JobStepRefId,EpicGames.Horde.Jobs.JobStepRefId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.op_LessThan(EpicGames.Horde.Jobs.JobStepRefId,EpicGames.Horde.Jobs.JobStepRefId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.op_GreaterThan(EpicGames.Horde.Jobs.JobStepRefId,EpicGames.Horde.Jobs.JobStepRefId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.op_LessThanOrEqual(EpicGames.Horde.Jobs.JobStepRefId,EpicGames.Horde.Jobs.JobStepRefId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.JobStepRefId.op_GreaterThanOrEqual(EpicGames.Horde.Jobs.JobStepRefId,EpicGames.Horde.Jobs.JobStepRefId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.JobStepState">
<summary>
State of a job step
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepState.Unspecified">
<summary>
Unspecified
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepState.Waiting">
<summary>
Waiting for dependencies of this step to complete (or paused)
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepState.Ready">
<summary>
Ready to run, but has not been scheduled yet
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepState.Skipped">
<summary>
Dependencies of this step failed, so it cannot be executed
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepState.Running">
<summary>
There is an active instance of this step running
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepState.Completed">
<summary>
This step has been run
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.JobStepState.Aborted">
<summary>
This step started to execute, but was aborted
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Priority">
<summary>
Priority of a job or step
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Priority.Unspecified">
<summary>
Not specified
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Priority.Lowest">
<summary>
Lowest priority
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Priority.BelowNormal">
<summary>
Below normal priority
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Priority.Normal">
<summary>
Normal priority
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Priority.AboveNormal">
<summary>
Above normal priority
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Priority.High">
<summary>
High priority
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Priority.Highest">
<summary>
Highest priority
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.ISchedule">
<summary>
Schedule for a template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.Enabled">
<summary>
Whether the schedule should be enabled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.MaxActive">
<summary>
Maximum number of builds that can be active at once
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.MaxChanges">
<summary>
Maximum number of changes the schedule can fall behind head revision. If greater than zero, builds will be triggered for every submitted changelist until the backlog is this size.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.RequireSubmittedChange">
<summary>
Whether the build requires a change to be submitted
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.Gate">
<summary>
Gate allowing the schedule to trigger
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.Commits">
<summary>
Commit tags for this schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.Claims">
<summary>
Roles to impersonate for this schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.LastTriggerCommitId">
<summary>
Last changelist number that this was triggered for
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.LastTriggerTimeUtc">
<summary>
Gets the last trigger time, in UTC
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.ActiveJobs">
<summary>
List of jobs that are currently active
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.Patterns">
<summary>
Patterns for starting this scheduled job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.Files">
<summary>
Files that should cause the job to trigger
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedule.TemplateParameters">
<summary>
Parameters for the template
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.IScheduleClaim">
<summary>
Claim granted to a schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.IScheduleClaim.Type">
<summary>
The claim type
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.IScheduleClaim.Value">
<summary>
The claim value
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.IScheduleGate">
<summary>
Required gate for starting a schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.IScheduleGate.TemplateId">
<summary>
The template containing the dependency
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.IScheduleGate.Target">
<summary>
Target to wait for
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.ISchedulePattern">
<summary>
Pattern for executing a schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedulePattern.DaysOfWeek">
<summary>
Days of the week to run this schedule on. If null, the schedule will run every day.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedulePattern.MinTime">
<summary>
Time during the day for the first schedule to trigger. Measured in minutes from midnight.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedulePattern.MaxTime">
<summary>
Time during the day for the last schedule to trigger. Measured in minutes from midnight.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.ISchedulePattern.Interval">
<summary>
Interval between each schedule triggering
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.ScheduleExtensions">
<summary>
Extension methods for schedules
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleExtensions.GetNextTriggerTimeUtc(EpicGames.Horde.Jobs.Schedules.ISchedule,System.TimeZoneInfo)">
<summary>
Gets the next trigger time for a schedule
</summary>
<param name="schedule"></param>
<param name="timeZone"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleExtensions.GetNextTriggerTimeUtc(EpicGames.Horde.Jobs.Schedules.ISchedule,System.DateTime,System.TimeZoneInfo)">
<summary>
Get the next time that the schedule will trigger
</summary>
<param name="schedule">Schedule to query</param>
<param name="lastTimeUtc">Last time at which the schedule triggered</param>
<param name="timeZone">Timezone to evaluate the trigger</param>
<returns>Next time at which the schedule will trigger</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleExtensions.GetNextTriggerTimeUtc(EpicGames.Horde.Jobs.Schedules.ISchedulePattern,System.DateTime,System.TimeZoneInfo)">
<summary>
Calculates the trigger index based on the given time in minutes
</summary>
<param name="pattern">Pattern to query</param>
<param name="lastTimeUtc">Time for the last trigger</param>
<param name="timeZone">The timezone for running the schedule</param>
<returns>Index of the trigger</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.ScheduleInterval">
<summary>
Time of day value for a schedule
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleInterval.#ctor(System.Int32)">
<summary>
Time of day value for a schedule
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleInterval.Parse(System.String)">
<summary>
Parse a string as a time of day
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleIntervalJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleIntervalJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Jobs.Schedules.ScheduleInterval,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse">
<summary>
Response describing a schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.Enabled">
<summary>
Whether the schedule is currently enabled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.MaxActive">
<summary>
Maximum number of scheduled jobs at once
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.MaxChanges">
<summary>
Maximum number of changes the schedule can fall behind head revision. If greater than zero, builds will be triggered for every submitted changelist until the backlog is this size.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.RequireSubmittedChange">
<summary>
Whether the build requires a change to be submitted
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.Gate">
<summary>
Gate for this schedule to trigger
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.Commits">
<summary>
Which commits to run this job for
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.TemplateParameters">
<summary>
Parameters for the template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.Patterns">
<summary>
New patterns for the schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.LastTriggerChange">
<summary>
Last changelist number that this was triggered for
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.LastTriggerCommitId">
<summary>
Last changelist number that this was triggered for
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.LastTriggerTime">
<summary>
Last time that the schedule was triggered
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.NextTriggerTimesUTC">
<summary>
Next trigger times for schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.ActiveJobs">
<summary>
List of active jobs
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.GetScheduleResponse.#ctor(EpicGames.Horde.Jobs.Schedules.ISchedule,System.TimeZoneInfo)">
<summary>
Constructor
</summary>
<param name="schedule">Schedule to construct from</param>
<param name="schedulerTimeZone">The scheduler time zone</param>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.GetScheduleGateResponse">
<summary>
Gate allowing a schedule to trigger.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleGateResponse.TemplateId">
<summary>
The template containing the dependency
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleGateResponse.Target">
<summary>
Target to wait for
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.GetScheduleGateResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.GetScheduleGateResponse.#ctor(EpicGames.Horde.Jobs.Schedules.IScheduleGate)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.GetSchedulePatternResponse">
<summary>
Parameters to create a new schedule
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetSchedulePatternResponse.DaysOfWeek">
<summary>
Days of the week to run this schedule on. If null, the schedule will run every day.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetSchedulePatternResponse.MinTime">
<summary>
Time during the day for the first schedule to trigger. Measured in minutes from midnight.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetSchedulePatternResponse.MaxTime">
<summary>
Time during the day for the last schedule to trigger. Measured in minutes from midnight.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetSchedulePatternResponse.Interval">
<summary>
Interval between each schedule triggering
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.GetSchedulePatternResponse.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.GetSchedulePatternResponse.#ctor(EpicGames.Horde.Jobs.Schedules.ISchedulePattern)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.GetScheduleForecastResponse">
<summary>
Response describing when a schedule is expected to trigger
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Schedules.GetScheduleForecastResponse.Times">
<summary>
Next trigger times
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.GetScheduleForecastResponse.#ctor(System.Collections.Generic.List{System.DateTime})">
<summary>
Constructor
</summary>
<param name="times">List of trigger times</param>
</member>
<member name="T:EpicGames.Horde.Jobs.Schedules.ScheduleTimeOfDay">
<summary>
Time of day value for a schedule
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleTimeOfDay.#ctor(System.Int32)">
<summary>
Time of day value for a schedule
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleTimeOfDay.Parse(System.String)">
<summary>
Parse a string as a time of day
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleTimeOfDayJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Schedules.ScheduleTimeOfDayJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Jobs.Schedules.ScheduleTimeOfDay,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.SubResourceId">
<summary>
Identifier for subresources. Assigning unique ids to subresources prevents against race conditions using indices when subresources are added and removed.
Subresource identifiers are stored as 16-bit integers formatted as a 4-digit hex code, in order to keep URLs short. Calling Next() will generate a new
identifier with more entropy than just incrementing the value but an identical period before repeating, in order to make URL fragments more distinctive.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.SubResourceId.Value">
<summary>
The unique identifier value
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.#ctor(System.UInt16)">
<summary>
Constructor
</summary>
<param name="value">New identifier for this subresource</param>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.GenerateNewId">
<summary>
Creates a new random subresource id. We use random numbers for this to increase distinctiveness.
</summary>
<returns>New subresource id</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.Next">
<summary>
Updates the current value, and returns a copy of the previous value.
</summary>
<returns>New subresource identifier</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.Parse(System.String)">
<summary>
Parse a subresource id from a string
</summary>
<param name="text">Text to parse</param>
<returns>New subresource id</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.TryParse(System.String,EpicGames.Horde.Jobs.SubResourceId@)">
<summary>
Attempt to parse a subresource id from a string
</summary>
<param name="text">Text to parse</param>
<param name="subResourceId">Receives the parsed subresource id on success</param>
<returns>True if the id was parsed correctly</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.ToString">
<summary>
Converts this identifier to a string
</summary>
<returns>String representation of this id</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.Equals(EpicGames.Horde.Jobs.SubResourceId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.op_Equality(EpicGames.Horde.Jobs.SubResourceId,EpicGames.Horde.Jobs.SubResourceId)">
<summary>
Equality operator for identifiers
</summary>
<param name="left">First identifier to compare</param>
<param name="right">Second identifier to compare</param>
<returns>True if the identifiers are equal</returns>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceId.op_Inequality(EpicGames.Horde.Jobs.SubResourceId,EpicGames.Horde.Jobs.SubResourceId)">
<summary>
Inequality operator for identifiers
</summary>
<param name="left">First identifier to compare</param>
<param name="right">Second identifier to compare</param>
<returns>True if the identifiers are equal</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.SubResourceIdExtensions">
<summary>
Extension methods for manipulating subresource ids
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdExtensions.ToSubResourceId(System.String)">
<summary>
Parse a string as a subresource identifier
</summary>
<param name="text">Text to parse</param>
<returns>The new subresource identifier</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.SubResourceIdTypeConverter">
<summary>
Type converter from strings to SubResourceId objects
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.SubResourceIdConverter`1">
<summary>
Base class for converting to and from types containing a <see cref="T:EpicGames.Horde.Jobs.SubResourceId"/>. Useful pattern for reducing boilerplate with strongly typed records.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdConverter`1.ToSubResourceId(`0)">
<summary>
Converts a type to a <see cref="T:EpicGames.Horde.Jobs.SubResourceId"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdConverter`1.FromSubResourceId(EpicGames.Horde.Jobs.SubResourceId)">
<summary>
Constructs a type from a <see cref="T:EpicGames.Horde.Jobs.SubResourceId"/>
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.SubResourceIdConverterAttribute">
<summary>
Attribute declaring a <see cref="T:EpicGames.Horde.Jobs.SubResourceIdConverter`1"/> for a particular type
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.SubResourceIdConverterAttribute.ConverterType">
<summary>
The converter type
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdConverterAttribute.#ctor(System.Type)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.SubResourceIdTypeConverter`2">
<summary>
Class which serializes types with a <see cref="T:EpicGames.Horde.Jobs.SubResourceIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdTypeConverter`2.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdTypeConverter`2.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdTypeConverter`2.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdTypeConverter`2.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.SubResourceIdJsonConverter`2">
<summary>
Class which serializes types with a <see cref="T:EpicGames.Horde.Jobs.SubResourceIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdJsonConverter`2.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdJsonConverter`2.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.SubResourceIdJsonConverterFactory">
<summary>
Creates constructors for types with a <see cref="T:EpicGames.Horde.Jobs.SubResourceIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdJsonConverterFactory.CanConvert(System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.SubResourceIdJsonConverterFactory.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ITemplate">
<summary>
Document describing a job template. These objects are considered immutable once created and uniquely referenced by hash, in order to de-duplicate across all job runs.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.Hash">
<summary>
Hash of this template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.Name">
<summary>
Name of the template.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.Description">
<summary>
Description for the template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.Priority">
<summary>
Priority of this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.AllowPreflights">
<summary>
Whether to allow preflights for this job type
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.UpdateIssues">
<summary>
Whether to always issues for jobs using this template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.PromoteIssuesByDefault">
<summary>
Whether to promote issues by default for jobs using this template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.InitialAgentType">
<summary>
Agent type to use for parsing the job state
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.SubmitNewChange">
<summary>
Path to a file within the stream to submit to generate a new changelist for jobs
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.SubmitDescription">
<summary>
Description for new changelists
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.Arguments">
<summary>
Optional predefined user-defined properties for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplate.Parameters">
<summary>
Parameters for this template
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ITemplateParameter">
<summary>
Base class for parameters used to configure templates via the new build dialog
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ITemplateParameter.GetArguments(System.Collections.Generic.IReadOnlyDictionary{EpicGames.Horde.Jobs.Templates.ParameterId,System.String},System.Boolean,System.Collections.Generic.List{System.String})">
<summary>
Gets the arguments for a job given a set of parameters
</summary>
<param name="parameters">Map of parameter id to value</param>
<param name="scheduledBuild">Whether this is a scheduled build</param>
<param name="arguments">Receives command line arguments for the job</param>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ITemplateParameter.GetDefaultParameters(System.Collections.Generic.Dictionary{EpicGames.Horde.Jobs.Templates.ParameterId,System.String},System.Boolean)">
<summary>
Gets the default arguments for this parameter and its children
</summary>
<param name="parameters">List of default parameters</param>
<param name="scheduledBuild">Whether the arguments are being queried for a scheduled build</param>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter">
<summary>
Allows the user to toggle an option on or off
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.Id">
<summary>
Identifier for this parameter
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.Label">
<summary>
Label to display next to this parameter.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.ArgumentIfEnabled">
<summary>
Argument to add if this parameter is enabled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.ArgumentsIfEnabled">
<summary>
Arguments to add if this parameter is enabled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.ArgumentIfDisabled">
<summary>
Argument to add if this parameter is disabled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.ArgumentsIfDisabled">
<summary>
Arguments to add if this parameter is disabled
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.Default">
<summary>
Whether this option should be enabled by default
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.ScheduleOverride">
<summary>
Whether this option should be enabled by default
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter.ToolTip">
<summary>
Tool tip text to display
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter">
<summary>
Free-form text entry parameter
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.Id">
<summary>
Identifier for this parameter
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.Label">
<summary>
Label to display next to this parameter. Should default to the parameter name.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.Argument">
<summary>
Argument to add (will have the value of this field appended)
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.Default">
<summary>
Default value for this argument
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.ScheduleOverride">
<summary>
Override for this argument in scheduled builds.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.Hint">
<summary>
Hint text to display when the field is empty
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.Validation">
<summary>
Regex used to validate values entered into this text field.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.ValidationError">
<summary>
Message displayed to explain valid values if validation fails.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateTextParameter.ToolTip">
<summary>
Tool tip text to display
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.TemplateListParameterStyle">
<summary>
Style of list parameter
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Templates.TemplateListParameterStyle.List">
<summary>
Regular drop-down list. One item is always selected.
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Templates.TemplateListParameterStyle.MultiList">
<summary>
Drop-down list with checkboxes
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.Templates.TemplateListParameterStyle.TagPicker">
<summary>
Tag picker from list of options
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ITemplateListParameter">
<summary>
Allows the user to select a value from a constrained list of choices
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameter.Label">
<summary>
Label to display next to this parameter.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameter.Style">
<summary>
Style of picker parameter to use
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameter.Items">
<summary>
List of values to display in the list
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameter.ToolTip">
<summary>
Tool tip text to display
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem">
<summary>
Possible option for a list parameter
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.Id">
<summary>
Identifier for this parameter
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.Group">
<summary>
Group to display this entry in
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.Text">
<summary>
Text to display for this option.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.ArgumentIfEnabled">
<summary>
Argument to add if this parameter is enabled.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.ArgumentsIfEnabled">
<summary>
Arguments to add if this parameter is enabled.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.ArgumentIfDisabled">
<summary>
Argument to add if this parameter is disabled.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.ArgumentsIfDisabled">
<summary>
Arguments to add if this parameter is disabled.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.Default">
<summary>
Whether this item is selected by default
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem.ScheduleOverride">
<summary>
Whether this item is selected by default
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.TemplateExtensions">
<summary>
Extension methods for templates
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.TemplateExtensions.GetArgumentsForParameters(EpicGames.Horde.Jobs.Templates.ITemplate,System.Collections.Generic.IReadOnlyDictionary{EpicGames.Horde.Jobs.Templates.ParameterId,System.String},System.Collections.Generic.List{System.String})">
<summary>
Gets the full argument list for a template
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.TemplateExtensions.GetDefaultParameters(EpicGames.Horde.Jobs.Templates.ITemplate,System.Collections.Generic.Dictionary{EpicGames.Horde.Jobs.Templates.ParameterId,System.String},System.Boolean)">
<summary>
Gets the arguments for default options in this template. Does not include the standard template arguments.
</summary>
<returns>List of default arguments</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.IChangeQuery">
<summary>
Query selecting the base changelist to use
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.IChangeQuery.Name">
<summary>
Name of this query, for display on the dashboard.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.IChangeQuery.Condition">
<summary>
Condition to evaluate before deciding to use this query. May query tags in a preflight.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.IChangeQuery.TemplateId">
<summary>
The template id to query
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.IChangeQuery.Target">
<summary>
The target to query
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.IChangeQuery.Outcomes">
<summary>
Whether to match a job that produced warnings
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.IChangeQuery.CommitTag">
<summary>
Finds the last commit with this tag
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ITemplateCollection">
<summary>
Interface for a collection of template documents
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ITemplateCollection.GetAsync(EpicGames.Core.ContentHash)">
<summary>
Gets a template by ID
</summary>
<param name="templateId">Unique id of the template</param>
<returns>The template document</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ParameterId">
<summary>
Identifier for a template parameter
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ParameterId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a template parameter
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.ParameterId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ParameterId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ParameterId.Sanitize(System.String)">
<inheritdoc cref="M:EpicGames.Horde.StringId.Sanitize(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ParameterId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.ParameterIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ParameterIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.ParameterIdConverter.ToStringId(EpicGames.Horde.Jobs.Templates.ParameterId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.TemplateId">
<summary>
Identifier for a job template
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.TemplateId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a job template
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.TemplateId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.TemplateId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.TemplateId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.TemplateId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.TemplateIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.TemplateIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.TemplateIdConverter.ToStringId(EpicGames.Horde.Jobs.Templates.TemplateId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase">
<summary>
Response describing a template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.Name">
<summary>
Name of the template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.Description">
<summary>
Description for the template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.Priority">
<summary>
Default priority for this job
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.AllowPreflights">
<summary>
Whether to allow preflights of this template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.UpdateIssues">
<summary>
Whether to always update issues on jobs using this template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.InitialAgentType">
<summary>
The initial agent type to parse the BuildGraph script on
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.SubmitNewChange">
<summary>
Path to a file within the stream to submit to generate a new changelist for jobs
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.Arguments">
<summary>
Parameters for the job.
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.Parameters">
<summary>
List of parameters for this template
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.#ctor">
<summary>
Parameterless constructor for serialization
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateResponseBase.#ctor(EpicGames.Horde.Jobs.Templates.ITemplate)">
<summary>
Constructor
</summary>
<param name="template">The template to construct from</param>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.GetTemplateResponse">
<summary>
Response describing a template
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateResponse.Id">
<summary>
Unique id of the template
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateResponse.#ctor">
<summary>
Parameterless constructor for serialization
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateResponse.#ctor(EpicGames.Horde.Jobs.Templates.ITemplate)">
<summary>
Constructor
</summary>
<param name="template">The template to construct from</param>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.GetTemplateParameterResponse">
<summary>
Base class for template parameters
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse">
<summary>
Allows the user to toggle an option on or off
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.Id">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.Label">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.ArgumentIfEnabled">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.ArgumentsIfEnabled">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.ArgumentIfDisabled">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.ArgumentsIfDisabled">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.Default">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.ScheduleOverride">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.ToolTip">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateBoolParameterResponse.#ctor(EpicGames.Horde.Jobs.Templates.ITemplateBoolParameter)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse">
<summary>
Free-form text entry parameter
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.Id">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.Label">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.Argument">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.Default">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.ScheduleOverride">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.Hint">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.Validation">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.ValidationError">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.ToolTip">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateTextParameterResponse.#ctor(EpicGames.Horde.Jobs.Templates.ITemplateTextParameter)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterResponse">
<summary>
Allows the user to select a value from a constrained list of choices
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterResponse.Label">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterResponse.Style">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterResponse.Items">
<inheritdoc cref="P:EpicGames.Horde.Jobs.Templates.ITemplateListParameter.Items"/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterResponse.ToolTip">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterResponse.#ctor(EpicGames.Horde.Jobs.Templates.ITemplateListParameter)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse">
<summary>
Possible option for a list parameter
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.Id">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.Group">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.Text">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.ArgumentIfEnabled">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.ArgumentsIfEnabled">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.ArgumentIfDisabled">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.ArgumentsIfDisabled">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.Default">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.ScheduleOverride">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Templates.GetTemplateListParameterItemResponse.#ctor(EpicGames.Horde.Jobs.Templates.ITemplateListParameterItem)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.TestOutcome">
<summary>
Test outcome
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.TestData.TestOutcome.Success">
<summary>
The test was successful
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.TestData.TestOutcome.Failure">
<summary>
The test failed
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.TestData.TestOutcome.Skipped">
<summary>
The test was skipped
</summary>
</member>
<member name="F:EpicGames.Horde.Jobs.TestData.TestOutcome.Unspecified">
<summary>
The test had an unspecified result
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.CreateTestDataRequest">
<summary>
Response object describing test data to store
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.CreateTestDataRequest.JobId">
<summary>
The job which produced the data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.CreateTestDataRequest.StepId">
<summary>
The step that ran
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.CreateTestDataRequest.Key">
<summary>
Key used to identify the particular data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.CreateTestDataRequest.Data">
<summary>
The data stored for this test
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.CreateTestDataResponse">
<summary>
Response object describing the created document
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.CreateTestDataResponse.Id">
<summary>
The id for the new document
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.TestData.CreateTestDataResponse.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="id">Id of the new document</param>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetTestDataResponse">
<summary>
Response object describing test results
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.Id">
<summary>
Unique id of the test data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.StreamId">
<summary>
Stream that generated the test data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.TemplateRefId">
<summary>
The template reference id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.JobId">
<summary>
The job which produced the data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.StepId">
<summary>
The step that ran
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.Change">
<summary>
The changelist number that contained the data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.CommitId">
<summary>
The changelist number that contained the data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.Key">
<summary>
Key used to identify the particular data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataResponse.Data">
<summary>
The data stored for this test
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetTestMetaResponse">
<summary>
A test emvironment running in a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestMetaResponse.Id">
<summary>
Meta unique id for environment
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestMetaResponse.Platforms">
<summary>
The platforms in the environment
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestMetaResponse.Configurations">
<summary>
The build configurations being tested
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestMetaResponse.BuildTargets">
<summary>
The build targets being tested
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestMetaResponse.ProjectName">
<summary>
The test project name
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestMetaResponse.RHI">
<summary>
The rendering hardware interface being used with the test
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestMetaResponse.Variation">
<summary>
The varation of the test meta data, for example address sanitizing
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetTestResponse">
<summary>
A test that runs in a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestResponse.Id">
<summary>
The id of the test
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestResponse.Name">
<summary>
The name of the test
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestResponse.DisplayName">
<summary>
The name of the test
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestResponse.SuiteName">
<summary>
The name of the test suite
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestResponse.Metadata">
<summary>
The meta data the test runs on
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetTestsRequest">
<summary>
Get tests request
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestsRequest.TestIds">
<summary>
Test ids to get
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetTestSuiteResponse">
<summary>
A test suite that runs in a stream, contain subtests
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestSuiteResponse.Id">
<summary>
The id of the suite
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestSuiteResponse.Name">
<summary>
The name of the test suite
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestSuiteResponse.Metadata">
<summary>
The meta data the test suite runs on
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetTestStreamResponse">
<summary>
Response object describing test results
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestStreamResponse.StreamId">
<summary>
The stream id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestStreamResponse.Tests">
<summary>
Individual tests which run in the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestStreamResponse.TestSuites">
<summary>
Test suites that run in the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestStreamResponse.TestMetadata">
<summary>
Test suites that run in the stream
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetSuiteTestDataResponse">
<summary>
Suite test data
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetSuiteTestDataResponse.TestId">
<summary>
The test id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetSuiteTestDataResponse.Outcome">
<summary>
The ourcome of the suite test
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetSuiteTestDataResponse.Duration">
<summary>
How long the suite test ran
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetSuiteTestDataResponse.UID">
<summary>
Test UID for looking up in test details
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetSuiteTestDataResponse.WarningCount">
<summary>
The number of test warnings generated
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetSuiteTestDataResponse.ErrorCount">
<summary>
The number of test errors generated
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetTestDataDetailsResponse">
<summary>
Test details
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataDetailsResponse.Id">
<summary>
The corresponding test ref
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataDetailsResponse.TestDataIds">
<summary>
The test documents for this ref
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataDetailsResponse.SuiteTests">
<summary>
Suite test data
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse">
<summary>
Data ref
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.Id">
<summary>
The test ref id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.StreamId">
<summary>
The associated stream
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.JobId">
<summary>
The associated job id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.StepId">
<summary>
The associated step id
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.Duration">
<summary>
How long the test ran
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.BuildChangeList">
<summary>
The build changelist upon which the test ran, may not correspond to the job changelist
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.BuildCommitId">
<summary>
The build changelist upon which the test ran, may not correspond to the job changelist
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.MetaId">
<summary>
The platform the test ran on
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.TestId">
<summary>
The test id in stream
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.Outcome">
<summary>
The outcome of the test
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.SuiteId">
<summary>
The if of the stream test suite
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.SuiteSkipCount">
<summary>
Suite tests skipped
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.SuiteWarningCount">
<summary>
Suite test warnings
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.SuiteErrorCount">
<summary>
Suite test errors
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.TestData.GetTestDataRefResponse.SuiteSuccessCount">
<summary>
Suite test successes
</summary>
</member>
<member name="T:EpicGames.Horde.Jobs.Timing.IJobTiming">
<summary>
Timing information for a particular job
</summary>
</member>
<member name="M:EpicGames.Horde.Jobs.Timing.IJobTiming.TryGetStepTiming(System.String,Microsoft.Extensions.Logging.ILogger,EpicGames.Horde.Jobs.Timing.IJobStepTiming@)">
<summary>
Gets timing information for a particular step
</summary>
<param name="name">Name of the node being executed</param>
<param name="logger">Logger for diagnostic messages</param>
<param name="timing">Receives the timing information for the given step</param>
<returns>True if the timing was found</returns>
</member>
<member name="T:EpicGames.Horde.Jobs.Timing.IJobStepTiming">
<summary>
Information about the timing for an individual step
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Timing.IJobStepTiming.AverageWaitTime">
<summary>
Wait time before executing the group containing this node
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Timing.IJobStepTiming.AverageInitTime">
<summary>
Time taken for the group containing this node to initialize
</summary>
</member>
<member name="P:EpicGames.Horde.Jobs.Timing.IJobStepTiming.AverageDuration">
<summary>
Time spent executing this node
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.IServerLogger">
<summary>
Interface for a log device
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.IServerLogger.StopAsync">
<summary>
Flushes the logger with the server and stops the background work
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.ServerLoggerExtensions">
<summary>
Extension methods for <see cref="T:EpicGames.Horde.Logs.IServerLogger"/>
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLoggerExtensions.ServerLoggerWithLeaseLogger.BeginScope``1(``0)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLoggerExtensions.ServerLoggerWithLeaseLogger.DisposeAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLoggerExtensions.ServerLoggerWithLeaseLogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLoggerExtensions.ServerLoggerWithLeaseLogger.Log``1(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,``0,System.Exception,System.Func{``0,System.Exception,System.String})">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLoggerExtensions.ServerLoggerWithLeaseLogger.StopAsync">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLoggerExtensions.WithLocalLogger(EpicGames.Horde.Logs.IServerLogger,Microsoft.Extensions.Logging.ILogger)">
<summary>
Creates a logger which uploads data to the server
</summary>
<param name="serverLogger">Logger for the server</param>
<param name="localLogger">Local log output device</param>
<returns>New logger instance</returns>
</member>
<member name="T:EpicGames.Horde.Logs.LogChunkNode">
<summary>
Read-only buffer for log text, with indexed line offsets.
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.BlobType">
<summary>
Type of this blob when serialized
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.LogChunkNode.LinesCollection">
<summary>
Provides access to the lines for this chunk through a list interface
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.LinesCollection.Item(System.Int32)">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.LinesCollection.Count">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.LinesCollection.GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.LinesCollection.System#Collections#IEnumerable#GetEnumerator">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.Empty">
<summary>
Empty log chunk
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.Data">
<summary>
The raw text data. Contains a complete set of lines followed by newline characters.
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.Span">
<summary>
Span for the raw text data.
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.Lines">
<summary>
Accessor for the lines in this chunk
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.LineOffsets">
<summary>
Offsets of lines within the data object, including a sentinel for the end of the data (LineCount + 1 entries).
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.Length">
<summary>
Length of this chunk
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkNode.LineCount">
<summary>
Number of lines in the block (excluding the sentinel).
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.#ctor(System.ReadOnlyMemory{System.Byte})">
<summary>
Constructor
</summary>
<param name="data">Data to construct from</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.#ctor(System.ReadOnlyMemory{System.Byte},System.Collections.Generic.IReadOnlyList{System.Int32})">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.GetLine(System.Int32)">
<summary>
Accessor for an individual line
</summary>
<param name="idx">Index of the line to retrieve</param>
<returns>Line at the given index</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.GetLineWithNewline(System.Int32)">
<summary>
Accessor for an individual line, including the trailing newline character
</summary>
<param name="idx">Index of the line to retrieve</param>
<returns>Line at the given index</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.GetLineIndexForOffset(System.Int32)">
<summary>
Find the line index for a particular offset
</summary>
<param name="offset">Offset within the text</param>
<returns>The line index</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.FindLineOffsets(System.ReadOnlySpan{System.Byte})">
<summary>
Creates a new list of line offsets for the given text
</summary>
<param name="data"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkNode.UpdateLineOffsets(System.ReadOnlySpan{System.Byte},System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
Updates the length of this chunk, computing all the newline offsets
</summary>
<param name="data">Text to search for line endings</param>
<param name="start">Start offset within the text buffer</param>
<param name="lineOffsets">Offsets of each line within the text</param>
</member>
<member name="T:EpicGames.Horde.Logs.LogChunkConverter">
<summary>
Converter from log chunks to blobs
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkConverter.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkConverter.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Logs.LogChunkNode,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Logs.LogChunkRef">
<summary>
Reference to a chunk of text, with information about its placement in the larger log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkRef.LineIndex">
<summary>
First line within the file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkRef.LineCount">
<summary>
Number of lines in this block
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkRef.Offset">
<summary>
Offset within the entire log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkRef.Length">
<summary>
Length of this chunk
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkRef.Target">
<summary>
Handle to the target chunk
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkRef.#ctor(System.Int32,System.Int32,System.Int64,System.Int32,EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Logs.LogChunkNode})">
<summary>
Constructor
</summary>
<param name="lineIndex">Index of the first line within this block</param>
<param name="lineCount">Number of lines in the chunk</param>
<param name="offset">Offset within the log file</param>
<param name="length">Length of the chunk</param>
<param name="target">Referenced log text</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkRef.#ctor(EpicGames.Horde.Storage.IBlobReader)">
<summary>
Deserializing constructor
</summary>
<param name="reader"></param>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkRef.Serialize(EpicGames.Horde.Storage.IBlobWriter)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Logs.LogChunkBuilder">
<summary>
Builder for <see cref="T:EpicGames.Horde.Logs.LogChunkNode"/> objects.
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogChunkBuilder._data">
<summary>
Accessor for Data
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogChunkBuilder._length">
<summary>
Current used length of the buffer
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogChunkBuilder._lineOffsets">
<summary>
Offsets of the start of each line within the data
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkBuilder.Length">
<summary>
Current length of the buffer
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkBuilder.LineCount">
<summary>
Number of lines in this buffer
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkBuilder.Capacity">
<summary>
Capacity of the buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.#ctor(System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.#ctor(System.Byte[],System.Int32)">
<summary>
Constructor
</summary>
<param name="data">Data to initialize this chunk with. Ownership of this array is transferred to the chunk, and its length determines the chunk size.</param>
<param name="length">Number of valid bytes within the initial data array</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.#ctor(System.Byte[],System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
Constructor
</summary>
<param name="data"></param>
<param name="length"></param>
<param name="lineOffsets"></param>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.Clear">
<summary>
Clear the contents of the buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.GetLine(System.Int32)">
<summary>
Gets a line at the given index
</summary>
<param name="index">Index of the line</param>
<returns>Text for the line</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.Append(System.ReadOnlySpan{System.Byte})">
<summary>
Create a new chunk data object with the given data appended. The internal buffers are reused, with the assumption that
there is no contention over writing to the same location in the chunk.
</summary>
<param name="textData">The data to append</param>
<returns>New chunk data object</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.AppendJsonAsPlainText(System.ReadOnlySpan{System.Byte},Microsoft.Extensions.Logging.ILogger)">
<summary>
Appends JSON text from another buffer as plain text in this one
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.AppendJsonAsPlainText(EpicGames.Horde.Logs.LogChunkNode,System.Int32,System.Int32,Microsoft.Extensions.Logging.ILogger)">
<summary>
Appends JSON text from another buffer as plain text in this one
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.CreateOutputSpace(System.Int32)">
<summary>
Ensure there is a certain amount of space in the output buffer
</summary>
<param name="appendLength">Required space</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.IsEmptyOrWhitespace(System.ReadOnlySpan{System.Byte})">
<summary>
Determines if the given line is empty
</summary>
<param name="input">The input data</param>
<returns>True if the given text is empty</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.ConvertToPlainText(System.ReadOnlySpan{System.Byte},System.Byte[],System.Int32)">
<summary>
Converts a JSON log line to plain text
</summary>
<param name="input">The JSON data</param>
<param name="output">Output buffer for the converted line</param>
<param name="outputOffset">Offset within the buffer to write the converted data</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.UnescapeUtf8(System.ReadOnlySpan{System.Byte},System.Span{System.Byte})">
<summary>
Unescape a json utf8 string
</summary>
<param name="source">Source span of bytes</param>
<param name="target">Target span of bytes</param>
<returns>Length of the converted data</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.Shrink">
<summary>
Shrinks the data allocated by this chunk to the minimum required
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.ToArray">
<summary>
Create an array of lines from the text
</summary>
<returns>Array of lines</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkBuilder.ToLogChunk">
<summary>
Create a <see cref="T:EpicGames.Horde.Logs.LogChunkNode"/> object from the current state
</summary>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Logs.LogChunkSequenceBuilder">
<summary>
Builds a sequence of log chunks
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkSequenceBuilder.ChunkSize">
<summary>
Desired size for each chunk
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkSequenceBuilder.Chunks">
<summary>
The complete chunks. Note that this does not include data which has not yet been flushed.
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkSequenceBuilder.Length">
<summary>
Total length of the sequence
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogChunkSequenceBuilder.LineCount">
<summary>
Number of lines in this builder
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkSequenceBuilder.#ctor(System.Int32)">
<summary>
Constructor
</summary>
<param name="chunkSize">Desired size for each chunk. Each chunk will be limited to this size.</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkSequenceBuilder.Clear">
<summary>
Clear the current contents of the buffer
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkSequenceBuilder.Remove(System.Int32)">
<summary>
Remove a number of chunks from the start of the builder
</summary>
<param name="count">Number of chunks to remove</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkSequenceBuilder.Append(System.ReadOnlySpan{System.Byte})">
<inheritdoc cref="M:EpicGames.Horde.Logs.LogChunkBuilder.Append(System.ReadOnlySpan{System.Byte})"/>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkSequenceBuilder.AppendJsonAsPlainText(System.ReadOnlySpan{System.Byte},Microsoft.Extensions.Logging.ILogger)">
<inheritdoc cref="M:EpicGames.Horde.Logs.LogChunkBuilder.AppendJsonAsPlainText(System.ReadOnlySpan{System.Byte},Microsoft.Extensions.Logging.ILogger)"/>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkSequenceBuilder.Flush">
<summary>
Flushes the current contents of the builder
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkSequenceBuilder.EnumerateLines(System.Int32)">
<summary>
Enumerate lines starting at the given index
</summary>
<param name="startIdx">Index to start from</param>
<returns>Sequence of lines</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkSequenceBuilder.CreateOutputSpace(System.Int32)">
<summary>
Flushes the current chunk if necessary to provide the requested space
</summary>
<param name="requiredSpace">Space required in <see cref="F:EpicGames.Horde.Logs.LogChunkSequenceBuilder._nextChunkBuilder"/></param>
</member>
<member name="T:EpicGames.Horde.Logs.LogChunkExtensions">
<summary>
Extension methods for ILogText
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkExtensions.GetChunkForOffset(System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Logs.LogChunkRef},System.Int64)">
<summary>
Gets the chunk index containing the given offset.
</summary>
<param name="chunks">The chunks to search</param>
<param name="offset">The offset to search for</param>
<returns>The chunk index containing the given offset</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkExtensions.GetChunkForLine(System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Logs.LogChunkRef},System.Int32)">
<summary>
Gets the starting chunk index for the given line
</summary>
<param name="chunks">The chunks to search</param>
<param name="lineIndex">Index of the line to query</param>
<returns>Index of the chunk to fetch</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogChunkExtensions.ConvertJsonToPlainText(EpicGames.Horde.Logs.LogChunkNode,Microsoft.Extensions.Logging.ILogger)">
<summary>
Converts a log text instance to plain text
</summary>
<param name="logText">The text to convert</param>
<param name="logger">Logger for conversion warnings</param>
<returns>The plain text instance</returns>
</member>
<member name="T:EpicGames.Horde.Logs.LogEventSeverity">
<summary>
Severity of a log event
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogEventSeverity.Unspecified">
<summary>
Severity is not specified
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogEventSeverity.Information">
<summary>
Information severity
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogEventSeverity.Warning">
<summary>
Warning severity
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogEventSeverity.Error">
<summary>
Error severity
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.GetLogEventResponse">
<summary>
Information about an uploaded event
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogEventResponse.LogId">
<summary>
Unique id of the log containing this event
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogEventResponse.Severity">
<summary>
Severity of this event
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogEventResponse.LineIndex">
<summary>
Index of the first line for this event
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogEventResponse.LineCount">
<summary>
Number of lines in the event
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogEventResponse.IssueId">
<summary>
The issue id associated with this event
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogEventResponse.Lines">
<summary>
The structured message data for this event
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.LogId">
<summary>
Identifier for a log
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a log
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Logs.LogId.Id">
<summary>Id to construct from</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogId.Empty">
<summary>
Constant value for empty user id
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Logs.LogId.TryParse(System.String,EpicGames.Horde.Logs.LogId@)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.TryParse(System.String,EpicGames.Horde.BinaryId@)"/>
</member>
<member name="M:EpicGames.Horde.Logs.LogId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Logs.LogIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.BinaryId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.LogIdConverter.ToBinaryId(EpicGames.Horde.Logs.LogId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Logs.LogIndexNode">
<summary>
Index for a log file.
The index consists of a sequence of compressed, plain text blocks (see <see cref="T:EpicGames.Horde.Logs.LogChunkRef"/>, and a
set of (ngram, block index) pairs encoded as 64-bit integers (see <see cref="T:EpicGames.Horde.Logs.NgramSet"/>).
Each ngram is a 1-4 byte sequence of utf8 bytes, padded out to 32-bits (see <see cref="T:EpicGames.Horde.Logs.Ngram"/>).
When performing a text search, the search term is split into a set of ngrams, and the set queried for blocks containing
them all. Matching blocks are decompressed and scanned for matches using a simplified Knuth-Morris-Pratt search.
Since alignment of ngrams may not match alignment of ngrams in the search term, we offset the search term by
1-4 bytes and include the union of blocks matching at any offset.
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogIndexNode.NgramSet">
<summary>
Index for tokens into the block list
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogIndexNode.NumChunkBits">
<summary>
Number of bits in the index devoted to the block index
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogIndexNode._plainTextChunkRefs">
<summary>
List of text blocks
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogIndexNode.Empty">
<summary>
Empty index data
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogIndexNode.PlainTextChunkRefs">
<summary>
Public accessor for the plain text chunks
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogIndexNode.LineCount">
<summary>
Number of lines covered by the index
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogIndexNode.Length">
<summary>
Length of the text data
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNode.#ctor(EpicGames.Horde.Logs.NgramSet,System.Int32,EpicGames.Horde.Logs.LogChunkRef[])">
<summary>
Constructor
</summary>
<param name="ngramSet">Index into the text chunks</param>
<param name="numChunkBits">Number of bits devoted to the chunks index</param>
<param name="plainTextChunkRefs">Plain text chunks for this log file</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNode.AppendAsync(EpicGames.Horde.Storage.IBlobWriter,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Logs.LogChunkNode},System.Threading.CancellationToken)">
<summary>
Appends a set of text blocks to this index
</summary>
<param name="writer">Writer for output nodes</param>
<param name="appendPlainTextChunks">Text blocks to append</param>
<param name="cancellationToken"></param>
<returns>New log index with the given blocks appended</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNode.SearchAsync(System.Int32,EpicGames.Horde.Logs.SearchTerm,EpicGames.Horde.Logs.SearchStats,System.Threading.CancellationToken)">
<summary>
Search for the given text in the index
</summary>
<param name="firstLineIndex">First line index to search from</param>
<param name="text">Text to search for</param>
<param name="stats">Receives stats for the search</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>List of line numbers for the text</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNode.EnumeratePossibleChunks(System.ReadOnlyMemory{System.Byte},System.Int32)">
<summary>
Search for the given text in the index
</summary>
<param name="text">Text to search for</param>
<param name="lineIndex">The first </param>
<returns>List of line numbers for the text</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNode.GetAlignedTokenPredicate(System.ReadOnlySpan{System.Byte},System.Boolean,System.Collections.Generic.HashSet{System.UInt64},System.Collections.Generic.List{System.Predicate{System.Int32}})">
<summary>
Gets predicates for matching a token that starts
</summary>
<param name="text">The token text</param>
<param name="allowPartialMatch">Whether to allow a partial match of the token</param>
<param name="tokens">Set of aligned tokens that are required</param>
<param name="predicates">List of predicates for the search</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNode.GetUnalignedTokenPredicate(System.ReadOnlySpan{System.Byte},System.Boolean,System.Collections.Generic.List{System.Predicate{System.Int32}})">
<summary>
Generates a predicate for matching a token which may or may not start on a regular token boundary
</summary>
<param name="text">The token text</param>
<param name="allowPartialMatch">Whether to allow a partial match of the token</param>
<param name="predicates">List of predicates for the search</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNode.ChunkContainsToken(System.Int32,System.UInt64,System.UInt64)">
<summary>
Tests whether a chunk contains a particular token
</summary>
<param name="chunkIdx">Index of the chunk to search</param>
<param name="token">The token to test</param>
<param name="tokenMask">Mask of which bits in the token are valid</param>
<returns>True if the given block contains a token</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNode.ChunksContainingNgram(System.ReadOnlySpan{System.Byte},System.Int32,System.Boolean)">
<summary>
Tests whether a chunk contains a particular ngram
</summary>
<param name="text">The token to test</param>
<param name="offset">Offset of the window into the token to test</param>
<param name="allowPartialMatch">Whether to allow a partial match of the token</param>
<returns>True if the given block contains a token</returns>
</member>
<member name="P:EpicGames.Horde.Logs.LogIndexNodeConverter.BlobType">
<summary>
Type for serializing index nodes
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogIndexNodeConverter.CurrentVersion">
<summary>
Version number for serialized data
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNodeConverter.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.LogIndexNodeConverter.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Logs.LogIndexNode,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Logs.LogType">
<summary>
The type of data stored in this log file
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogType.Text">
<summary>
Plain text data
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogType.Json">
<summary>
Structured json objects, output as one object per line (without trailing commas)
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.CreateLogRequest">
<summary>
Creates a new log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.CreateLogRequest.Type">
<summary>
Type of the log file
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.CreateLogResponse">
<summary>
Response from creating a log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.CreateLogResponse.Id">
<summary>
Identifier for the created log file
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.GetLogResponse">
<summary>
Response describing a log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogResponse.Id">
<summary>
Unique id of the log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogResponse.JobId">
<summary>
Unique id of the job for this log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogResponse.LeaseId">
<summary>
The lease allowed to write to this log
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogResponse.SessionId">
<summary>
The session allowed to write to this log
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogResponse.Type">
<summary>
Type of events stored in this log
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.GetLogResponse.LineCount">
<summary>
Number of lines in the file
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.SearchLogResponse">
<summary>
Response describing a log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchLogResponse.Lines">
<summary>
List of line numbers containing the search text
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchLogResponse.Stats">
<summary>
Stats for the search
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.LogLinesResponse">
<summary>
Response when querying for specific lines from a log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLinesResponse.Index">
<summary>
start index of the lines returned
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLinesResponse.Count">
<summary>
Number of lines returned
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLinesResponse.MaxLineIndex">
<summary>
Last index of the returned messages
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLinesResponse.Format">
<summary>
Type of response, Json or Text
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLinesResponse.Lines">
<summary>
List of lines received
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.LogLineResponse">
<summary>
Response object for individual lines
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLineResponse.Time">
<summary>
Timestamp for log line
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLineResponse.Level">
<summary>
Level of Message (Information, Warning, Error)
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLineResponse.Message">
<summary>
Message itself
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLineResponse.Format">
<summary>
Format string for the message
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogLineResponse.Properties">
<summary>
User-defined properties for this jobstep.
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.LogFormat">
<summary>
Format for the log file
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogFormat.Text">
<summary>
Text data
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogFormat.Json">
<summary>
Json data
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.LogNode">
<summary>
Represents an entire log
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogNode.Format">
<summary>
Format for this log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogNode.LineCount">
<summary>
Total number of lines
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogNode.Length">
<summary>
Length of the log file
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogNode.TextChunkRefs">
<summary>
Text blocks for this chunk
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogNode.IndexRef">
<summary>
Index for this log
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogNode.Complete">
<summary>
Whether this log is complete
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogNode.#ctor(EpicGames.Horde.Logs.LogFormat,System.Int32,System.Int64,System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Logs.LogChunkRef},EpicGames.Horde.Storage.IHashedBlobRef{EpicGames.Horde.Logs.LogIndexNode},System.Boolean)">
<summary>
Deserializing constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.LogNodeConverter">
<summary>
Serializer for <see cref="T:EpicGames.Horde.Logs.LogNode"/> types
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogNodeConverter.BlobType">
<summary>
Type of blob when serialized to storage
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogNodeConverter.Read(EpicGames.Horde.Storage.IBlobReader,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.LogNodeConverter.Write(EpicGames.Horde.Storage.IBlobWriter,EpicGames.Horde.Logs.LogNode,EpicGames.Horde.Storage.BlobSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Logs.LogBuilder">
<summary>
Assists building log files through trees of <see cref="T:EpicGames.Horde.Logs.LogNode"/>, <see cref="T:EpicGames.Horde.Logs.LogIndexNode"/> and <see cref="T:EpicGames.Horde.Logs.LogChunkNode"/> nodes. This
class is designed to be thread safe, and presents a consistent view to readers and writers.
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogBuilder.DefaultTextBlockLength">
<summary>
Default maximum size for a log text block
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.LogBuilder.DefaultIndexBlockLength">
<summary>
Default maximum size for an index text block
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.LogBuilder.LineCount">
<summary>
Number of lines written to the log
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogBuilder.#ctor(EpicGames.Horde.Logs.LogFormat,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="format">Format for data in the log file</param>
<param name="logger"></param>
</member>
<member name="M:EpicGames.Horde.Logs.LogBuilder.#ctor(EpicGames.Horde.Logs.LogFormat,System.Int32,System.Int32,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="format">Format of data in the log file</param>
<param name="maxTextBlockLength">maximum size for a regular text block</param>
<param name="maxIndexBlockLength">Maximum size for an index text block</param>
<param name="logger">Logger for conversion errors</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogBuilder.ReadTailData(System.Int32,System.Int32)">
<summary>
Read data from the unflushed log tail
</summary>
<param name="firstLineIdx">The first line to read, from the end of the flushed data</param>
<param name="maxLength"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogBuilder.WriteData(System.ReadOnlyMemory{System.Byte})">
<summary>
Append JSON data to the end of the log
</summary>
<param name="data">Log data to append</param>
</member>
<member name="M:EpicGames.Horde.Logs.LogBuilder.FlushAsync(EpicGames.Horde.Storage.IBlobWriter,System.Boolean,System.Threading.CancellationToken)">
<summary>
Flushes the written data to the log
</summary>
<param name="writer">Writer for the output nodes</param>
<param name="complete">Whether the log is complete</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Logs.LogNodeExtensions">
<summary>
Extension methods
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.LogNodeExtensions.ReadLogAsync(EpicGames.Horde.Logs.LogNode,System.Threading.CancellationToken)">
<summary>
Reads lines from a line
</summary>
<param name="logNode">Log to read from</param>
<param name="cancellationToken">Cancellation token</param>
<returns>Sequence of line buffers</returns>
</member>
<member name="M:EpicGames.Horde.Logs.LogNodeExtensions.ReadLogLinesAsync(EpicGames.Horde.Logs.LogNode,System.Int32,System.Threading.CancellationToken)">
<summary>
Reads lines from a line
</summary>
<param name="logNode">Log to read from</param>
<param name="index">Zero-based index of the first line to read from</param>
<param name="cancellationToken">Cancellation token</param>
<returns>Sequence of line buffers</returns>
</member>
<member name="T:EpicGames.Horde.Logs.Ngram">
<summary>
Functionality for decomposing log text into ngrams.
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.Ngram.MaxBytes">
<summary>
Maximum number of bytes in each ngram
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.Ngram.MaxBits">
<summary>
Number of bits in each ngram
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.Ngram.s_tokenTypes">
<summary>
Lookup from input byte to token type
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.Ngram.s_tokenChars">
<summary>
Lookup from input byte to token char
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.Ngram.Read(System.ReadOnlySpan{System.Byte})">
<summary>
Gets a single token
</summary>
<param name="text">The text to parse</param>
<returns>The token value</returns>
</member>
<member name="M:EpicGames.Horde.Logs.Ngram.Decompose(System.ReadOnlySpan{System.Byte},System.Action{System.UInt64})">
<summary>
Decompose a span of text into tokens
</summary>
<param name="text">Text to scan</param>
<param name="addNgram">Receives a set of tokens</param>
</member>
<member name="M:EpicGames.Horde.Logs.Ngram.Decompose(System.ReadOnlySpan{System.Byte})">
<summary>
Decompose a string to a set of ngrams
</summary>
<param name="text">Text to scan</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Logs.Ngram.GetText(System.ReadOnlySpan{System.Byte},System.Int32)">
<summary>
Gets the length of the first token in the given span
</summary>
<param name="text">The text to search</param>
<param name="pos">Start position for the search</param>
<returns>Length of the first token</returns>
</member>
<member name="M:EpicGames.Horde.Logs.Ngram.GetWindowedValue(System.ReadOnlySpan{System.Byte},System.Int32)">
<summary>
Gets the length of the first token in the given span
</summary>
<param name="text">The text to search</param>
<param name="offset">Offset of the window to read from the token</param>
<returns>Length of the first token</returns>
</member>
<member name="M:EpicGames.Horde.Logs.Ngram.GetWindowedMask(System.ReadOnlySpan{System.Byte},System.Int32,System.Boolean)">
<summary>
Gets the length of the first token in the given span
</summary>
<param name="text">The text to search</param>
<param name="offset">Offset of the window to read from the token</param>
<param name="allowPartialMatch">Whether to allow only matching the start of the string</param>
<returns>Length of the first token</returns>
</member>
<member name="M:EpicGames.Horde.Logs.Ngram.GetTokenTypes">
<summary>
Build the lookup table for token types
</summary>
<returns>Array whose elements map from an input byte to token type</returns>
</member>
<member name="M:EpicGames.Horde.Logs.Ngram.GetTokenChars">
<summary>
Build the lookup table for token types
</summary>
<returns>Array whose elements map from an input byte to token type</returns>
</member>
<member name="T:EpicGames.Horde.Logs.NgramSet">
<summary>
A sparse, space-efficient set of 64-bit values. Implemented as a trie backed by a flat lookup table.
Each 64-bit value in the set is decomposed into 4-bit fragments, and each node in the trie contains a 2^4=16-bit mask
indicating which child nodes exist. The array of nodes is stored in a flat buffer, with a predictable order, with
the children of a particular node stored contiguously, breadth first.
Doing so allows constructing a lookup table for the first child of each parent node with a single pass of
the buffer, allowing efficient traversal of the tree to satisfy queries.
In practice, only the top 32-bits of values stored in the trie are used for encoding ngram information. The
bottom 32 bits are used to index a block number, allowing querying the existence of ngrams and their
rough location.
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.NgramSet.StackItem">
<summary>
Stack item for traversing the tree
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.NgramSet.StackItem._index">
<summary>
The current node index
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.NgramSet.StackItem._value">
<summary>
Value in the current node (0-15)
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.NgramSet.VisitorDelegate">
<summary>
Delegate for filtering values during a tree traversal
</summary>
<param name="value">The current value</param>
<param name="mask">Mask for which bits in the value are valid</param>
<returns>True if values matching the given mask should be enumerated</returns>
</member>
<member name="F:EpicGames.Horde.Logs.NgramSet.Height">
<summary>
Height of the tree
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.NgramSet.NodeData">
<summary>
Array of bitmasks for each node in the tree
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.NgramSet._nodeData">
<summary>
Array of bitmasks for each node in the tree
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.NgramSet._firstChildIndex">
<summary>
Array of child offsets for each node. Excludes the last layer of the tree.
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.NgramSet.Empty">
<summary>
Empty index definition
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.#ctor(System.UInt16[])">
<summary>
Constructor
</summary>
<param name="nodeData">Node data</param>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.Contains(System.UInt64)">
<summary>
Tests whether the given value is in the trie
</summary>
<param name="value">The value to check for</param>
<returns>True if the value is in the trie</returns>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.System#Collections#IEnumerable#GetEnumerator">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.EnumerateValues(EpicGames.Horde.Logs.NgramSet.VisitorDelegate)">
<summary>
Enumerate all values matching a given filter
</summary>
<param name="predicate">Predicate for which values to include</param>
<returns>Values satisfying the given predicate</returns>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.EnumerateRange(System.UInt64,System.UInt64)">
<summary>
Enumerates all values in the trie between the given ranges
</summary>
<param name="minValue">Minimum value to enumerate</param>
<param name="maxValue">Maximum value to enumerate</param>
<returns>Sequence of values</returns>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.CreateChildLookup(System.UInt16[])">
<summary>
Creates a lookup for child node offsets from raw node data
</summary>
<param name="nodeData">Array of masks for each node</param>
<returns>Array of offsets</returns>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.CountBits(System.UInt16)">
<summary>
Count the number of set bits in the given value
</summary>
<param name="value">Value to test</param>
<returns>Number of set bits</returns>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.Read(EpicGames.Core.IMemoryReader)">
<summary>
Read a trie from the given buffer
</summary>
<param name="reader">Reader to read from</param>
<returns>New trie</returns>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.Write(EpicGames.Core.IMemoryWriter)">
<summary>
Write this trie to the given buffer
</summary>
<param name="writer">Writer to output to</param>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSet.GetSerializedSize">
<summary>
Gets the serialized size of this trie
</summary>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Logs.NgramSetExtensions">
<summary>
Extension methods for serializing tries
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSetExtensions.ReadNgramSet(EpicGames.Core.IMemoryReader)">
<summary>
Read a trie from the given buffer
</summary>
<param name="reader">Reader to read from</param>
<returns>New trie</returns>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSetExtensions.WriteNgramSet(EpicGames.Core.IMemoryWriter,EpicGames.Horde.Logs.NgramSet)">
<summary>
Write this trie to the given buffer
</summary>
<param name="writer">Writer to output to</param>
<param name="set">Trie to write</param>
</member>
<member name="T:EpicGames.Horde.Logs.NgramSetBuilder">
<summary>
Structure used for building compact <see cref="T:EpicGames.Horde.Logs.NgramSet"/> instances
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.NgramSetBuilder.Node">
<summary>
Node within the trie
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.NgramSetBuilder._root">
<summary>
The root node
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSetBuilder.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSetBuilder.Add(System.UInt64)">
<summary>
Adds a value to the trie
</summary>
<param name="value">Value to add</param>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSetBuilder.Contains(System.UInt64)">
<summary>
Searches for the given item in the trie
</summary>
<param name="value">Value to add</param>
</member>
<member name="M:EpicGames.Horde.Logs.NgramSetBuilder.ToNgramSet">
<summary>
Creates a <see cref="T:EpicGames.Horde.Logs.NgramSet"/> from this data
</summary>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Logs.SearchStats">
<summary>
Stats for a search
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchStats.NumScannedBlocks">
<summary>
Number of blocks that were scanned
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchStats.NumScannedBytes">
<summary>
Number of bytes that had to be scanned for results
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchStats.NumSkippedBlocks">
<summary>
Number of blocks that were skipped
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchStats.NumDecompressedBlocks">
<summary>
Number of blocks that had to be decompressed
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchStats.NumFalsePositiveBlocks">
<summary>
Number of blocks that were searched but did not contain the search term
</summary>
</member>
<member name="T:EpicGames.Horde.Logs.SearchTerm">
<summary>
Stores cached information about a utf8 search term
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchTerm.Text">
<summary>
The search text
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.SearchTerm.Bytes">
<summary>
The utf-8 bytes to search for
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.SearchTerm._searchBytes">
<summary>
Normalized (lowercase) utf-8 bytes to search for
</summary>
</member>
<member name="F:EpicGames.Horde.Logs.SearchTerm._skipTable">
<summary>
Skip table for comparisons
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.SearchTerm.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="text">The text to search for</param>
</member>
<member name="M:EpicGames.Horde.Logs.SearchTerm.FindOcurrences(System.ReadOnlyMemory{System.Byte},EpicGames.Horde.Logs.SearchTerm)">
<summary>
Find all ocurrences of the text in the given buffer
</summary>
<param name="buffer">The buffer to search</param>
<param name="text">The text to search for</param>
<returns>Sequence of offsets within the buffer</returns>
</member>
<member name="M:EpicGames.Horde.Logs.SearchTerm.FindNextOcurrence(System.ReadOnlySpan{System.Byte},System.Int32,EpicGames.Horde.Logs.SearchTerm)">
<summary>
Perform a case insensitive search for the next occurerence of the search term in a given buffer
</summary>
<param name="buffer">The buffer to search</param>
<param name="offset">Starting offset for the search</param>
<param name="text">The text to search for</param>
<returns>Offset of the next occurence, or -1</returns>
</member>
<member name="M:EpicGames.Horde.Logs.SearchTerm.Matches(System.ReadOnlySpan{System.Byte},System.Int32,EpicGames.Horde.Logs.SearchTerm)">
<summary>
Compare the search term against the given buffer
</summary>
<param name="buffer">The buffer to search</param>
<param name="offset">Starting offset for the search</param>
<param name="text">The text to search for</param>
<returns>True if the text matches, false otherwise</returns>
</member>
<member name="T:EpicGames.Horde.Logs.SearchTextExtensions">
<summary>
Stores cached information about a utf8 search term
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.SearchTextExtensions.FindOcurrences(System.ReadOnlyMemory{System.Byte},EpicGames.Horde.Logs.SearchTerm)">
<summary>
Find all ocurrences of the text in the given buffer
</summary>
<param name="buffer">The buffer to search</param>
<param name="text">The text to search for</param>
<returns>Sequence of offsets within the buffer</returns>
</member>
<member name="M:EpicGames.Horde.Logs.SearchTextExtensions.FindNextOcurrence(System.ReadOnlySpan{System.Byte},System.Int32,EpicGames.Horde.Logs.SearchTerm)">
<summary>
Perform a case sensitive search for the next occurerence of the search term in a given buffer
</summary>
<param name="buffer">The buffer to search</param>
<param name="offset">Starting offset for the search</param>
<param name="text">The text to search for</param>
<returns>Offset of the next occurence, or -1</returns>
</member>
<member name="M:EpicGames.Horde.Logs.SearchTextExtensions.Matches(System.ReadOnlySpan{System.Byte},System.Int32,EpicGames.Horde.Logs.SearchTerm)">
<summary>
Compare the search term against the given buffer
</summary>
<param name="buffer">The buffer to search</param>
<param name="offset">Starting offset for the search</param>
<param name="text">The text to search for</param>
<returns>True if the text matches, false otherwise</returns>
</member>
<member name="T:EpicGames.Horde.Logs.ServerLogger">
<summary>
Class to handle uploading log data to the server in the background
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.#ctor(EpicGames.Horde.IHordeClient,EpicGames.Horde.Logs.LogId,Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.ILogger)">
<summary>
Constructor
</summary>
<param name="hordeClient">Horde instance to write to</param>
<param name="logId">The log id to write to</param>
<param name="minimumLevel">Minimum level for output</param>
<param name="internalLogger">Logger for systemic messages</param>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.Log``1(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,``0,System.Exception,System.Func{``0,System.Exception,System.String})">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.IsEnabled(Microsoft.Extensions.Logging.LogLevel)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.BeginScope``1(``0)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.StopAsync">
<summary>
Stops the log writer's background task
</summary>
<returns>Async task</returns>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.DisposeAsync">
<summary>
Dispose of this object. Call StopAsync() to stop asynchronously.
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.RunDataWriterAsync">
<summary>
Upload the log data to the server in the background
</summary>
<returns>Async task</returns>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.WriteEventsAsync(System.Collections.Generic.List{Horde.Common.Rpc.RpcCreateLogEventRequest},System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogger.WriteOutputAsync(System.ReadOnlyMemory{System.Byte},System.Boolean,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Logs.ServerLogPacketBuilder">
<summary>
Utility class to split log events into separate lines and buffer them for writing to the server
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.ServerLogPacketBuilder.PacketLength">
<summary>
Current packet length
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.ServerLogPacketBuilder.MaxLineLength">
<summary>
Maximum length of an individual line
</summary>
</member>
<member name="P:EpicGames.Horde.Logs.ServerLogPacketBuilder.MaxPacketLength">
<summary>
Maximum size of a packet
</summary>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogPacketBuilder.#ctor(System.Int32,System.Int32)">
<summary>
Constructor
</summary>
<param name="maxLineLength">Maximum length for an individual line</param>
<param name="maxPacketLength">Maximum length for a packet</param>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogPacketBuilder.CreatePacket">
<summary>
Creates a packet from the current data
</summary>
<returns>Packet data and number of lines written</returns>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogPacketBuilder.SanitizeAndWriteEvent(EpicGames.Core.JsonLogEvent)">
<summary>
Writes an event
</summary>
<param name="jsonLogEvent">Event to write</param>
</member>
<member name="M:EpicGames.Horde.Logs.ServerLogPacketBuilder.WriteEventWithFormat(EpicGames.Core.JsonLogEvent,System.Text.Json.Nodes.JsonObject,System.String)">
<summary>
Writes an event with a format string, splitting it into multiple lines if necessary
</summary>
</member>
<member name="T:EpicGames.Horde.Notifications.NotificationTriggerId">
<summary>
Unique id for a notification trigger id
</summary>
<param name="Id">Identifier for the notification trigger</param>
</member>
<member name="M:EpicGames.Horde.Notifications.NotificationTriggerId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Unique id for a notification trigger id
</summary>
<param name="Id">Identifier for the notification trigger</param>
</member>
<member name="P:EpicGames.Horde.Notifications.NotificationTriggerId.Id">
<summary>Identifier for the notification trigger</summary>
</member>
<member name="M:EpicGames.Horde.Notifications.NotificationTriggerId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Notifications.NotificationTriggerId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Notifications.NotificationTriggerIdConverter">
<summary>
Converter class to and from ObjectId values
</summary>
</member>
<member name="M:EpicGames.Horde.Notifications.NotificationTriggerIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Notifications.NotificationTriggerIdConverter.ToBinaryId(EpicGames.Horde.Notifications.NotificationTriggerId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Projects.HttpProjectCollection.#ctor(EpicGames.Horde.IHordeClient)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Projects.HttpProjectCollection.GetAsync(EpicGames.Horde.Projects.ProjectId,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Projects.HttpProjectCollection.GetAllAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Projects.IProject">
<summary>
Handle to a Horde project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.IProject.Id">
<summary>
Unique id of the project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.IProject.Name">
<summary>
Name of the project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.IProject.Order">
<summary>
Order to display this project on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.IProject.Streams">
<summary>
List of streams that are in this project
</summary>
</member>
<member name="T:EpicGames.Horde.Projects.IProjectStream">
<summary>
Describes a stream within a project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.IProjectStream.Id">
<summary>
The stream id
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.IProjectStream.Name">
<summary>
The stream name
</summary>
</member>
<member name="T:EpicGames.Horde.Projects.IProjectCollection">
<summary>
Collection of projects
</summary>
</member>
<member name="M:EpicGames.Horde.Projects.IProjectCollection.GetAsync(EpicGames.Horde.Projects.ProjectId,System.Threading.CancellationToken)">
<summary>
Retrieve information about a specific project
</summary>
<param name="projectId">Id of the project to get information about</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about the requested project</returns>
</member>
<member name="M:EpicGames.Horde.Projects.IProjectCollection.GetAllAsync(System.Threading.CancellationToken)">
<summary>
Query all the projects
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Information about all the projects</returns>
</member>
<member name="T:EpicGames.Horde.Projects.ProjectId">
<summary>
Identifier for a pool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Projects.ProjectId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a pool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Projects.ProjectId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Projects.ProjectId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.ProjectId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Projects.ProjectId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Projects.ProjectIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Projects.ProjectIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Projects.ProjectIdConverter.ToStringId(EpicGames.Horde.Projects.ProjectId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Projects.GetProjectResponse">
<summary>
Response describing a project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectResponse.Id">
<summary>
Unique id of the project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectResponse.Name">
<summary>
Name of the project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectResponse.Order">
<summary>
Order to display this project on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectResponse.Streams">
<summary>
List of streams that are in this project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectResponse.Categories">
<summary>
List of stream categories to display
</summary>
</member>
<member name="M:EpicGames.Horde.Projects.GetProjectResponse.#ctor(EpicGames.Horde.Projects.ProjectId,System.String,System.Int32)">
<summary>
Constructor
</summary>
<param name="id">Unique id of the project</param>
<param name="name">Name of the project</param>
<param name="order">Order to show this project on the dashboard</param>
</member>
<member name="T:EpicGames.Horde.Projects.GetProjectStreamResponse">
<summary>
Information about a stream within a project
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectStreamResponse.Id">
<summary>
The stream id
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectStreamResponse.Name">
<summary>
The stream name
</summary>
</member>
<member name="M:EpicGames.Horde.Projects.GetProjectStreamResponse.#ctor(System.String,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Projects.GetProjectCategoryResponse">
<summary>
Information about a category to display for a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectCategoryResponse.Name">
<summary>
Heading for this column
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectCategoryResponse.Row">
<summary>
Index of the row to display this category on
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectCategoryResponse.ShowOnNavMenu">
<summary>
Whether to show this category on the nav menu
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectCategoryResponse.IncludePatterns">
<summary>
Patterns for stream names to include
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectCategoryResponse.ExcludePatterns">
<summary>
Patterns for stream names to exclude
</summary>
</member>
<member name="P:EpicGames.Horde.Projects.GetProjectCategoryResponse.Streams">
<summary>
Streams to include in this category
</summary>
</member>
<member name="M:EpicGames.Horde.Projects.GetProjectCategoryResponse.#ctor(System.String,System.Int32)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Replicators.ReplicatorId">
<summary>
Unique identifier for a replicator across all streams
</summary>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorId.#ctor(EpicGames.Horde.Streams.StreamId,EpicGames.Horde.Replicators.StreamReplicatorId)">
<summary>
Unique identifier for a replicator across all streams
</summary>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorId.Parse(System.String)">
<summary>
Parse a replicator id
</summary>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorId.TryParse(System.String,EpicGames.Horde.Replicators.ReplicatorId@)">
<summary>
Parse a replicator id
</summary>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorId.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorIdJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorIdJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.Replicators.ReplicatorId,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorIdTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorIdTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorIdTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Replicators.ReplicatorIdTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Replicators.StreamReplicatorId">
<summary>
Identifier for a replicator
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Replicators.StreamReplicatorId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a replicator
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Replicators.StreamReplicatorId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Replicators.StreamReplicatorId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.StreamReplicatorId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Replicators.StreamReplicatorId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Replicators.StreamReplicatorIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Replicators.StreamReplicatorIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Replicators.StreamReplicatorIdConverter.ToStringId(EpicGames.Horde.Replicators.StreamReplicatorId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Replicators.GetReplicatorResponse">
<summary>
Information about a replicator
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.Id">
<summary>
Identifier for this replicator
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.StreamId">
<summary>
Identifier for the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.StreamReplicatorId">
<summary>
Identifier for this replicator within the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.Status">
<summary>
Status description
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.Pause">
<summary>
Whether to pause replication
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.Clean">
<summary>
Whether to perform a clean snapshot
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.Reset">
<summary>
Resets the replication
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.SingleStep">
<summary>
Pauses replication after the current change
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.LastChange">
<summary>
The last change that was replicated
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.LastChangeFinishTime">
<summary>
Time at which the last change was replicated
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.CurrentChange">
<summary>
The current change being replicated
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.CurrentChangeStartTime">
<summary>
Time at which the current change was replicated
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.CurrentSize">
<summary>
Size of data currently being replicated
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.CurrentCopiedSize">
<summary>
Amount of data copied for the current change
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.GetReplicatorResponse.CurrentError">
<summary>
Last error with replication, if there is one.
</summary>
</member>
<member name="T:EpicGames.Horde.Replicators.UpdateReplicatorRequest">
<summary>
Information about a replicator
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.UpdateReplicatorRequest.Pause">
<summary>
Whether to pause replication immediately
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.UpdateReplicatorRequest.Clean">
<summary>
Whether to perform a clean snapshot for the next replicated change
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.UpdateReplicatorRequest.Reset">
<summary>
Discards all replicated changes and starts replication from scratch
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.UpdateReplicatorRequest.SingleStep">
<summary>
Pauses replication after one change has been replicated
</summary>
</member>
<member name="P:EpicGames.Horde.Replicators.UpdateReplicatorRequest.NextChange">
<summary>
Change that should be replicated. Setting this to a value ahead of the last replicated change will cause changes inbetween to be skipped.
</summary>
</member>
<member name="M:EpicGames.Horde.Secrets.HttpSecretCollection.#ctor(EpicGames.Horde.IHordeClient)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Secrets.HttpSecretCollection.GetAsync(EpicGames.Horde.Secrets.SecretId,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Secrets.ISecret">
<summary>
Information about a secret
</summary>
</member>
<member name="P:EpicGames.Horde.Secrets.ISecret.Id">
<summary>
Identifier for the secret
</summary>
</member>
<member name="P:EpicGames.Horde.Secrets.ISecret.Data">
<summary>
The secret values
</summary>
</member>
<member name="T:EpicGames.Horde.Secrets.ISecretCollection">
<summary>
Collection of secrets
</summary>
</member>
<member name="M:EpicGames.Horde.Secrets.ISecretCollection.GetAsync(EpicGames.Horde.Secrets.SecretId,System.Threading.CancellationToken)">
<summary>
Resolve a secret to concrete values
</summary>
<param name="secretId">Identifier for the secret</param>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="T:EpicGames.Horde.Secrets.SecretId">
<summary>
Identifier for a secret
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Secrets.SecretId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a secret
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Secrets.SecretId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Secrets.SecretId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Secrets.SecretId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Secrets.SecretId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Secrets.SecretIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Secrets.SecretIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Secrets.SecretIdConverter.ToStringId(EpicGames.Horde.Secrets.SecretId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Secrets.GetSecretsResponse">
<summary>
Response listing all the secrets available to the current user
</summary>
</member>
<member name="P:EpicGames.Horde.Secrets.GetSecretsResponse.Ids">
<summary>
List of secret ids
</summary>
</member>
<member name="M:EpicGames.Horde.Secrets.GetSecretsResponse.#ctor(System.Collections.Generic.List{EpicGames.Horde.Secrets.SecretId})">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Secrets.GetSecretResponse">
<summary>
Gets data for a particular secret
</summary>
</member>
<member name="P:EpicGames.Horde.Secrets.GetSecretResponse.Id">
<summary>
Id of the secret
</summary>
</member>
<member name="P:EpicGames.Horde.Secrets.GetSecretResponse.Data">
<summary>
Key value pairs for the secret
</summary>
</member>
<member name="M:EpicGames.Horde.Secrets.GetSecretResponse.#ctor(EpicGames.Horde.Secrets.SecretId,System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Server.Notices.CreateNoticeRequest">
<summary>
Parameters required to create a notice
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.CreateNoticeRequest.StartTime">
<summary>
Start time to display this message
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.CreateNoticeRequest.FinishTime">
<summary>
Finish time to display this message
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.CreateNoticeRequest.Message">
<summary>
Message to display
</summary>
</member>
<member name="M:EpicGames.Horde.Server.Notices.CreateNoticeRequest.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Server.Notices.UpdateNoticeRequest">
<summary>
Parameters required to update a notice
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.UpdateNoticeRequest.Id">
<summary>
The id of the notice to update
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.UpdateNoticeRequest.StartTime">
<summary>
Start time to display this message
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.UpdateNoticeRequest.FinishTime">
<summary>
Finish time to display this message
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.UpdateNoticeRequest.Message">
<summary>
Message to display
</summary>
</member>
<member name="M:EpicGames.Horde.Server.Notices.UpdateNoticeRequest.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Server.Notices.GetNoticeResponse">
<summary>
Notice information
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.GetNoticeResponse.Id">
<summary>
The id of the notice to update
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.GetNoticeResponse.StartTime">
<summary>
Start time to display this message
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.GetNoticeResponse.FinishTime">
<summary>
Finish time to display this message
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.GetNoticeResponse.ScheduledDowntime">
<summary>
Whether this notice is for scheduled downtime
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.GetNoticeResponse.Active">
<summary>
Whether the notice is currently active
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.GetNoticeResponse.Message">
<summary>
Message to display
</summary>
</member>
<member name="P:EpicGames.Horde.Server.Notices.GetNoticeResponse.CreatedByUser">
<summary>
User id who created the notice, otherwise null if a system message
</summary>
</member>
<member name="T:EpicGames.Horde.Server.GetServerInfoResponse">
<summary>
Server Info
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetServerInfoResponse.ApiVersion">
<summary>
Current API version number of the server
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetServerInfoResponse.ServerVersion">
<summary>
Server version info
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetServerInfoResponse.AgentVersion">
<summary>
The current agent version string
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetServerInfoResponse.Plugins">
<summary>
List of plugins
</summary>
</member>
<member name="T:EpicGames.Horde.Server.GetConnectionResponse">
<summary>
Gets connection information to the server
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetConnectionResponse.Ip">
<summary>
Public IP address of the remote machine
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetConnectionResponse.Port">
<summary>
Public port of the connecting machine
</summary>
</member>
<member name="T:EpicGames.Horde.Server.GetPortsResponse">
<summary>
Gets ports configured for this server
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetPortsResponse.Http">
<summary>
Port for HTTP communication
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetPortsResponse.Https">
<summary>
Port number for HTTPS communication
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetPortsResponse.UnencryptedHttp2">
<summary>
Port number for unencrpyted HTTPS communication
</summary>
</member>
<member name="T:EpicGames.Horde.Server.AuthMethod">
<summary>
Authentication method used for logging users in
</summary>
</member>
<member name="F:EpicGames.Horde.Server.AuthMethod.Anonymous">
<summary>
No authentication enabled. *Only* for demo and testing purposes.
</summary>
</member>
<member name="F:EpicGames.Horde.Server.AuthMethod.Okta">
<summary>
OpenID Connect authentication, tailored for Okta
</summary>
</member>
<member name="F:EpicGames.Horde.Server.AuthMethod.OpenIdConnect">
<summary>
Generic OpenID Connect authentication, recommended for most
</summary>
</member>
<member name="F:EpicGames.Horde.Server.AuthMethod.Horde">
<summary>
Authenticate using username and password credentials stored in Horde
OpenID Connect (OIDC) is first and foremost recommended.
But if you have a small installation (less than ~10 users) or lacking an OIDC provider, this is an option.
</summary>
</member>
<member name="T:EpicGames.Horde.Server.GetAuthConfigResponse">
<summary>
Describes the auth config for this server
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetAuthConfigResponse.Method">
<summary>
Issuer for tokens from the auth provider
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetAuthConfigResponse.ProfileName">
<summary>
Optional profile name used by OidcToken
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetAuthConfigResponse.ServerUrl">
<summary>
Issuer for tokens from the auth provider
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetAuthConfigResponse.ClientId">
<summary>
Client id for the OIDC authority
</summary>
</member>
<member name="P:EpicGames.Horde.Server.GetAuthConfigResponse.LocalRedirectUrls">
<summary>
Optional redirect url provided to OIDC login for external tools (typically to a local server)
</summary>
</member>
<member name="T:EpicGames.Horde.Server.PreflightConfigRequest">
<summary>
Request to validate server configuration with the given files replacing their checked-in counterparts.
</summary>
</member>
<member name="P:EpicGames.Horde.Server.PreflightConfigRequest.Cluster">
<summary>
Perforce cluster to retrieve from
</summary>
</member>
<member name="P:EpicGames.Horde.Server.PreflightConfigRequest.ShelvedChange">
<summary>
Change to test
</summary>
</member>
<member name="T:EpicGames.Horde.Server.PreflightConfigResponse">
<summary>
Response from validating config files
</summary>
</member>
<member name="P:EpicGames.Horde.Server.PreflightConfigResponse.Result">
<summary>
Whether the files were validated successfully
</summary>
</member>
<member name="P:EpicGames.Horde.Server.PreflightConfigResponse.Message">
<summary>
Output message from validation
</summary>
</member>
<member name="P:EpicGames.Horde.Server.PreflightConfigResponse.Detail">
<summary>
Detailed response
</summary>
</member>
<member name="T:EpicGames.Horde.Server.ServerStatusSubsystem">
<summary>
Status for a subsystem within Horde
</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerStatusSubsystem.Name">
<summary>
Name of the subsystem
</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerStatusSubsystem.Updates">
<summary>
List of updates
</summary>
</member>
<member name="T:EpicGames.Horde.Server.ServerStatusResult">
<summary>
Type of status result for a single update
</summary>
</member>
<member name="F:EpicGames.Horde.Server.ServerStatusResult.Unhealthy">
<summary>
Indicates that the health check determined that the subsystem was unhealthy
</summary>
</member>
<member name="F:EpicGames.Horde.Server.ServerStatusResult.Degraded">
<summary>
Indicates that the health check determined that the component was in a subsystem state
</summary>
</member>
<member name="F:EpicGames.Horde.Server.ServerStatusResult.Healthy">
<summary>
Indicates that the health check determined that the subsystem was healthy
</summary>
</member>
<member name="T:EpicGames.Horde.Server.ServerStatusUpdate">
<summary>
A single status update
</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerStatusUpdate.Result">
<summary>
Result of status update
</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerStatusUpdate.Message">
<summary>
Optional message describing the result
</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerStatusUpdate.UpdatedAt">
<summary>
Time this update was created
</summary>
</member>
<member name="T:EpicGames.Horde.Server.ServerStatusResponse">
<summary>
Response from server status controller
</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerStatusResponse.Statuses">
<summary>
List of subsystem statuses
</summary>
</member>
<member name="T:EpicGames.Horde.Server.ServerPluginInfoResponse">
<summary>
Information about a server plugin
</summary>
<param name="Name">Name of the plugin</param>
<param name="Description">Optional description of the plugin</param>
<param name="Loaded">Whether the plugin is loaded</param>
<param name="Version">The version of the plugin assembly</param>
</member>
<member name="M:EpicGames.Horde.Server.ServerPluginInfoResponse.#ctor(System.String,System.String,System.Boolean,System.String)">
<summary>
Information about a server plugin
</summary>
<param name="Name">Name of the plugin</param>
<param name="Description">Optional description of the plugin</param>
<param name="Loaded">Whether the plugin is loaded</param>
<param name="Version">The version of the plugin assembly</param>
</member>
<member name="P:EpicGames.Horde.Server.ServerPluginInfoResponse.Name">
<summary>Name of the plugin</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerPluginInfoResponse.Description">
<summary>Optional description of the plugin</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerPluginInfoResponse.Loaded">
<summary>Whether the plugin is loaded</summary>
</member>
<member name="P:EpicGames.Horde.Server.ServerPluginInfoResponse.Version">
<summary>The version of the plugin assembly</summary>
</member>
<member name="T:EpicGames.Horde.ServiceAccounts.ServiceAccountId">
<summary>
Identifier for a user account
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.ServiceAccountId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a user account
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.ServiceAccountId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.ServiceAccountId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.ServiceAccountId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.ServiceAccounts.ServiceAccountIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.BinaryId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.ServiceAccountIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.ServiceAccountIdConverter.ToBinaryId(EpicGames.Horde.ServiceAccounts.ServiceAccountId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.ServiceAccounts.CreateServiceAccountRequest">
<summary>
Creates a new user account
</summary>
<param name="Name">Name of the account</param>
<param name="Description">Description for the account</param>
<param name="Claims">Claims for the user</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.CreateServiceAccountRequest.#ctor(System.String,System.String,System.Collections.Generic.List{EpicGames.Horde.Accounts.AccountClaimMessage},System.Nullable{System.Boolean})">
<summary>
Creates a new user account
</summary>
<param name="Name">Name of the account</param>
<param name="Description">Description for the account</param>
<param name="Claims">Claims for the user</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.CreateServiceAccountRequest.Name">
<summary>Name of the account</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.CreateServiceAccountRequest.Description">
<summary>Description for the account</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.CreateServiceAccountRequest.Claims">
<summary>Claims for the user</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.CreateServiceAccountRequest.Enabled">
<summary>Whether the account is enabled</summary>
</member>
<member name="T:EpicGames.Horde.ServiceAccounts.CreateServiceAccountResponse">
<summary>
Response from the request to create a new user account
</summary>
<param name="Id">The created account id</param>
<param name="SecretToken">Secret used to auth with this account</param>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.CreateServiceAccountResponse.#ctor(EpicGames.Horde.ServiceAccounts.ServiceAccountId,System.String)">
<summary>
Response from the request to create a new user account
</summary>
<param name="Id">The created account id</param>
<param name="SecretToken">Secret used to auth with this account</param>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.CreateServiceAccountResponse.Id">
<summary>The created account id</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.CreateServiceAccountResponse.SecretToken">
<summary>Secret used to auth with this account</summary>
</member>
<member name="T:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountRequest">
<summary>
Update request for a user account
</summary>
<param name="Name">Name of the account</param>
<param name="Description">Description for the account</param>
<param name="Claims">Claims for the user</param>
<param name="ResetToken">Request that the token get reset</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountRequest.#ctor(System.String,System.String,System.Collections.Generic.List{EpicGames.Horde.Accounts.AccountClaimMessage},System.Nullable{System.Boolean},System.Nullable{System.Boolean})">
<summary>
Update request for a user account
</summary>
<param name="Name">Name of the account</param>
<param name="Description">Description for the account</param>
<param name="Claims">Claims for the user</param>
<param name="ResetToken">Request that the token get reset</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountRequest.Name">
<summary>Name of the account</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountRequest.Description">
<summary>Description for the account</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountRequest.Claims">
<summary>Claims for the user</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountRequest.ResetToken">
<summary>Request that the token get reset</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountRequest.Enabled">
<summary>Whether the account is enabled</summary>
</member>
<member name="T:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountResponse">
<summary>
Response from updating a user account
</summary>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.UpdateServiceAccountResponse.#ctor(System.String)">
<summary>
Response from updating a user account
</summary>
</member>
<member name="T:EpicGames.Horde.ServiceAccounts.GetServiceAccountResponse">
<summary>
Creates a new user account
</summary>
<param name="Id">Id of the account</param>
<param name="Claims">Claims for the user</param>
<param name="Description">Description for the account</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="M:EpicGames.Horde.ServiceAccounts.GetServiceAccountResponse.#ctor(EpicGames.Horde.ServiceAccounts.ServiceAccountId,System.Collections.Generic.List{EpicGames.Horde.Accounts.AccountClaimMessage},System.String,System.Boolean)">
<summary>
Creates a new user account
</summary>
<param name="Id">Id of the account</param>
<param name="Claims">Claims for the user</param>
<param name="Description">Description for the account</param>
<param name="Enabled">Whether the account is enabled</param>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.GetServiceAccountResponse.Id">
<summary>Id of the account</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.GetServiceAccountResponse.Claims">
<summary>Claims for the user</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.GetServiceAccountResponse.Description">
<summary>Description for the account</summary>
</member>
<member name="P:EpicGames.Horde.ServiceAccounts.GetServiceAccountResponse.Enabled">
<summary>Whether the account is enabled</summary>
</member>
<member name="T:EpicGames.Horde.Streams.InvalidStreamException">
<summary>
Exception thrown when stream validation fails
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.InvalidStreamException.#ctor">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Streams.InvalidStreamException.#ctor(System.String)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Streams.InvalidStreamException.#ctor(System.String,System.Exception)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Streams.IStream">
<summary>
Information about a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.Id">
<summary>
Name of the stream.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.ProjectId">
<summary>
Project that this stream belongs to
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.Name">
<summary>
Name of the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.ConfigPath">
<summary>
Path to the config file for this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.ConfigRevision">
<summary>
Current revision of the config file
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.Order">
<summary>
Order for this stream on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.NotificationChannel">
<summary>
Notification channel for all jobs in this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.NotificationChannelFilter">
<summary>
Notification channel filter for this template. Can be Success, Failure, or Warnings.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.TriageChannel">
<summary>
Channel to post issue triage notifications
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.Tabs">
<summary>
Tabs for this stream on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.AgentTypes">
<summary>
Agent types configured for this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.WorkspaceTypes">
<summary>
Workspace types configured for this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.Templates">
<summary>
List of templates available for this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.Workflows">
<summary>
Workflows configured for this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.DefaultPreflight">
<summary>
Default settings for preflights against this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.PausedUntil">
<summary>
Stream is paused for builds until specified time
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.PauseComment">
<summary>
Comment/reason for why the stream was paused
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStream.Commits">
<summary>
Commits for this stream
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.IStream.RefreshAsync(System.Threading.CancellationToken)">
<summary>
Get the latest stream state
</summary>
<param name="cancellationToken">Cancellation toke for this operation</param>
<returns>Updated stream, or null if it no longer exists</returns>
</member>
<member name="M:EpicGames.Horde.Streams.IStream.TryUpdatePauseStateAsync(System.Nullable{System.DateTime},System.String,System.Threading.CancellationToken)">
<summary>
Updates user-facing properties for an existing stream
</summary>
<param name="newPausedUntil">The new datetime for pausing builds</param>
<param name="newPauseComment">The reason for pausing</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The updated stream if successful, null otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Streams.IStream.TryUpdateScheduleTriggerAsync(EpicGames.Horde.Jobs.Templates.TemplateId,System.Nullable{System.DateTime},EpicGames.Horde.Commits.CommitIdWithOrder,System.Collections.Generic.List{EpicGames.Horde.Jobs.JobId},System.Threading.CancellationToken)">
<summary>
Attempts to update the last trigger time for a schedule
</summary>
<param name="templateRefId">The template ref id</param>
<param name="lastTriggerTimeUtc">New last trigger time for the schedule</param>
<param name="lastTriggerCommitId">New last trigger commit for the schedule</param>
<param name="newActiveJobs">New list of active jobs</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The updated stream if successful, null otherwise</returns>
</member>
<member name="M:EpicGames.Horde.Streams.IStream.TryUpdateTemplateRefAsync(EpicGames.Horde.Jobs.Templates.TemplateId,System.Collections.Generic.List{EpicGames.Horde.Streams.UpdateStepStateRequest},System.Threading.CancellationToken)">
<summary>
Attempts to update a stream template ref
</summary>
<param name="templateRefId">The template ref to update</param>
<param name="stepStates">The stream states to update, pass an empty list to clear all step states, otherwise will be a partial update based on included step updates</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Streams.TabStyle">
<summary>
Style for rendering a tab
</summary>
</member>
<member name="F:EpicGames.Horde.Streams.TabStyle.Normal">
<summary>
Regular job list
</summary>
</member>
<member name="F:EpicGames.Horde.Streams.TabStyle.Compact">
<summary>
Omit job names, show condensed view
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.IStreamTab">
<summary>
Information about a page to display in the dashboard for a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTab.Title">
<summary>
Title of this page
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTab.Type">
<summary>
Type of this tab
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTab.Style">
<summary>
Presentation style for this page
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTab.ShowNames">
<summary>
Whether to show job names on this page
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTab.ShowPreflights">
<summary>
Whether to show all user preflights
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTab.JobNames">
<summary>
Names of jobs to include on this page. If there is only one name specified, the name column does not need to be displayed.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTab.Templates">
<summary>
List of job template names to show on this page.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTab.Columns">
<summary>
Columns to display for different types of aggregates
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.TabColumnType">
<summary>
Type of a column in a jobs tab
</summary>
</member>
<member name="F:EpicGames.Horde.Streams.TabColumnType.Labels">
<summary>
Contains labels
</summary>
</member>
<member name="F:EpicGames.Horde.Streams.TabColumnType.Parameter">
<summary>
Contains parameters
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.IStreamTabColumn">
<summary>
Describes a column to display on the jobs page
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTabColumn.Type">
<summary>
The type of column
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTabColumn.Heading">
<summary>
Heading for this column
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTabColumn.Category">
<summary>
Category of aggregates to display in this column. If null, includes any aggregate not matched by another column.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTabColumn.Parameter">
<summary>
Parameter to show in this column
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IStreamTabColumn.RelativeWidth">
<summary>
Relative width of this column.
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.IAgentType">
<summary>
Mapping from a BuildGraph agent type to a set of machines on the farm
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IAgentType.Pool">
<summary>
Pool of agents to use for this agent type
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IAgentType.Workspace">
<summary>
Name of the workspace to sync
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IAgentType.TempStorageDir">
<summary>
Path to the temporary storage dir
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IAgentType.Environment">
<summary>
Environment variables to be set when executing the job
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.IWorkspaceType">
<summary>
Information about a workspace type
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.Cluster">
<summary>
Name of the Perforce server cluster to use
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.ServerAndPort">
<summary>
The Perforce server and port (eg. perforce:1666)
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.UserName">
<summary>
User to log into Perforce with (defaults to buildmachine)
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.Password">
<summary>
Password to use to log into the workspace
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.Identifier">
<summary>
Identifier to distinguish this workspace from other workspaces. Defaults to the workspace type name.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.Stream">
<summary>
Override for the stream to sync
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.View">
<summary>
Custom view for the workspace
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.Incremental">
<summary>
Whether to use an incrementally synced workspace
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.UseAutoSdk">
<summary>
Whether to use the AutoSDK
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.AutoSdkView">
<summary>
View for the AutoSDK paths to sync. If null, the whole thing will be synced.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.Method">
<summary>
Method to use when syncing/materializing data from Perforce
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.MinScratchSpace">
<summary>
Minimum disk space that must be available *after* syncing this workspace (in megabytes)
If not available, the job will be aborted.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IWorkspaceType.ConformDiskFreeSpace">
<summary>
Threshold for when to trigger an automatic conform of agent. Measured in megabytes free on disk.
Set to null or 0 to disable.
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.IDefaultPreflight">
<summary>
Specifies defaults for running a preflight
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IDefaultPreflight.TemplateId">
<summary>
The template id to query
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IDefaultPreflight.Change">
<summary>
Query for the change to use
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.ITemplateRef">
<summary>
Job template in a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.Id">
<summary>
The template id
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.ShowUgsBadges">
<summary>
Whether to show badges in UGS for these jobs
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.ShowUgsAlerts">
<summary>
Whether to show alerts in UGS for these jobs
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.NotificationChannel">
<summary>
Notification channel for this template. Overrides the stream channel if set.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.NotificationChannelFilter">
<summary>
Notification channel filter for this template. Can be a combination of "Success", "Failure" and "Warnings" separated by pipe characters.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.TriageChannel">
<summary>
Triage channel for this template. Overrides the stream channel if set.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.Schedule">
<summary>
List of schedules for this template
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.ChainedJobs">
<summary>
List of chained job triggers
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.StepStates">
<summary>
List of template step states
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateRef.DefaultChange">
<summary>
Default change to use for this job
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.IChainedJobTemplate">
<summary>
Trigger for another template
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IChainedJobTemplate.Trigger">
<summary>
Name of the target that needs to complete before starting the other template
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IChainedJobTemplate.TemplateId">
<summary>
Id of the template to trigger
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.IChainedJobTemplate.UseDefaultChangeForTemplate">
<summary>
Whether to use the default change for the template rather than the change for the parent job.
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.ITemplateStep">
<summary>
Information about a paused template step
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateStep.Name">
<summary>
Name of the step
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateStep.PausedByUserId">
<summary>
User who paused the step
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.ITemplateStep.PauseTimeUtc">
<summary>
The UTC time when the step was paused
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.StreamExtensions">
<summary>
Extension methods for streams
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.StreamExtensions.TryUpdatePauseStateAsync(EpicGames.Horde.Streams.IStream,System.Nullable{System.DateTime},System.String,System.Threading.CancellationToken)">
<summary>
Updates an existing stream
</summary>
<param name="stream">The stream to update</param>
<param name="newPausedUntil">The new datetime for pausing builds</param>
<param name="newPauseComment">The reason for pausing</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Async task object</returns>
</member>
<member name="M:EpicGames.Horde.Streams.StreamExtensions.TryUpdateScheduleTriggerAsync(EpicGames.Horde.Streams.IStream,EpicGames.Horde.Jobs.Templates.TemplateId,System.Nullable{System.DateTime},EpicGames.Horde.Commits.CommitIdWithOrder,System.Collections.Generic.List{EpicGames.Horde.Jobs.JobId},System.Collections.Generic.List{EpicGames.Horde.Jobs.JobId},System.Threading.CancellationToken)">
<summary>
Attempts to update the last trigger time for a schedule
</summary>
<param name="stream">The stream to update</param>
<param name="templateRefId">The template ref id</param>
<param name="lastTriggerTimeUtc"></param>
<param name="lastTriggerCommitId"></param>
<param name="addJobs">Jobs to add</param>
<param name="removeJobs">Jobs to remove</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>True if the stream was updated</returns>
</member>
<member name="M:EpicGames.Horde.Streams.StreamExtensions.IsPaused(EpicGames.Horde.Streams.IStream,System.DateTime)">
<summary>
Check if stream is paused for new builds
</summary>
<param name="stream">The stream object</param>
<param name="currentTime">Current time (allow tests to pass in a fake clock)</param>
<returns>If stream is paused</returns>
</member>
<member name="T:EpicGames.Horde.Streams.IStreamCollection">
<summary>
Collection of stream documents
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.IStreamCollection.GetAsync(EpicGames.Horde.Streams.StreamId,System.Threading.CancellationToken)">
<summary>
Gets a stream by ID
</summary>
<param name="id">The stream identifier</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The stream document</returns>
</member>
<member name="M:EpicGames.Horde.Streams.IStreamCollection.FindAsync(System.Collections.Generic.IReadOnlyList{EpicGames.Horde.Streams.StreamId},System.Threading.CancellationToken)">
<summary>
Gets a stream by ID
</summary>
<param name="ids">The stream identifiers</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The stream document</returns>
</member>
<member name="T:EpicGames.Horde.Streams.StreamId">
<summary>
Identifier for a stream
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Streams.StreamId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a stream
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Streams.StreamId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Streams.StreamId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.StreamId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Streams.StreamId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Streams.StreamIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.StreamIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Streams.StreamIdConverter.ToStringId(EpicGames.Horde.Streams.StreamId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Streams.GetStreamResponse">
<summary>
Response describing a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.Id">
<summary>
Unique id of the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.ProjectId">
<summary>
Unique id of the project containing this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.Name">
<summary>
Name of the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.ConfigPath">
<summary>
The config file path on the server
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.ConfigRevision">
<summary>
Revision of the config file
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.Order">
<summary>
Order to display in the list
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.NotificationChannel">
<summary>
Notification channel for all jobs in this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.NotificationChannelFilter">
<summary>
Notification channel filter for this template. Can be a combination of "Success", "Failure" and "Warnings" separated by pipe characters.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.TriageChannel">
<summary>
Channel to post issue triage notifications
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.DefaultPreflightTemplate">
<summary>
Default template for running preflights
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.DefaultPreflight">
<summary>
Default template to use for preflights
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.Tabs">
<summary>
List of tabs to display for this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.AgentTypes">
<summary>
Map of agent name to type
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.WorkspaceTypes">
<summary>
Map of workspace name to type
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.Templates">
<summary>
Templates for jobs in this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.PausedUntil">
<summary>
Stream paused for new builds until this date
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.PauseComment">
<summary>
Reason for stream being paused
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamResponse.Workflows">
<summary>
Workflows for this stream
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetStreamResponse.#ctor(EpicGames.Horde.Streams.IStream,System.Collections.Generic.List{EpicGames.Horde.Streams.GetTemplateRefResponse})">
<summary>
Constructor
</summary>
<param name="stream">The stream to construct from</param>
<param name="templates">Templates for this stream</param>
</member>
<member name="T:EpicGames.Horde.Streams.DefaultPreflightMessage">
<summary>
Information about the default preflight to run
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.DefaultPreflightMessage.TemplateId">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.DefaultPreflightMessage.Change">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Streams.DefaultPreflightMessage.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.DefaultPreflightMessage.#ctor(EpicGames.Horde.Streams.IDefaultPreflight)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.GetStreamTabResponse">
<summary>
Information about a page to display in the dashboard for a stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabResponse.Title">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabResponse.Type">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabResponse.Style">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabResponse.ShowNames">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabResponse.ShowPreflights">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabResponse.JobNames">
<inheritdoc cref="P:EpicGames.Horde.Streams.IStreamTab.JobNames"/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabResponse.Templates">
<inheritdoc cref="P:EpicGames.Horde.Streams.IStreamTab.Templates"/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabResponse.Columns">
<inheritdoc cref="P:EpicGames.Horde.Streams.IStreamTab.Columns"/>
</member>
<member name="M:EpicGames.Horde.Streams.GetStreamTabResponse.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetStreamTabResponse.#ctor(EpicGames.Horde.Streams.IStreamTab)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.GetStreamTabColumnResponse">
<summary>
Describes a column to display on the jobs page
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabColumnResponse.Type">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabColumnResponse.Heading">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabColumnResponse.Category">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabColumnResponse.Parameter">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetStreamTabColumnResponse.RelativeWidth">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Streams.GetStreamTabColumnResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetStreamTabColumnResponse.#ctor(EpicGames.Horde.Streams.IStreamTabColumn)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.GetAgentTypeResponse">
<summary>
Mapping from a BuildGraph agent type to a set of machines on the farm
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetAgentTypeResponse.Pool">
<summary>
Pool of agents to use for this agent type
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetAgentTypeResponse.Workspace">
<summary>
Name of the workspace to sync
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetAgentTypeResponse.TempStorageDir">
<summary>
Path to the temporary storage dir
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetAgentTypeResponse.Environment">
<summary>
Environment variables to be set when executing the job
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetAgentTypeResponse.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetAgentTypeResponse.#ctor(EpicGames.Horde.Streams.IAgentType)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.GetWorkspaceTypeResponse">
<summary>
Information about a workspace type
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.Cluster">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.ServerAndPort">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.UserName">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.EpicGames#Horde#Streams#IWorkspaceType#Password">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.Identifier">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.Stream">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.View">
<inheritdoc cref="P:EpicGames.Horde.Streams.IWorkspaceType.View"/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.Incremental">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.UseAutoSdk">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.AutoSdkView">
<inheritdoc cref="P:EpicGames.Horde.Streams.IWorkspaceType.AutoSdkView"/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.Method">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.MinScratchSpace">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.ConformDiskFreeSpace">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetWorkspaceTypeResponse.#ctor(EpicGames.Horde.Streams.IWorkspaceType)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.GetTemplateStepStateResponse">
<summary>
State information for a step in the stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateStepStateResponse.Name">
<summary>
Name of the step
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateStepStateResponse.PausedByUserInfo">
<summary>
User who paused the step
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateStepStateResponse.PauseTimeUtc">
<summary>
The UTC time when the step was paused
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetTemplateStepStateResponse.#ctor">
<summary>
Default constructor for serialization
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetTemplateStepStateResponse.#ctor(EpicGames.Horde.Streams.ITemplateStep,EpicGames.Horde.Users.GetThinUserInfoResponse)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.GetTemplateRefResponse">
<summary>
Information about a template in this stream
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.Id">
<summary>
Id of the template ref
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.Hash">
<summary>
Hash of the template definition
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.ShowUgsBadges">
<summary>
Whether to show badges in UGS for these jobs
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.ShowUgsAlerts">
<summary>
Whether to show alerts in UGS for these jobs
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.NotificationChannel">
<summary>
Notification channel for this template. Overrides the stream channel if set.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.NotificationChannelFilter">
<summary>
Notification channel filter for this template. Can be a combination of "Success", "Failure" and "Warnings" separated by pipe characters.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.TriageChannel">
<summary>
Triage channel for this template. Overrides the stream channel if set.
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.Schedule">
<summary>
The schedule for this ref
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.ChainedJobs">
<summary>
List of templates to trigger
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.StepStates">
<summary>
List of step states
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.DefaultChange">
<summary>
List of queries for the default changelist
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetTemplateRefResponse.CanRun">
<summary>
Whether the user is allowed to create jobs from this template
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetTemplateRefResponse.#ctor(EpicGames.Horde.Jobs.Templates.TemplateId,EpicGames.Horde.Streams.ITemplateRef,EpicGames.Horde.Jobs.Templates.ITemplate,System.Collections.Generic.List{EpicGames.Horde.Streams.GetTemplateStepStateResponse},System.TimeZoneInfo,System.Boolean)">
<summary>
Constructor
</summary>
<param name="id">The template ref id</param>
<param name="templateRef">The template ref</param>
<param name="template">The actual template</param>
<param name="stepStates">The template step states</param>
<param name="schedulerTimeZone">The scheduler time zone</param>
<param name="canRun">Whether the user can run this template</param>
</member>
<member name="T:EpicGames.Horde.Streams.GetChainedJobTemplateResponse">
<summary>
Trigger for another template
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.GetChainedJobTemplateResponse.Trigger">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetChainedJobTemplateResponse.TemplateId">
<inheritdoc/>
</member>
<member name="P:EpicGames.Horde.Streams.GetChainedJobTemplateResponse.UseDefaultChangeForTemplate">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Streams.GetChainedJobTemplateResponse.#ctor">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Streams.GetChainedJobTemplateResponse.#ctor(EpicGames.Horde.Streams.IChainedJobTemplate)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.UpdateStepStateRequest">
<summary>
Step state update request
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.UpdateStepStateRequest.Name">
<summary>
Name of the step
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.UpdateStepStateRequest.PausedByUserId">
<summary>
User who paused the step
</summary>
</member>
<member name="T:EpicGames.Horde.Streams.UpdateTemplateRefRequest">
<summary>
Updates an existing stream template ref
</summary>
</member>
<member name="P:EpicGames.Horde.Streams.UpdateTemplateRefRequest.StepStates">
<summary>
Step states to update
</summary>
</member>
<member name="T:EpicGames.Horde.StringId">
<summary>
Normalized string identifier for a resource
</summary>
</member>
<member name="T:EpicGames.Horde.StringId.Validate">
<summary>
Enum used to disable validation on string arguments
</summary>
</member>
<member name="F:EpicGames.Horde.StringId.Validate.None">
<summary>
No validation required
</summary>
</member>
<member name="F:EpicGames.Horde.StringId.MaxLength">
<summary>
Maximum length for a string id
</summary>
</member>
<member name="P:EpicGames.Horde.StringId.Text">
<summary>
The text representing this id
</summary>
</member>
<member name="P:EpicGames.Horde.StringId.Span">
<summary>
Accessor for the string bytes
</summary>
</member>
<member name="P:EpicGames.Horde.StringId.Memory">
<summary>
Accessor for the string bytes
</summary>
</member>
<member name="M:EpicGames.Horde.StringId.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="text">Unique id for the string</param>
</member>
<member name="M:EpicGames.Horde.StringId.#ctor(EpicGames.Core.Utf8String)">
<summary>
Constructor
</summary>
<param name="text">Unique id for the string</param>
</member>
<member name="M:EpicGames.Horde.StringId.#ctor(EpicGames.Core.Utf8String,EpicGames.Horde.StringId.Validate)">
<summary>
Constructor
</summary>
<param name="text">Unique id for the string</param>
<param name="validate">Argument used for overload resolution for pre-validated strings</param>
</member>
<member name="P:EpicGames.Horde.StringId.IsEmpty">
<summary>
Checks whether this StringId is set
</summary>
</member>
<member name="M:EpicGames.Horde.StringId.Sanitize(System.String)">
<summary>
Generates a new string id from the given text
</summary>
<param name="text">Text to generate from</param>
<returns>New string id</returns>
</member>
<member name="M:EpicGames.Horde.StringId.ValidateArgument(EpicGames.Core.Utf8String,System.String)">
<summary>
Validates the given string as a StringId, normalizing it if necessary.
</summary>
<param name="text">Text to validate as a StringId</param>
<param name="paramName">Name of the parameter to show if invalid characters are returned.</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.StringId.ToLower(EpicGames.Core.Utf8String)">
<summary>
Converts a utf8 string to lowercase
</summary>
<param name="text"></param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.StringId.IsValidCharacter(System.Char)">
<summary>
Checks whether the given character is valid within a string id
</summary>
<param name="character">The character to check</param>
<returns>True if the character is valid</returns>
</member>
<member name="M:EpicGames.Horde.StringId.IsValidCharacter(System.Byte)">
<summary>
Checks whether the given character is valid within a string id
</summary>
<param name="character">The character to check</param>
<returns>True if the character is valid</returns>
</member>
<member name="M:EpicGames.Horde.StringId.Equals(System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringId.GetHashCode">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringId.Equals(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringId.Equals(System.String)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringId.Equals(System.ReadOnlyMemory{System.Char})">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringId.ToString">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringId.op_Equality(EpicGames.Horde.StringId,EpicGames.Horde.StringId)">
<summary>
Compares two string ids for equality
</summary>
<param name="left">The first string id</param>
<param name="right">Second string id</param>
<returns>True if the two string ids are equal</returns>
</member>
<member name="M:EpicGames.Horde.StringId.op_Inequality(EpicGames.Horde.StringId,EpicGames.Horde.StringId)">
<summary>
Compares two string ids for inequality
</summary>
<param name="left">The first string id</param>
<param name="right">Second string id</param>
<returns>True if the two string ids are not equal</returns>
</member>
<member name="T:EpicGames.Horde.StringIdJsonConverter">
<summary>
Class which serializes <see cref="T:EpicGames.Horde.StringId"/> types
</summary>
</member>
<member name="M:EpicGames.Horde.StringIdJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdJsonConverter.Write(System.Text.Json.Utf8JsonWriter,EpicGames.Horde.StringId,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.StringIdTypeConverter">
<summary>
Class which serializes <see cref="T:EpicGames.Horde.StringId"/> types
</summary>
</member>
<member name="M:EpicGames.Horde.StringIdTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.StringIdConverter`1">
<summary>
Base class for converting to and from types containing a <see cref="T:EpicGames.Horde.StringId"/>. Useful pattern for reducing boilerplate with strongly typed records.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:EpicGames.Horde.StringIdConverter`1.ToStringId(`0)">
<summary>
Converts a type to a <see cref="T:EpicGames.Horde.StringId"/>
</summary>
</member>
<member name="M:EpicGames.Horde.StringIdConverter`1.FromStringId(EpicGames.Horde.StringId)">
<summary>
Constructs a type from a <see cref="T:EpicGames.Horde.StringId"/>
</summary>
</member>
<member name="T:EpicGames.Horde.StringIdConverterAttribute">
<summary>
Attribute declaring a <see cref="T:EpicGames.Horde.StringIdConverter`1"/> for a particular type
</summary>
</member>
<member name="P:EpicGames.Horde.StringIdConverterAttribute.ConverterType">
<summary>
The converter type
</summary>
</member>
<member name="M:EpicGames.Horde.StringIdConverterAttribute.#ctor(System.Type)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.StringIdCbConverter`2">
<summary>
Converter to compact binary objects
</summary>
</member>
<member name="M:EpicGames.Horde.StringIdCbConverter`2.Read(EpicGames.Serialization.CbField)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdCbConverter`2.Write(EpicGames.Serialization.CbWriter,`0)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdCbConverter`2.WriteNamed(EpicGames.Serialization.CbWriter,EpicGames.Serialization.CbFieldName,`0)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.StringIdTypeConverter`2">
<summary>
Class which serializes types with a <see cref="T:EpicGames.Horde.StringIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.StringIdTypeConverter`2.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdTypeConverter`2.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdTypeConverter`2.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdTypeConverter`2.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.StringIdJsonConverter`2">
<summary>
Class which serializes types with a <see cref="T:EpicGames.Horde.StringIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.StringIdJsonConverter`2.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdJsonConverter`2.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdJsonConverter`2.ReadAsPropertyName(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdJsonConverter`2.WriteAsPropertyName(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.StringIdJsonConverterFactory">
<summary>
Creates constructors for types with a <see cref="T:EpicGames.Horde.StringIdConverter`1"/> to Json
</summary>
</member>
<member name="M:EpicGames.Horde.StringIdJsonConverterFactory.CanConvert(System.Type)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.StringIdJsonConverterFactory.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Symbols.SymbolStoreId">
<summary>
Identifier for a symbol store
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Symbols.SymbolStoreId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a symbol store
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Symbols.SymbolStoreId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Symbols.SymbolStoreId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Symbols.SymbolStoreId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Symbols.SymbolStoreId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Symbols.SymbolStoreIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Symbols.SymbolStoreIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Symbols.SymbolStoreIdConverter.ToStringId(EpicGames.Horde.Symbols.SymbolStoreId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Symbols.SymStore">
<summary>
Provides functionality for hashing files to add to a Microsoft Symbol store.
* For PE-format files (EXE, DLL), this consists of the
* For PDB files, this consists of the PDB GUID followed by its age (the number of times it has been written).
</summary>
</member>
<member name="M:EpicGames.Horde.Symbols.SymStore.GetHashAsync(EpicGames.Core.FileReference,Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Gets the hash of a file.
</summary>
<param name="file">File to hash</param>
<param name="logger">Logger for diagnostic messages</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Hash of the file, or null if it cannot be parsed.</returns>
</member>
<member name="M:EpicGames.Horde.Symbols.SymStore.GetExeHashAsync(EpicGames.Core.FileReference,System.Threading.CancellationToken)">
<summary>
Gets the hash for a Windows portable executable file, consisting of concatenated hex values for the timestamp and image size fields in the header.
Structures referenced below (IMAGE_DOS_HEADER, IMAGE_NT_HEADERS) are defined in Windows headers, but are parsed via offsets into the executable
to reduce messy marshalling in C#.
</summary>
</member>
<member name="M:EpicGames.Horde.Symbols.SymStore.GetPdbHash(EpicGames.Core.FileReference)">
<summary>
Parse the hash value from a PDB file, consisting of concatenated hex values for the PDB GUID and age (the number of times it has been written).
While the fields to obtain are at fairly straightforward offsets in particular data structures, PDBs are internally structured as an MSF file
consisting of multiple data streams with non-contiguous pages. There are a few references for parsing this format:
* LLVM documentation: https://llvm.org/docs/PDB/MsfFile.html
* Microsoft's PDB source code: https://github.com/microsoft/microsoft-pdb (particularly PDB/msf/msf.cpp)
This function only handles the BigMSF format.
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.Metrics.MetricId">
<summary>
Identifier for a particular metric
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Telemetry.Metrics.MetricId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a particular metric
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Telemetry.Metrics.MetricId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Telemetry.Metrics.MetricId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.Metrics.MetricId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Telemetry.Metrics.MetricId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Telemetry.Metrics.MetricIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Telemetry.Metrics.MetricIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Telemetry.Metrics.MetricIdConverter.ToStringId(EpicGames.Horde.Telemetry.Metrics.MetricId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Telemetry.PostTelemetryEventStreamRequest">
<summary>
Generic message for a telemetry event
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.PostTelemetryEventStreamRequest.Events">
<summary>
List of telemetry events
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryUploadType">
<summary>
Indicates the type of telemetry data being uploaded
</summary>
</member>
<member name="F:EpicGames.Horde.Telemetry.TelemetryUploadType.EtEventStream">
<summary>
A batch of <see cref="T:EpicGames.Horde.Telemetry.PostTelemetryEventStreamRequest"/> objects.
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.GetTelemetryMetricsResponse">
<summary>
Metrics matching a particular query
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryMetricsResponse.MetricId">
<summary>
The corresponding metric id
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryMetricsResponse.GroupBy">
<summary>
Metric grouping information
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryMetricsResponse.Metrics">
<summary>
Metrics matching the search terms
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.GetTelemetryMetricResponse">
<summary>
Information about a particular metric
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryMetricResponse.Time">
<summary>
Start time for the sample
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryMetricResponse.Group">
<summary>
Name of the group
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryMetricResponse.Value">
<summary>
Value for the metric
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryMetricUnitType">
<summary>
The units used to present the telemetry
</summary>
</member>
<member name="F:EpicGames.Horde.Telemetry.TelemetryMetricUnitType.Time">
<summary>
Time duration
</summary>
</member>
<member name="F:EpicGames.Horde.Telemetry.TelemetryMetricUnitType.Ratio">
<summary>
Ratio 0-100%
</summary>
</member>
<member name="F:EpicGames.Horde.Telemetry.TelemetryMetricUnitType.Value">
<summary>
Artbitrary numeric value
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryMetricGraphType">
<summary>
The type of
</summary>
</member>
<member name="F:EpicGames.Horde.Telemetry.TelemetryMetricGraphType.Line">
<summary>
A line graph
</summary>
</member>
<member name="F:EpicGames.Horde.Telemetry.TelemetryMetricGraphType.Indicator">
<summary>
Key performance indicator (KPI) chart with thrasholds
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryChartMetricConfig">
<summary>
Metric attached to a telemetry chart
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartMetricConfig.Id">
<summary>
Associated metric id
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartMetricConfig.Threshold">
<summary>
The threshold for KPI values
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartMetricConfig.Alias">
<summary>
The metric alias for display purposes
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryChartConfig">
<summary>
Telemetry chart configuraton
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartConfig.Name">
<summary>
The name of the chart, will be displayed on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartConfig.Display">
<summary>
The unit to display
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartConfig.Graph">
<summary>
The graph type
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartConfig.Metrics">
<summary>
List of configured metrics
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartConfig.Min">
<summary>
The min unit value for clamping chart
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryChartConfig.Max">
<summary>
The max unit value for clamping chart
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryCategoryConfig">
<summary>
A chart categody, will be displayed on the dashbord under an associated pivot
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryCategoryConfig.Name">
<summary>
The name of the category
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryCategoryConfig.Charts">
<summary>
The charts contained within the category
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryVariableConfig">
<summary>
A telemetry view variable used for filtering the charting data
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryVariableConfig.Name">
<summary>
The name of the variable for display purposes
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryVariableConfig.Group">
<summary>
The associated data group attached to the variable
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryVariableConfig.Defaults">
<summary>
The default values to select
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryViewConfig">
<summary>
A telemetry view of related metrics, divided into categofies
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryViewConfig.Id">
<summary>
Identifier for the view
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryViewConfig.Name">
<summary>
The name of the view
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryViewConfig.TelemetryStoreId">
<summary>
The telemetry store this view uses
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryViewConfig.Variables">
<summary>
The variables used to filter the view data
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryViewConfig.Categories">
<summary>
The categories contained within the view
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelmetryViewId">
<summary>
Identifier for a particular metric view
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelmetryViewId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a particular metric view
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelmetryViewId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelmetryViewId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelmetryViewId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelmetryViewId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelmetryViewIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelmetryViewIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelmetryViewIdConverter.ToStringId(EpicGames.Horde.Telemetry.TelmetryViewId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Telemetry.GetTelemetryChartMetricResponse">
<summary>
Metric attached to a telemetry chart
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartMetricResponse.MetricId">
<summary>
Associated metric id
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartMetricResponse.Threshold">
<summary>
The threshold for KPI values
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartMetricResponse.Alias">
<summary>
The metric alias for display purposes
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.GetTelemetryChartResponse">
<summary>
Telemetry chart configuraton
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartResponse.Name">
<summary>
The name of the chart, will be displayed on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartResponse.Display">
<summary>
The unit to display
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartResponse.Graph">
<summary>
The graph type
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartResponse.Metrics">
<summary>
List of configured metrics
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartResponse.Min">
<summary>
The min unit value for clamping chart
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryChartResponse.Max">
<summary>
The max unit value for clamping chart
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.GetTelemetryCategoryResponse">
<summary>
A chart categody, will be displayed on the dashbord under an associated pivot
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryCategoryResponse.Name">
<summary>
The name of the category
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryCategoryResponse.Charts">
<summary>
The charts contained within the category
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.GetTelemetryVariableResponse">
<summary>
A telemetry view variable used for filtering the charting data
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryVariableResponse.Name">
<summary>
The name of the variable for display purposes
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryVariableResponse.Group">
<summary>
The associated data group attached to the variable
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryVariableResponse.Defaults">
<summary>
The default values to select
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.GetTelemetryViewResponse">
<summary>
A telemetry view of related metrics, divided into categofies
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryViewResponse.Id">
<summary>
Identifier for the view
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryViewResponse.Name">
<summary>
The name of the view
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryViewResponse.TelemetryStoreId">
<summary>
The telemetry store the view uses
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryViewResponse.Variables">
<summary>
The variables used to filter the view data
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.GetTelemetryViewResponse.Categories">
<summary>
The categories contained within the view
</summary>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryStoreId">
<summary>
Identifier for a telemetry store
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelemetryStoreId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a telemetry store
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryStoreId.Id">
<summary>Id to construct from</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryStoreId.Default">
<summary>
Default telemetry store for Horde internal metrics
</summary>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelemetryStoreId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Telemetry.TelemetryStoreId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelemetryStoreId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Telemetry.TelemetryStoreIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelemetryStoreIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Telemetry.TelemetryStoreIdConverter.ToStringId(EpicGames.Horde.Telemetry.TelemetryStoreId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Tools.HttpToolCollection.#ctor(EpicGames.Horde.IHordeClient)">
<summary>
Constructor
</summary>
</member>
<member name="M:EpicGames.Horde.Tools.HttpToolCollection.GetAsync(EpicGames.Horde.Tools.ToolId,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Tools.HttpToolCollection.GetAllAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Tools.ITool">
<summary>
Describes a standalone, external tool hosted and deployed by Horde. Provides basic functionality for performing
gradual roll-out, versioning, etc...
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Id">
<summary>
Identifier for the tool
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Name">
<summary>
Name of the tool
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Description">
<summary>
Long-form description of the tool
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Category">
<summary>
Category for the tool on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Group">
<summary>
Grouping key for merging tool versions together on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Platforms">
<summary>
Supported platforms, as a NET runtime identifiers
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Public">
<summary>
Whether the tool is available to authenticated users
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Bundled">
<summary>
Whether the tool is bundled with the server
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.ShowInUgs">
<summary>
Whether to show the tool for download in UGS
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.ShowInDashboard">
<summary>
Whether to show the tool for download in the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.ShowInToolbox">
<summary>
Whether to show the tool for download in the toolbox
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Metadata">
<summary>
User-defined metadata for this tool
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ITool.Deployments">
<summary>
Current deployments of this tool, sorted by time.
</summary>
</member>
<member name="M:EpicGames.Horde.Tools.ITool.Authorize(EpicGames.Horde.Acls.AclAction,System.Security.Claims.ClaimsPrincipal)">
<summary>
Authorize a user to perform a particular action
</summary>
<param name="action">Action the user is trying to perform</param>
<param name="principal">Identity of the user trying to perform the action</param>
</member>
<member name="M:EpicGames.Horde.Tools.ITool.CreateDeploymentAsync(EpicGames.Horde.Tools.ToolDeploymentConfig,System.IO.Stream,System.Threading.CancellationToken)">
<summary>
Adds a new deployment to the given tool. The new deployment will replace the current active deployment.
</summary>
<param name="options">Options for the new deployment</param>
<param name="stream">Stream containing the tool data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Updated tool document, or null if it does not exist</returns>
</member>
<member name="M:EpicGames.Horde.Tools.ITool.CreateDeploymentAsync(EpicGames.Horde.Tools.ToolDeploymentConfig,EpicGames.Horde.Storage.HashedBlobRefValue,System.Threading.CancellationToken)">
<summary>
Adds a new deployment to the given tool. The new deployment will replace the current active deployment.
</summary>
<param name="options">Options for the new deployment</param>
<param name="target">Path to the root node containing the tool data</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Updated tool document, or null if it does not exist</returns>
</member>
<member name="M:EpicGames.Horde.Tools.ITool.GetStorageBackend">
<summary>
Gets the storage backend for this tool
</summary>
</member>
<member name="M:EpicGames.Horde.Tools.ITool.GetStorageNamespace">
<summary>
Gets the storage namespace for this particular tool
</summary>
</member>
<member name="T:EpicGames.Horde.Tools.IToolDeployment">
<summary>
Deployment of a tool
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.Id">
<summary>
Identifier for this deployment. A new identifier will be assigned to each created instance, so an identifier corresponds to a unique deployment.
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.Version">
<summary>
Descriptive version string for this tool revision
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.State">
<summary>
Current state of this deployment
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.Progress">
<summary>
Current progress of the deployment
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.StartedAt">
<summary>
Last time at which the progress started. Set to null if the deployment was paused.
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.Duration">
<summary>
Length of time over which to make the deployment
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.NamespaceId">
<summary>
Namespace containing the tool
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.RefName">
<summary>
Reference to this tool in Horde Storage.
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.IToolDeployment.Content">
<summary>
Handle to the tool data
</summary>
</member>
<member name="M:EpicGames.Horde.Tools.IToolDeployment.UpdateAsync(EpicGames.Horde.Tools.ToolDeploymentState,System.Threading.CancellationToken)">
<summary>
Updates the state of the current deployment
</summary>
<param name="state">New state of the deployment</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Tools.IToolDeployment.OpenZipStreamAsync(System.Threading.CancellationToken)">
<summary>
Opens a stream to the data for a particular deployment
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>Stream for the data</returns>
</member>
<member name="T:EpicGames.Horde.Tools.ToolDeploymentConfig">
<summary>
Options for a new deployment
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ToolDeploymentConfig.Version">
<inheritdoc cref="P:EpicGames.Horde.Tools.IToolDeployment.Version"/>
</member>
<member name="P:EpicGames.Horde.Tools.ToolDeploymentConfig.Duration">
<inheritdoc cref="P:EpicGames.Horde.Tools.IToolDeployment.Duration"/>
</member>
<member name="P:EpicGames.Horde.Tools.ToolDeploymentConfig.CreatePaused">
<summary>
Whether to create the deployment in a paused state
</summary>
</member>
<member name="T:EpicGames.Horde.Tools.ToolExtensions">
<summary>
Extension methods for tools
</summary>
</member>
<member name="M:EpicGames.Horde.Tools.ToolExtensions.GetCurrentDeployment(EpicGames.Horde.Tools.ITool,System.Double,System.DateTime)">
<summary>
Gets the current deployment
</summary>
<param name="tool">Tool to query</param>
<param name="phase">Adoption phase for the caller. 0 which the </param>
<param name="utcNow">Current time</param>
<returns></returns>
</member>
<member name="M:EpicGames.Horde.Tools.ToolExtensions.GetProgressValue(EpicGames.Horde.Tools.IToolDeployment,System.DateTime)">
<summary>
Get the progress fraction for a particular deployment and time
</summary>
<param name="deployment"></param>
<param name="utcNow"></param>
<returns></returns>
</member>
<member name="T:EpicGames.Horde.Tools.IToolCollection">
<summary>
Collection of tools
</summary>
</member>
<member name="M:EpicGames.Horde.Tools.IToolCollection.GetAsync(EpicGames.Horde.Tools.ToolId,System.Threading.CancellationToken)">
<summary>
Gets a tool with the given identifier
</summary>
<param name="id">The tool identifier</param>
<param name="cancellationToken">Cancellation token for the operation</param>
<returns>The requested tool, or null if it does not exist</returns>
</member>
<member name="M:EpicGames.Horde.Tools.IToolCollection.GetAllAsync(System.Threading.CancellationToken)">
<summary>
Gets all the available tools
</summary>
<param name="cancellationToken"></param>
<returns>List of the available tools</returns>
</member>
<member name="T:EpicGames.Horde.Tools.ToolDeploymentId">
<summary>
Identifier for a tool deployment
</summary>
<param name="Id">Identifier for the artifact</param>
</member>
<member name="M:EpicGames.Horde.Tools.ToolDeploymentId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a tool deployment
</summary>
<param name="Id">Identifier for the artifact</param>
</member>
<member name="P:EpicGames.Horde.Tools.ToolDeploymentId.Id">
<summary>Identifier for the artifact</summary>
</member>
<member name="M:EpicGames.Horde.Tools.ToolDeploymentId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Tools.ToolDeploymentId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Tools.ToolDeploymentIdConverter">
<summary>
Converter class to and from BinaryId values
</summary>
</member>
<member name="M:EpicGames.Horde.Tools.ToolDeploymentIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Tools.ToolDeploymentIdConverter.ToBinaryId(EpicGames.Horde.Tools.ToolDeploymentId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Tools.ToolId">
<summary>
Identifier for a tool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Tools.ToolId.#ctor(EpicGames.Horde.StringId)">
<summary>
Identifier for a tool
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Tools.ToolId.Id">
<summary>Id to construct from</summary>
</member>
<member name="M:EpicGames.Horde.Tools.ToolId.#ctor(System.String)">
<summary>
Constructor
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.ToolId.IsEmpty">
<inheritdoc cref="P:EpicGames.Horde.StringId.IsEmpty"/>
</member>
<member name="M:EpicGames.Horde.Tools.ToolId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Tools.ToolIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.StringId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Tools.ToolIdConverter.FromStringId(EpicGames.Horde.StringId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Tools.ToolIdConverter.ToStringId(EpicGames.Horde.Tools.ToolId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Tools.GetToolResponse">
<summary>
Describes a standalone, external tool hosted and deployed by Horde. Provides basic functionality for performing
gradual roll-out, versioning, etc...
</summary>
<param name="Id">Unique identifier for the tool</param>
<param name="Name">Name of the tool</param>
<param name="Description">Description for the tool</param>
<param name="Category">Category to display the tool in on the dashboard</param>
<param name="Group">Grouping key to control how different tools should be merged on the dashboard</param>
<param name="Platforms">List of platforms that this tool supports, as NET runtime identifiers.</param>
<param name="Deployments">Current deployments of this tool, sorted by time.</param>
<param name="Public">Whether this tool should be exposed for download on a public endpoint without authentication</param>
<param name="Bundled">Whether this tool is bundled with the server</param>
<param name="ShowInUgs">Whether to show this tool for download inside UGS</param>
<param name="ShowInDashboard">Whether to show this tool for download on the dashboard</param>
<param name="ShowInToolbox">Whether to show this tool for download in Unreal Toolbox</param>
<param name="Metadata">Metadata for the tool</param>
</member>
<member name="M:EpicGames.Horde.Tools.GetToolResponse.#ctor(EpicGames.Horde.Tools.ToolId,System.String,System.String,System.String,System.String,System.Collections.Generic.List{System.String},System.Collections.Generic.List{EpicGames.Horde.Tools.GetToolDeploymentResponse},System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
Describes a standalone, external tool hosted and deployed by Horde. Provides basic functionality for performing
gradual roll-out, versioning, etc...
</summary>
<param name="Id">Unique identifier for the tool</param>
<param name="Name">Name of the tool</param>
<param name="Description">Description for the tool</param>
<param name="Category">Category to display the tool in on the dashboard</param>
<param name="Group">Grouping key to control how different tools should be merged on the dashboard</param>
<param name="Platforms">List of platforms that this tool supports, as NET runtime identifiers.</param>
<param name="Deployments">Current deployments of this tool, sorted by time.</param>
<param name="Public">Whether this tool should be exposed for download on a public endpoint without authentication</param>
<param name="Bundled">Whether this tool is bundled with the server</param>
<param name="ShowInUgs">Whether to show this tool for download inside UGS</param>
<param name="ShowInDashboard">Whether to show this tool for download on the dashboard</param>
<param name="ShowInToolbox">Whether to show this tool for download in Unreal Toolbox</param>
<param name="Metadata">Metadata for the tool</param>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Id">
<summary>Unique identifier for the tool</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Name">
<summary>Name of the tool</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Description">
<summary>Description for the tool</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Category">
<summary>Category to display the tool in on the dashboard</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Group">
<summary>Grouping key to control how different tools should be merged on the dashboard</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Platforms">
<summary>List of platforms that this tool supports, as NET runtime identifiers.</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Deployments">
<summary>Current deployments of this tool, sorted by time.</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Public">
<summary>Whether this tool should be exposed for download on a public endpoint without authentication</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Bundled">
<summary>Whether this tool is bundled with the server</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.ShowInUgs">
<summary>Whether to show this tool for download inside UGS</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.ShowInDashboard">
<summary>Whether to show this tool for download on the dashboard</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.ShowInToolbox">
<summary>Whether to show this tool for download in Unreal Toolbox</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolResponse.Metadata">
<summary>Metadata for the tool</summary>
</member>
<member name="T:EpicGames.Horde.Tools.GetToolSummaryResponse">
<summary>
Summary for a particular tool.
</summary>
<param name="Id">Unique identifier for the tool</param>
<param name="Name">Name of the tool</param>
<param name="Description">Description for the tool</param>
<param name="Category">Category to display the tool in on the dashboard</param>
<param name="Group">Grouping key to control how different tools should be merged on the dashboard</param>
<param name="Platforms">List of platforms that this tool supports, as NET runtime identifiers.</param>
<param name="Version">Version number of the current deployment of this tool</param>
<param name="DeploymentId">Identifier for the current deployment</param>
<param name="DeploymentState">Current state of the deployment</param>
<param name="DeploymentProgress">Current progress of the deployment</param>
<param name="Bundled">Whether this tool is bundled with the server</param>
<param name="ShowInUgs">Whether to show this tool for download inside UGS</param>
<param name="ShowInDashboard">Whether to show this tool for download on the dashboard</param>
<param name="ShowInToolbox">Whether to show this tool for download in the launcher</param>
<param name="Metadata">Metadata for the tool</param>
</member>
<member name="M:EpicGames.Horde.Tools.GetToolSummaryResponse.#ctor(EpicGames.Horde.Tools.ToolId,System.String,System.String,System.String,System.String,System.Collections.Generic.List{System.String},System.String,System.Nullable{EpicGames.Horde.Tools.ToolDeploymentId},System.Nullable{EpicGames.Horde.Tools.ToolDeploymentState},System.Nullable{System.Double},System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
Summary for a particular tool.
</summary>
<param name="Id">Unique identifier for the tool</param>
<param name="Name">Name of the tool</param>
<param name="Description">Description for the tool</param>
<param name="Category">Category to display the tool in on the dashboard</param>
<param name="Group">Grouping key to control how different tools should be merged on the dashboard</param>
<param name="Platforms">List of platforms that this tool supports, as NET runtime identifiers.</param>
<param name="Version">Version number of the current deployment of this tool</param>
<param name="DeploymentId">Identifier for the current deployment</param>
<param name="DeploymentState">Current state of the deployment</param>
<param name="DeploymentProgress">Current progress of the deployment</param>
<param name="Bundled">Whether this tool is bundled with the server</param>
<param name="ShowInUgs">Whether to show this tool for download inside UGS</param>
<param name="ShowInDashboard">Whether to show this tool for download on the dashboard</param>
<param name="ShowInToolbox">Whether to show this tool for download in the launcher</param>
<param name="Metadata">Metadata for the tool</param>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Id">
<summary>Unique identifier for the tool</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Name">
<summary>Name of the tool</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Description">
<summary>Description for the tool</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Category">
<summary>Category to display the tool in on the dashboard</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Group">
<summary>Grouping key to control how different tools should be merged on the dashboard</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Platforms">
<summary>List of platforms that this tool supports, as NET runtime identifiers.</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Version">
<summary>Version number of the current deployment of this tool</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.DeploymentId">
<summary>Identifier for the current deployment</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.DeploymentState">
<summary>Current state of the deployment</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.DeploymentProgress">
<summary>Current progress of the deployment</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Bundled">
<summary>Whether this tool is bundled with the server</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.ShowInUgs">
<summary>Whether to show this tool for download inside UGS</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.ShowInDashboard">
<summary>Whether to show this tool for download on the dashboard</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.ShowInToolbox">
<summary>Whether to show this tool for download in the launcher</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolSummaryResponse.Metadata">
<summary>Metadata for the tool</summary>
</member>
<member name="T:EpicGames.Horde.Tools.GetToolsSummaryResponse">
<summary>
Response when querying all tools
</summary>
<param name="Tools">List of tools currently available</param>
</member>
<member name="M:EpicGames.Horde.Tools.GetToolsSummaryResponse.#ctor(System.Collections.Generic.List{EpicGames.Horde.Tools.GetToolSummaryResponse})">
<summary>
Response when querying all tools
</summary>
<param name="Tools">List of tools currently available</param>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolsSummaryResponse.Tools">
<summary>List of tools currently available</summary>
</member>
<member name="T:EpicGames.Horde.Tools.GetToolDeploymentResponse">
<summary>
Response object describing the deployment of a tool
</summary>
<param name="Id">Identifier for this deployment. A new identifier will be assigned to each created instance, so an identifier corresponds to a unique deployment.</param>
<param name="Version">Descriptive version string for this tool revision</param>
<param name="State">Current state of this deployment</param>
<param name="Progress">Current progress of the deployment</param>
<param name="StartedAt">Last time at which the progress started. Set to null if the deployment was paused.</param>
<param name="Duration">Length of time over which to make the deployment</param>
<param name="RefName">Reference to the deployment data</param>
<param name="Locator">Reference to this tool in Horde Storage</param>
</member>
<member name="M:EpicGames.Horde.Tools.GetToolDeploymentResponse.#ctor(EpicGames.Horde.Tools.ToolDeploymentId,System.String,EpicGames.Horde.Tools.ToolDeploymentState,System.Double,System.Nullable{System.DateTime},System.TimeSpan,EpicGames.Horde.Storage.RefName,EpicGames.Horde.Storage.BlobLocator)">
<summary>
Response object describing the deployment of a tool
</summary>
<param name="Id">Identifier for this deployment. A new identifier will be assigned to each created instance, so an identifier corresponds to a unique deployment.</param>
<param name="Version">Descriptive version string for this tool revision</param>
<param name="State">Current state of this deployment</param>
<param name="Progress">Current progress of the deployment</param>
<param name="StartedAt">Last time at which the progress started. Set to null if the deployment was paused.</param>
<param name="Duration">Length of time over which to make the deployment</param>
<param name="RefName">Reference to the deployment data</param>
<param name="Locator">Reference to this tool in Horde Storage</param>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolDeploymentResponse.Id">
<summary>Identifier for this deployment. A new identifier will be assigned to each created instance, so an identifier corresponds to a unique deployment.</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolDeploymentResponse.Version">
<summary>Descriptive version string for this tool revision</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolDeploymentResponse.State">
<summary>Current state of this deployment</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolDeploymentResponse.Progress">
<summary>Current progress of the deployment</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolDeploymentResponse.StartedAt">
<summary>Last time at which the progress started. Set to null if the deployment was paused.</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolDeploymentResponse.Duration">
<summary>Length of time over which to make the deployment</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolDeploymentResponse.RefName">
<summary>Reference to the deployment data</summary>
</member>
<member name="P:EpicGames.Horde.Tools.GetToolDeploymentResponse.Locator">
<summary>Reference to this tool in Horde Storage</summary>
</member>
<member name="T:EpicGames.Horde.Tools.CreateToolDeploymentRequest">
<summary>
Request for creating a new deployment
</summary>
<param name="Version">Nominal version string for this deployment</param>
<param name="Duration">Number of minutes over which to do the deployment</param>
<param name="CreatePaused">Whether to create the deployment in a paused state</param>
<param name="Content">Handle to a directory node with the content for the deployment</param>
</member>
<member name="M:EpicGames.Horde.Tools.CreateToolDeploymentRequest.#ctor(System.String,System.Nullable{System.Double},System.Nullable{System.Boolean},EpicGames.Horde.Storage.HashedBlobRefValue)">
<summary>
Request for creating a new deployment
</summary>
<param name="Version">Nominal version string for this deployment</param>
<param name="Duration">Number of minutes over which to do the deployment</param>
<param name="CreatePaused">Whether to create the deployment in a paused state</param>
<param name="Content">Handle to a directory node with the content for the deployment</param>
</member>
<member name="P:EpicGames.Horde.Tools.CreateToolDeploymentRequest.Version">
<summary>Nominal version string for this deployment</summary>
</member>
<member name="P:EpicGames.Horde.Tools.CreateToolDeploymentRequest.Duration">
<summary>Number of minutes over which to do the deployment</summary>
</member>
<member name="P:EpicGames.Horde.Tools.CreateToolDeploymentRequest.CreatePaused">
<summary>Whether to create the deployment in a paused state</summary>
</member>
<member name="P:EpicGames.Horde.Tools.CreateToolDeploymentRequest.Content">
<summary>Handle to a directory node with the content for the deployment</summary>
</member>
<member name="T:EpicGames.Horde.Tools.CreateToolDeploymentResponse">
<summary>
Response from creating a deployment
</summary>
<param name="Id">Identifier for the created deployment</param>
</member>
<member name="M:EpicGames.Horde.Tools.CreateToolDeploymentResponse.#ctor(EpicGames.Horde.Tools.ToolDeploymentId)">
<summary>
Response from creating a deployment
</summary>
<param name="Id">Identifier for the created deployment</param>
</member>
<member name="P:EpicGames.Horde.Tools.CreateToolDeploymentResponse.Id">
<summary>Identifier for the created deployment</summary>
</member>
<member name="T:EpicGames.Horde.Tools.ToolDeploymentState">
<summary>
Current state of a tool's deployment
</summary>
</member>
<member name="F:EpicGames.Horde.Tools.ToolDeploymentState.Active">
<summary>
The deployment is ongoing
</summary>
</member>
<member name="F:EpicGames.Horde.Tools.ToolDeploymentState.Paused">
<summary>
The deployment should be paused at its current state
</summary>
</member>
<member name="F:EpicGames.Horde.Tools.ToolDeploymentState.Complete">
<summary>
Deployment of this version is complete
</summary>
</member>
<member name="F:EpicGames.Horde.Tools.ToolDeploymentState.Cancelled">
<summary>
The deployment has been cancelled.
</summary>
</member>
<member name="T:EpicGames.Horde.Tools.UpdateDeploymentRequest">
<summary>
Update an existing deployment
</summary>
</member>
<member name="P:EpicGames.Horde.Tools.UpdateDeploymentRequest.State">
<summary>
New state for the deployment
</summary>
</member>
<member name="T:EpicGames.Horde.Tools.GetToolAction">
<summary>
Action for a deployment
</summary>
</member>
<member name="F:EpicGames.Horde.Tools.GetToolAction.Info">
<summary>
Query for information about the deployment
</summary>
</member>
<member name="F:EpicGames.Horde.Tools.GetToolAction.Download">
<summary>
Download the deployment data
</summary>
</member>
<member name="F:EpicGames.Horde.Tools.GetToolAction.Zip">
<summary>
Download the deployment data as a zip file
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.UgsUserVote">
<summary>
Review by a user of a particular change
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsUserVote.None">
<summary>
No vote for the current change
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsUserVote.CompileSuccess">
<summary>
Succesfully compiled the change
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsUserVote.CompileFailure">
<summary>
Failed to compile the change
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsUserVote.Good">
<summary>
Manually marked the change as good
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsUserVote.Bad">
<summary>
Manually marked the change as bad
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.UgsBadgeState">
<summary>
State of a badge
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsBadgeState.Starting">
<summary>
Starting work on this badge, outcome currently unknown
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsBadgeState.Failure">
<summary>
Badge failed
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsBadgeState.Warning">
<summary>
Badge produced a warning
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsBadgeState.Success">
<summary>
Badge succeeded
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsBadgeState.Skipped">
<summary>
Badge was skipped
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.AddUgsBadgeRequest">
<summary>
Adds a new badge to the change
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsBadgeRequest.Name">
<summary>
Name of the badge
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsBadgeRequest.Url">
<summary>
Url for the badge
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsBadgeRequest.State">
<summary>
Current status of the badge
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.AddUgsMetadataRequest">
<summary>
Request object for adding new metadata to the server
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Stream">
<summary>
The stream name
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Change">
<summary>
The changelist number
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Project">
<summary>
The project name
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.UserName">
<summary>
Name of the current user
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Synced">
<summary>
Whether this changelist has been synced by the user
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Vote">
<summary>
State of the user
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Starred">
<summary>
New starred state for the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Investigating">
<summary>
Whether the user is investigating
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Comment">
<summary>
Comment for this change
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.AddUgsMetadataRequest.Badges">
<summary>
List of badges to add
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.GetUgsUserResponse">
<summary>
Information about a user synced to a change
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsUserResponse.User">
<summary>
Name of the user
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsUserResponse.SyncTime">
<summary>
Time that the change was synced
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsUserResponse.Vote">
<summary>
State of the user
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsUserResponse.Comment">
<summary>
Comment by this user
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsUserResponse.Investigating">
<summary>
Whether the user is investigating this change
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsUserResponse.Starred">
<summary>
Whether this changelist is starred
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.GetUgsBadgeResponse">
<summary>
Information about a badge
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsBadgeResponse.Name">
<summary>
Name of the badge
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsBadgeResponse.Url">
<summary>
Url for the badge
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsBadgeResponse.State">
<summary>
Current status of the badge
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.GetUgsMetadataResponse">
<summary>
Response object for querying metadata
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsMetadataResponse.Change">
<summary>
Number of the changelist
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsMetadataResponse.Project">
<summary>
The project name
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsMetadataResponse.Users">
<summary>
Information about a user synced to this change
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsMetadataResponse.Badges">
<summary>
Badges for this change
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.GetUgsMetadataListResponse">
<summary>
Response object for querying metadata
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsMetadataListResponse.SequenceNumber">
<summary>
Last time that the metadata was modified
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsMetadataListResponse.Items">
<summary>
List of changes matching the requested criteria
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.UgsIssueBuildOutcome">
<summary>
Outcome of a particular build
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsIssueBuildOutcome.Unknown">
<summary>
Unknown outcome
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsIssueBuildOutcome.Success">
<summary>
Build succeeded
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsIssueBuildOutcome.Error">
<summary>
Build failed
</summary>
</member>
<member name="F:EpicGames.Horde.Ugs.UgsIssueBuildOutcome.Warning">
<summary>
Build finished with warnings
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse">
<summary>
Legacy response describing a build
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.Id">
<summary>
Identifier for this build
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.Stream">
<summary>
Path to the stream containing this build
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.Change">
<summary>
The changelist number for this build
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.JobName">
<summary>
Name of this job
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.JobUrl">
<summary>
Link to the job
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.JobStepName">
<summary>
Name of the job step
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.JobStepUrl">
<summary>
Link to the job step
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.ErrorUrl">
<summary>
Url for this particular error
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.Outcome">
<summary>
Outcome of this build (see <see cref="T:EpicGames.Horde.Issues.IssueBuildOutcome"/>)
</summary>
</member>
<member name="M:EpicGames.Horde.Ugs.GetUgsIssueBuildResponse.#ctor(System.String,System.Int32,EpicGames.Horde.Issues.IssueBuildOutcome)">
<summary>
</summary>
<param name="stream"></param>
<param name="change"></param>
<param name="outcome"></param>
</member>
<member name="T:EpicGames.Horde.Ugs.GetUgsIssueDiagnosticResponse">
<summary>
Information about a diagnostic
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueDiagnosticResponse.BuildId">
<summary>
The corresponding build id
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueDiagnosticResponse.Message">
<summary>
Message for the diagnostic
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueDiagnosticResponse.Url">
<summary>
Link to the error
</summary>
</member>
<member name="M:EpicGames.Horde.Ugs.GetUgsIssueDiagnosticResponse.#ctor(System.Nullable{System.Int64},System.String,System.Uri)">
<summary>
Constructor
</summary>
<param name="buildId">The corresponding build id</param>
<param name="message">Message for the diagnostic</param>
<param name="url">Link to the diagnostic</param>
</member>
<member name="T:EpicGames.Horde.Ugs.GetUgsIssueResponse">
<summary>
Stores information about a build health issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.Version">
<summary>
Version number for this response
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.Id">
<summary>
The unique object id
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.CreatedAt">
<summary>
Time at which the issue was created
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.RetrievedAt">
<summary>
Time at which the issue was retrieved
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.Project">
<summary>
The associated project for the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.Summary">
<summary>
The summary text for this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.Owner">
<summary>
Owner of the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.NominatedBy">
<summary>
User that nominated the current owner
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.AcknowledgedAt">
<summary>
Time that the issue was acknowledged
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.FixChange">
<summary>
Changelist that fixed this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.ResolvedAt">
<summary>
Time at which the issue was resolved
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.BNotify">
<summary>
Whether to notify the user about this issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.BWarning">
<summary>
Whether this issue just contains warnings
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.BuildUrl">
<summary>
Link to the last build
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.GetUgsIssueResponse.Streams">
<summary>
List of streams affected by this issue
</summary>
</member>
<member name="T:EpicGames.Horde.Ugs.UpdateUgsIssueRequest">
<summary>
Request an issue to be updated
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.UpdateUgsIssueRequest.Owner">
<summary>
New owner of the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.UpdateUgsIssueRequest.NominatedBy">
<summary>
User than nominates the new owner
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.UpdateUgsIssueRequest.Acknowledged">
<summary>
Whether the issue has been acknowledged
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.UpdateUgsIssueRequest.DeclinedBy">
<summary>
Name of the user that declines the issue
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.UpdateUgsIssueRequest.FixChange">
<summary>
The change at which the issue is claimed fixed. 0 = not fixed, -1 = systemic issue.
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.UpdateUgsIssueRequest.Resolved">
<summary>
Whether the issue should be marked as resolved
</summary>
</member>
<member name="P:EpicGames.Horde.Ugs.UpdateUgsIssueRequest.ResolvedBy">
<summary>
Name of the user that resolved the issue
</summary>
</member>
<member name="T:EpicGames.Horde.Users.UserId">
<summary>
Identifier for a user
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="M:EpicGames.Horde.Users.UserId.#ctor(EpicGames.Horde.BinaryId)">
<summary>
Identifier for a user
</summary>
<param name="Id">Id to construct from</param>
</member>
<member name="P:EpicGames.Horde.Users.UserId.Id">
<summary>Id to construct from</summary>
</member>
<member name="P:EpicGames.Horde.Users.UserId.Empty">
<summary>
Constant value for empty user id
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UserId.Anonymous">
<summary>
Special user id for an anonymous administrator
</summary>
</member>
<member name="M:EpicGames.Horde.Users.UserId.Parse(System.String)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.Parse(System.String)"/>
</member>
<member name="M:EpicGames.Horde.Users.UserId.TryParse(System.String,EpicGames.Horde.Users.UserId@)">
<inheritdoc cref="M:EpicGames.Horde.BinaryId.TryParse(System.String,EpicGames.Horde.BinaryId@)"/>
</member>
<member name="M:EpicGames.Horde.Users.UserId.ToString">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Users.UserIdConverter">
<summary>
Converter to and from <see cref="T:EpicGames.Horde.BinaryId"/> instances.
</summary>
</member>
<member name="M:EpicGames.Horde.Users.UserIdConverter.FromBinaryId(EpicGames.Horde.BinaryId)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Users.UserIdConverter.ToBinaryId(EpicGames.Horde.Users.UserId)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Users.GetUserResponse">
<summary>
Response describing the current user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.Id">
<summary>
Id of the user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.Name">
<summary>
Name of the user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.Image24">
<summary>
Avatar image URL (24px)
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.Image32">
<summary>
Avatar image URL (32px)
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.Image48">
<summary>
Avatar image URL (48px)
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.Image72">
<summary>
Avatar image URL (72px)
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.Email">
<summary>
Email of the user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.Claims">
<summary>
Claims for the user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.EnableExperimentalFeatures">
<summary>
Whether to enable experimental features for this user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.AlwaysTagPreflightCL">
<summary>
Whether to always tag preflight changelists
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.DashboardSettings">
<summary>
Settings for the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.DashboardFeatures">
<summary>
Settings for whether various dashboard features should be shown for the current user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.JobTemplateSettings">
<summary>
User job template preferences
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.PinnedJobIds">
<summary>
List of pinned job ids
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserResponse.PinnedBisectTaskIds">
<summary>
List of pinned bisection task ids
</summary>
</member>
<member name="M:EpicGames.Horde.Users.GetUserResponse.#ctor(EpicGames.Horde.Users.UserId,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Users.GetUserClaimResponse">
<summary>
New claim document
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserClaimResponse.Type">
<summary>
Type of the claim
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserClaimResponse.Value">
<summary>
Value for the claim
</summary>
</member>
<member name="M:EpicGames.Horde.Users.GetUserClaimResponse.#ctor(System.String,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Users.UserAclPermission">
<summary>
Resolved permissions for an action in a given ACL scope
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UserAclPermission.Scope">
<summary>
Scope name
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UserAclPermission.Action">
<summary>
Action name
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UserAclPermission.IsAuthorized">
<summary>
Whether action is authorized in given scope
</summary>
</member>
<member name="M:EpicGames.Horde.Users.UserAclPermission.#ctor(System.String,System.String,System.Boolean)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Users.GetUserAclPermissionsResponse">
<summary>
Resolved permissions for ACL scopes for a given user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetUserAclPermissionsResponse.AclPermissions">
<summary>
List of ACL permissions
</summary>
</member>
<member name="M:EpicGames.Horde.Users.GetUserAclPermissionsResponse.#ctor(System.Collections.Generic.List{EpicGames.Horde.Users.UserAclPermission})">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Users.GetJobTemplateSettingsResponse">
<summary>
Job template settings for the current user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetJobTemplateSettingsResponse.StreamId">
<summary>
The stream the job was run in
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetJobTemplateSettingsResponse.TemplateId">
<summary>
The template id of the job
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetJobTemplateSettingsResponse.TemplateHash">
<summary>
The hash of the template definition
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetJobTemplateSettingsResponse.Arguments">
<summary>
The arguments defined when creating the job
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetJobTemplateSettingsResponse.UpdateTimeUtc">
<summary>
The last update time of the job template
</summary>
</member>
<member name="M:EpicGames.Horde.Users.GetJobTemplateSettingsResponse.#ctor(System.String,System.String,System.String,System.Collections.Generic.List{System.String},System.DateTime)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Users.GetDashboardFeaturesResponse">
<summary>
Settings for whether various features should be enabled on the dashboard
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowLandingPage">
<summary>
Navigate to the landing page by default
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.LandingPageRoute">
<summary>
Custom landing page route to direct users to
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowCI">
<summary>
Enable CI functionality
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowAgents">
<summary>
Whether to show functionality related to agents, pools, and utilization on the dashboard.
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowAgentRegistration">
<summary>
Whether to show the agent registration page. When using registration tokens from elsewhere this is not needed.
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowPerforceServers">
<summary>
Show the Perforce server option on the server menu
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowDeviceManager">
<summary>
Show the device manager on the server menu
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowTests">
<summary>
Show automated tests on the server menu
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowAccounts">
<summary>
Whether the remote desktop button should be shown on the agent modal
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowNoticeEditor">
<summary>
Whether the notice editor should be listed in the server menu
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowPoolEditor">
<summary>
Whether controls for modifying pools should be shown
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetDashboardFeaturesResponse.ShowRemoteDesktop">
<summary>
Whether the remote desktop button should be shown on the agent modal
</summary>
</member>
<member name="T:EpicGames.Horde.Users.GetThinUserInfoResponse">
<summary>
Basic information about a user. May be embedded in other responses.
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetThinUserInfoResponse.Id">
<summary>
Id of the user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetThinUserInfoResponse.Name">
<summary>
Name of the user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetThinUserInfoResponse.Email">
<summary>
The user's email address
</summary>
</member>
<member name="P:EpicGames.Horde.Users.GetThinUserInfoResponse.Login">
<summary>
The user login [DEPRECATED]
</summary>
</member>
<member name="M:EpicGames.Horde.Users.GetThinUserInfoResponse.#ctor(EpicGames.Horde.Users.UserId,System.String,System.String,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:EpicGames.Horde.Users.UpdateUserRequest">
<summary>
Request to update settings for a user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UpdateUserRequest.EnableExperimentalFeatures">
<summary>
Whether to enable experimental features for this user
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UpdateUserRequest.AlwaysTagPreflightCL">
<summary>
Whether to always tag preflight CL
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UpdateUserRequest.DashboardSettings">
<summary>
New dashboard settings
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UpdateUserRequest.AddPinnedJobIds">
<summary>
Job ids to add to the pinned list
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UpdateUserRequest.RemovePinnedJobIds">
<summary>
Jobs ids to remove from the pinned list
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UpdateUserRequest.AddPinnedBisectTaskIds">
<summary>
Bisection task ids to add to the pinned list
</summary>
</member>
<member name="P:EpicGames.Horde.Users.UpdateUserRequest.RemovePinnedBisectTaskIds">
<summary>
Bisection task ids to remove from the pinned list
</summary>
</member>
<member name="T:EpicGames.Horde.Utilities.IntervalJsonConverter">
<summary>
Converts TimeSpan intervals from formats like "30m", "1h30m", etc...
</summary>
</member>
<member name="M:EpicGames.Horde.Utilities.IntervalJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Utilities.IntervalJsonConverter.Parse(System.String)">
<summary>
Parse a string as a time interval
</summary>
</member>
<member name="M:EpicGames.Horde.Utilities.IntervalJsonConverter.Write(System.Text.Json.Utf8JsonWriter,System.TimeSpan,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Utilities.OpenTelemetrySettings">
<summary>
OpenTelemetry configuration for collection and sending of traces and metrics.
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetrySettings.Enabled">
<summary>
Whether OpenTelemetry exporting is enabled
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetrySettings.ServiceName">
<summary>
Service name
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetrySettings.ServiceNamespace">
<summary>
Service namespace
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetrySettings.ServiceVersion">
<summary>
Service version
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetrySettings.EnableDatadogCompatibility">
<summary>
Whether to enrich and format telemetry to fit presentation in Datadog
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetrySettings.Attributes">
<summary>
Extra attributes to set
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetrySettings.EnableConsoleExporter">
<summary>
Whether to enable the console exporter (for debugging purposes)
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetrySettings.ProtocolExporters">
<summary>
Protocol exporters (key is a unique and arbitrary name)
</summary>
</member>
<member name="T:EpicGames.Horde.Utilities.OpenTelemetryProtocolExporterSettings">
<summary>
Configuration for an OpenTelemetry exporter
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetryProtocolExporterSettings.Endpoint">
<summary>
Endpoint URL. Usually differs depending on protocol used.
</summary>
</member>
<member name="P:EpicGames.Horde.Utilities.OpenTelemetryProtocolExporterSettings.Protocol">
<summary>
Protocol for the exporter ('grpc' or 'httpprotobuf')
</summary>
</member>
<member name="T:EpicGames.Horde.Utilities.OpenTelemetrySettingsExtensions">
<summary>
Provides extension methods for serializing and deserializing OpenTelemetrySettings
</summary>
</member>
<member name="M:EpicGames.Horde.Utilities.OpenTelemetrySettingsExtensions.Serialize(EpicGames.Horde.Utilities.OpenTelemetrySettings,System.Boolean)">
<summary>
Serializes OpenTelemetrySettings to a JSON string, with an option to encode as base64
</summary>
<param name="settings">OpenTelemetrySettings to serialize.</param>
<param name="asBase64">If true, the resulting JSON string is encoded as base64</param>
</member>
<member name="M:EpicGames.Horde.Utilities.OpenTelemetrySettingsExtensions.Deserialize(System.String,System.Boolean)">
<summary>
Deserializes a JSON string of OpenTelemetrySettings
</summary>
<param name="data">The string to deserialize, which can be either a JSON string or a Base64 encoded JSON string.</param>
<param name="asBase64">If true, the input string is treated as base64 encoded</param>
<returns>The deserialized OpenTelemetrySettings</returns>
<exception cref="T:System.Text.Json.JsonException">Thrown when deserialization fails or results in a null object.</exception>
</member>
<member name="T:EpicGames.Horde.Utilities.PlatformFileLock">
<summary>
Wraps a semaphore controlling the number of open files at any time. Used to prevent exceeding handle limit on MacOS.
</summary>
</member>
<member name="M:EpicGames.Horde.Utilities.PlatformFileLock.CreateAsync(System.Threading.CancellationToken)">
<summary>
Acquire the platform file lock
</summary>
<param name="cancellationToken">Cancellation token for the operation</param>
</member>
<member name="M:EpicGames.Horde.Utilities.PlatformFileLock.Dispose">
<inheritdoc/>
</member>
<member name="T:EpicGames.Horde.Utilities.TimeOfDayJsonConverter">
<summary>
Parses a time of day into a number of minutes since midnight
</summary>
</member>
<member name="M:EpicGames.Horde.Utilities.TimeOfDayJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Utilities.TimeOfDayJsonConverter.Write(System.Text.Json.Utf8JsonWriter,System.TimeSpan,System.Text.Json.JsonSerializerOptions)">
<inheritdoc/>
</member>
<member name="M:EpicGames.Horde.Utilities.TimeOfDayJsonConverter.Parse(System.String)">
<summary>
Parse a string as a number of minutes since midnight
</summary>
</member>
<member name="T:HordeServer.Jobs.IJobStepRef">
<summary>
Searchable reference to a jobstep
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.Id">
<summary>
Globally unique identifier for the jobstep being referenced
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.JobName">
<summary>
Name of the job
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.NodeName">
<summary>
Name of the name
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.StreamId">
<summary>
Unique id of the stream containing the job
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.TemplateId">
<summary>
Template for the job being executed
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.CommitId">
<summary>
The change number being built
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.LogId">
<summary>
Log for this step
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.PoolId">
<summary>
The agent type
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.AgentId">
<summary>
The agent id
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.Outcome">
<summary>
Outcome of the step, once complete.
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.UpdateIssues">
<summary>
Whether this step should update issues
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.IssueIds">
<summary>
Issues ids affecting this job step
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.LastSuccess">
<summary>
The last change that succeeded. Note that this is only set when the ref is updated; it is not necessarily consistent with steps run later.
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.LastWarning">
<summary>
The last change that succeeded, or completed a warning. See <see cref="P:HordeServer.Jobs.IJobStepRef.LastSuccess"/>.
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.BatchWaitTime">
<summary>
Time taken for the batch containing this batch to start after it became ready
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.BatchInitTime">
<summary>
Time taken for this batch to initialize
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.StartTimeUtc">
<summary>
Time at which the step started.
</summary>
</member>
<member name="P:HordeServer.Jobs.IJobStepRef.FinishTimeUtc">
<summary>
Time at which the step finished.
</summary>
</member>
<member name="T:HordeServer.Utilities.ConfigDocAttribute">
<summary>
Attribute indicating that an object should generate a schema doc page
</summary>
</member>
<member name="P:HordeServer.Utilities.ConfigDocAttribute.Title">
<summary>
Page title
</summary>
</member>
<member name="P:HordeServer.Utilities.ConfigDocAttribute.LinkRail">
<summary>
Rail to show with breadcrumbs at the top of the page
</summary>
</member>
<member name="P:HordeServer.Utilities.ConfigDocAttribute.FileName">
<summary>
Output filename
</summary>
</member>
<member name="P:HordeServer.Utilities.ConfigDocAttribute.Introduction">
<summary>
Optional introductory text on the page
</summary>
</member>
<member name="M:HordeServer.Utilities.ConfigDocAttribute.#ctor(System.String,System.String,System.String)">
<summary>
Constructor
</summary>
</member>
<member name="T:Horde.Common.Rpc.LogRpcReflection">
<summary>Holder for reflection information generated from horde/log_rpc.proto</summary>
</member>
<member name="P:Horde.Common.Rpc.LogRpcReflection.Descriptor">
<summary>File descriptor for horde/log_rpc.proto</summary>
</member>
<member name="P:Horde.Common.Rpc.LogRpc.Descriptor">
<summary>Service descriptor</summary>
</member>
<member name="T:Horde.Common.Rpc.LogRpc.LogRpcBase">
<summary>Base class for server-side implementations of LogRpc</summary>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcBase.UpdateLog(Horde.Common.Rpc.RpcUpdateLogRequest,Grpc.Core.ServerCallContext)">
<summary>
Update the current log state
</summary>
<param name="request">The request received from the client.</param>
<param name="context">The context of the server-side call handler being invoked.</param>
<returns>The response to send back to the client (wrapped by a task).</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcBase.UpdateLogTail(Grpc.Core.IAsyncStreamReader{Horde.Common.Rpc.RpcUpdateLogTailRequest},Grpc.Core.IServerStreamWriter{Horde.Common.Rpc.RpcUpdateLogTailResponse},Grpc.Core.ServerCallContext)">
<summary>
Long poll for requests to return unflushed log tail data
</summary>
<param name="requestStream">Used for reading requests from the client.</param>
<param name="responseStream">Used for sending responses back to the client.</param>
<param name="context">The context of the server-side call handler being invoked.</param>
<returns>A task indicating completion of the handler.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcBase.CreateLogEvents(Horde.Common.Rpc.RpcCreateLogEventsRequest,Grpc.Core.ServerCallContext)">
<summary>
Creates events for a log file, highlighting particular lines of interest
</summary>
<param name="request">The request received from the client.</param>
<param name="context">The context of the server-side call handler being invoked.</param>
<returns>The response to send back to the client (wrapped by a task).</returns>
</member>
<member name="T:Horde.Common.Rpc.LogRpc.LogRpcClient">
<summary>Client for LogRpc</summary>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.#ctor(Grpc.Core.ChannelBase)">
<summary>Creates a new client for LogRpc</summary>
<param name="channel">The channel to use to make remote calls.</param>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.#ctor(Grpc.Core.CallInvoker)">
<summary>Creates a new client for LogRpc that uses a custom <c>CallInvoker</c>.</summary>
<param name="callInvoker">The callInvoker to use to make remote calls.</param>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.#ctor">
<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration)">
<summary>Protected constructor to allow creation of configured clients.</summary>
<param name="configuration">The client configuration.</param>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.UpdateLog(Horde.Common.Rpc.RpcUpdateLogRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">
<summary>
Update the current log state
</summary>
<param name="request">The request to send to the server.</param>
<param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
<param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
<param name="cancellationToken">An optional token for canceling the call.</param>
<returns>The response received from the server.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.UpdateLog(Horde.Common.Rpc.RpcUpdateLogRequest,Grpc.Core.CallOptions)">
<summary>
Update the current log state
</summary>
<param name="request">The request to send to the server.</param>
<param name="options">The options for the call.</param>
<returns>The response received from the server.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.UpdateLogAsync(Horde.Common.Rpc.RpcUpdateLogRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">
<summary>
Update the current log state
</summary>
<param name="request">The request to send to the server.</param>
<param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
<param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
<param name="cancellationToken">An optional token for canceling the call.</param>
<returns>The call object.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.UpdateLogAsync(Horde.Common.Rpc.RpcUpdateLogRequest,Grpc.Core.CallOptions)">
<summary>
Update the current log state
</summary>
<param name="request">The request to send to the server.</param>
<param name="options">The options for the call.</param>
<returns>The call object.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.UpdateLogTail(Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">
<summary>
Long poll for requests to return unflushed log tail data
</summary>
<param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
<param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
<param name="cancellationToken">An optional token for canceling the call.</param>
<returns>The call object.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.UpdateLogTail(Grpc.Core.CallOptions)">
<summary>
Long poll for requests to return unflushed log tail data
</summary>
<param name="options">The options for the call.</param>
<returns>The call object.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.CreateLogEvents(Horde.Common.Rpc.RpcCreateLogEventsRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">
<summary>
Creates events for a log file, highlighting particular lines of interest
</summary>
<param name="request">The request to send to the server.</param>
<param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
<param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
<param name="cancellationToken">An optional token for canceling the call.</param>
<returns>The response received from the server.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.CreateLogEvents(Horde.Common.Rpc.RpcCreateLogEventsRequest,Grpc.Core.CallOptions)">
<summary>
Creates events for a log file, highlighting particular lines of interest
</summary>
<param name="request">The request to send to the server.</param>
<param name="options">The options for the call.</param>
<returns>The response received from the server.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.CreateLogEventsAsync(Horde.Common.Rpc.RpcCreateLogEventsRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">
<summary>
Creates events for a log file, highlighting particular lines of interest
</summary>
<param name="request">The request to send to the server.</param>
<param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
<param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
<param name="cancellationToken">An optional token for canceling the call.</param>
<returns>The call object.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.CreateLogEventsAsync(Horde.Common.Rpc.RpcCreateLogEventsRequest,Grpc.Core.CallOptions)">
<summary>
Creates events for a log file, highlighting particular lines of interest
</summary>
<param name="request">The request to send to the server.</param>
<param name="options">The options for the call.</param>
<returns>The call object.</returns>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.LogRpcClient.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration)">
<summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.BindService(Horde.Common.Rpc.LogRpc.LogRpcBase)">
<summary>Creates service definition that can be registered with a server</summary>
<param name="serviceImpl">An object implementing the server-side handling logic.</param>
</member>
<member name="M:Horde.Common.Rpc.LogRpc.BindService(Grpc.Core.ServiceBinderBase,Horde.Common.Rpc.LogRpc.LogRpcBase)">
<summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
<param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
<param name="serviceImpl">An object implementing the server-side handling logic.</param>
</member>
<member name="T:Horde.Common.Rpc.LogRpcMessagesReflection">
<summary>Holder for reflection information generated from horde/log_rpc_messages.proto</summary>
</member>
<member name="P:Horde.Common.Rpc.LogRpcMessagesReflection.Descriptor">
<summary>File descriptor for horde/log_rpc_messages.proto</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogRequest.LogIdFieldNumber">
<summary>Field number for the "LogId" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogRequest.LogId">
<summary>
The unique log id
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogRequest.TargetHashFieldNumber">
<summary>Field number for the "TargetHash" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogRequest.TargetHash">
<summary>
Hash of the latest flushed node
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogRequest.TargetLocatorFieldNumber">
<summary>Field number for the "TargetLocator" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogRequest.TargetLocator">
<summary>
Locator for the latest flushed node
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogRequest.LineCountFieldNumber">
<summary>Field number for the "LineCount" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogRequest.LineCount">
<summary>
Number of lines that have been flushed
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogRequest.CompleteFieldNumber">
<summary>Field number for the "Complete" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogRequest.Complete">
<summary>
Whether the log is complete
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogTailRequest.LogIdFieldNumber">
<summary>Field number for the "LogId" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogTailRequest.LogId">
<summary>
The unique log id
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogTailRequest.TailNextFieldNumber">
<summary>Field number for the "TailNext" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogTailRequest.TailNext">
<summary>
Starting line index of the new tail data
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogTailRequest.TailDataFieldNumber">
<summary>Field number for the "TailData" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogTailRequest.TailData">
<summary>
New tail data to append (from LineCount backwards)
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcUpdateLogTailResponse.TailNextFieldNumber">
<summary>Field number for the "TailNext" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcUpdateLogTailResponse.TailNext">
<summary>
Index of the next requested tail line, or -1 if tailing is not desired.
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcCreateLogEventsRequest.EventsFieldNumber">
<summary>Field number for the "Events" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcCreateLogEventsRequest.Events">
<summary>
List of events to send
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcCreateLogEventRequest.SeverityFieldNumber">
<summary>Field number for the "Severity" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcCreateLogEventRequest.Severity">
<summary>
Severity of this event
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcCreateLogEventRequest.LogIdFieldNumber">
<summary>Field number for the "LogId" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcCreateLogEventRequest.LogId">
<summary>
Unique id of the log containing this event
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcCreateLogEventRequest.LineIndexFieldNumber">
<summary>Field number for the "LineIndex" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcCreateLogEventRequest.LineIndex">
<summary>
Index of the first line relating to this event
</summary>
</member>
<member name="F:Horde.Common.Rpc.RpcCreateLogEventRequest.LineCountFieldNumber">
<summary>Field number for the "LineCount" field.</summary>
</member>
<member name="P:Horde.Common.Rpc.RpcCreateLogEventRequest.LineCount">
<summary>
Number of lines in this event
</summary>
</member>
</members>
</doc>