<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Open Match – Reference</title>
    <link>/site/docs/reference/</link>
    <description>Recent content in Reference on Open Match</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/site/docs/reference/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Open Match API References</title>
      <link>/site/docs/reference/api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/site/docs/reference/api/</guid>
      <description>
        
        
        &lt;h1 id=&#34;protocol-documentation&#34;&gt;Protocol Documentation&lt;/h1&gt;
&lt;p&gt;&lt;a name=&#34;top&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;table-of-contents&#34;&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_backend-proto&#34;&gt;api/backend.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignTicketsRequest&#34;&gt;AssignTicketsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignTicketsResponse&#34;&gt;AssignTicketsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignmentFailure&#34;&gt;AssignmentFailure&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignmentGroup&#34;&gt;AssignmentGroup&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FetchMatchesRequest&#34;&gt;FetchMatchesRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FetchMatchesResponse&#34;&gt;FetchMatchesResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FunctionConfig&#34;&gt;FunctionConfig&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-ReleaseAllTicketsRequest&#34;&gt;ReleaseAllTicketsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-ReleaseAllTicketsResponse&#34;&gt;ReleaseAllTicketsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-ReleaseTicketsRequest&#34;&gt;ReleaseTicketsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-ReleaseTicketsResponse&#34;&gt;ReleaseTicketsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignmentFailure-Cause&#34;&gt;AssignmentFailure.Cause&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FunctionConfig-Type&#34;&gt;FunctionConfig.Type&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-BackendService&#34;&gt;BackendService&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_evaluator-proto&#34;&gt;api/evaluator.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-EvaluateRequest&#34;&gt;EvaluateRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-EvaluateResponse&#34;&gt;EvaluateResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Evaluator&#34;&gt;Evaluator&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_extensions-proto&#34;&gt;api/extensions.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#openmatch-DefaultEvaluationCriteria&#34;&gt;DefaultEvaluationCriteria&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_frontend-proto&#34;&gt;api/frontend.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AcknowledgeBackfillRequest&#34;&gt;AcknowledgeBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AcknowledgeBackfillResponse&#34;&gt;AcknowledgeBackfillResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-CreateBackfillRequest&#34;&gt;CreateBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-CreateTicketRequest&#34;&gt;CreateTicketRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-DeleteBackfillRequest&#34;&gt;DeleteBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-DeleteTicketRequest&#34;&gt;DeleteTicketRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-GetBackfillRequest&#34;&gt;GetBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-GetTicketRequest&#34;&gt;GetTicketRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-UpdateBackfillRequest&#34;&gt;UpdateBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-WatchAssignmentsRequest&#34;&gt;WatchAssignmentsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-WatchAssignmentsResponse&#34;&gt;WatchAssignmentsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FrontendService&#34;&gt;FrontendService&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_matchfunction-proto&#34;&gt;api/matchfunction.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-RunRequest&#34;&gt;RunRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-RunResponse&#34;&gt;RunResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-MatchFunction&#34;&gt;MatchFunction&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_messages-proto&#34;&gt;api/messages.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Assignment-ExtensionsEntry&#34;&gt;Assignment.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Backfill-ExtensionsEntry&#34;&gt;Backfill.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Backfill-PersistentFieldEntry&#34;&gt;Backfill.PersistentFieldEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-DoubleRangeFilter&#34;&gt;DoubleRangeFilter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Match&#34;&gt;Match&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Match-ExtensionsEntry&#34;&gt;Match.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-MatchProfile&#34;&gt;MatchProfile&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-MatchProfile-ExtensionsEntry&#34;&gt;MatchProfile.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-SearchFields&#34;&gt;SearchFields&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-SearchFields-DoubleArgsEntry&#34;&gt;SearchFields.DoubleArgsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-SearchFields-StringArgsEntry&#34;&gt;SearchFields.StringArgsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-StringEqualsFilter&#34;&gt;StringEqualsFilter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-TagPresentFilter&#34;&gt;TagPresentFilter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Ticket-ExtensionsEntry&#34;&gt;Ticket.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Ticket-PersistentFieldEntry&#34;&gt;Ticket.PersistentFieldEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-DoubleRangeFilter-Exclude&#34;&gt;DoubleRangeFilter.Exclude&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_query-proto&#34;&gt;api/query.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryBackfillsRequest&#34;&gt;QueryBackfillsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryBackfillsResponse&#34;&gt;QueryBackfillsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryTicketIdsRequest&#34;&gt;QueryTicketIdsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryTicketIdsResponse&#34;&gt;QueryTicketIdsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryTicketsRequest&#34;&gt;QueryTicketsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryTicketsResponse&#34;&gt;QueryTicketsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryService&#34;&gt;QueryService&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#scalar-value-types&#34;&gt;Scalar Value Types&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&#34;api_backend-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apibackendproto&#34;&gt;api/backend.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignTicketsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignticketsrequest&#34;&gt;AssignTicketsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;assignments&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignmentGroup&#34;&gt;AssignmentGroup&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Assignments is a list of assignment groups that contain assignment and the Tickets to which they should be applied.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignTicketsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignticketsresponse&#34;&gt;AssignTicketsResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;failures&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignmentFailure&#34;&gt;AssignmentFailure&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Failures is a list of all the Tickets that failed assignment along with the cause of failure.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignmentFailure&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignmentfailure&#34;&gt;AssignmentFailure&lt;/h3&gt;
&lt;p&gt;AssignmentFailure contains the id of the Ticket that failed the Assignment and the failure status.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cause&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignmentFailure-Cause&#34;&gt;AssignmentFailure.Cause&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignmentGroup&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignmentgroup&#34;&gt;AssignmentGroup&lt;/h3&gt;
&lt;p&gt;AssignmentGroup contains an Assignment and the Tickets to which it should be applied.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_ids&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;TicketIds is a list of strings representing Open Match generated Ids which apply to an Assignment.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assignment&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An Assignment specifies game connection related information to be associated with the TicketIds.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FetchMatchesRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;fetchmatchesrequest&#34;&gt;FetchMatchesRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;config&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-FunctionConfig&#34;&gt;FunctionConfig&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A configuration for the MatchFunction server of this FetchMatches call.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;profile&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-MatchProfile&#34;&gt;MatchProfile&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A MatchProfile that will be sent to the MatchFunction server of this FetchMatches call.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FetchMatchesResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;fetchmatchesresponse&#34;&gt;FetchMatchesResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;match&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Match&#34;&gt;Match&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Match generated by the user-defined MMF with the specified MatchProfiles. A valid Match response will contain at least one ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FunctionConfig&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;functionconfig&#34;&gt;FunctionConfig&lt;/h3&gt;
&lt;p&gt;FunctionConfig specifies a MMF address and client type for Backend to establish connections with the MMF&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;host&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;port&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#int32&#34;&gt;int32&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;type&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-FunctionConfig-Type&#34;&gt;FunctionConfig.Type&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-ReleaseAllTicketsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;releaseallticketsrequest&#34;&gt;ReleaseAllTicketsRequest&lt;/h3&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-ReleaseAllTicketsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;releaseallticketsresponse&#34;&gt;ReleaseAllTicketsResponse&lt;/h3&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-ReleaseTicketsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;releaseticketsrequest&#34;&gt;ReleaseTicketsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_ids&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;TicketIds is a list of string representing Open Match generated Ids to be re-enabled for MMF querying because they are no longer awaiting assignment from a previous match result&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-ReleaseTicketsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;releaseticketsresponse&#34;&gt;ReleaseTicketsResponse&lt;/h3&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignmentFailure-Cause&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignmentfailurecause&#34;&gt;AssignmentFailure.Cause&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Number&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;UNKNOWN&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TICKET_NOT_FOUND&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FunctionConfig-Type&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;functionconfigtype&#34;&gt;FunctionConfig.Type&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Number&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GRPC&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;REST&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-BackendService&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;backendservice&#34;&gt;BackendService&lt;/h3&gt;
&lt;p&gt;The BackendService implements APIs to generate matches and handle ticket assignments.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;FetchMatches&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-FetchMatchesRequest&#34;&gt;FetchMatchesRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-FetchMatchesResponse&#34;&gt;FetchMatchesResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;FetchMatches triggers a MatchFunction with the specified MatchProfile and returns a set of matches generated by the Match Making Function, and accepted by the evaluator. Tickets in matches returned by FetchMatches are moved from active to pending, and will not be returned by query.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AssignTickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignTicketsRequest&#34;&gt;AssignTicketsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignTicketsResponse&#34;&gt;AssignTicketsResponse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;AssignTickets overwrites the Assignment field of the input TicketIds.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReleaseTickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-ReleaseTicketsRequest&#34;&gt;ReleaseTicketsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-ReleaseTicketsResponse&#34;&gt;ReleaseTicketsResponse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ReleaseTickets moves tickets from the pending state, to the active state. This enables them to be returned by query, and find different matches. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReleaseAllTickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-ReleaseAllTicketsRequest&#34;&gt;ReleaseAllTicketsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-ReleaseAllTicketsResponse&#34;&gt;ReleaseAllTicketsResponse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ReleaseAllTickets moves all tickets from the pending state, to the active state. This enables them to be returned by query, and find different matches. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_evaluator-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apievaluatorproto&#34;&gt;api/evaluator.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-EvaluateRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;evaluaterequest&#34;&gt;EvaluateRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;match&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Match&#34;&gt;Match&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Matches proposed by the Match Function representing a candidate of the final results.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-EvaluateResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;evaluateresponse&#34;&gt;EvaluateResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;match_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Match ID representing a shortlisted match returned by the evaluator as the final result.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Evaluator&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;evaluator&#34;&gt;Evaluator&lt;/h3&gt;
&lt;p&gt;The Evaluator service implements APIs used to evaluate and shortlist matches proposed by MMFs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Evaluate&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-EvaluateRequest&#34;&gt;EvaluateRequest&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-EvaluateResponse&#34;&gt;EvaluateResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;Evaluate evaluates a list of proposed matches based on quality, collision status, and etc, then shortlist the matches and returns the final results.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_extensions-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apiextensionsproto&#34;&gt;api/extensions.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DefaultEvaluationCriteria&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;defaultevaluationcriteria&#34;&gt;DefaultEvaluationCriteria&lt;/h3&gt;
&lt;p&gt;A DefaultEvaluationCriteria is used for a match&#39;s evaluation_input when using
the default evaluator.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;score&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#double&#34;&gt;double&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_frontend-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apifrontendproto&#34;&gt;api/frontend.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AcknowledgeBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;acknowledgebackfillrequest&#34;&gt;AcknowledgeBackfillRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An existing ID of Backfill to acknowledge.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assignment&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An updated Assignment of the requested Backfill.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AcknowledgeBackfillResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;acknowledgebackfillresponse&#34;&gt;AcknowledgeBackfillResponse&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Backfill that was acknowledged.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;All of the Tickets that were successfully assigned&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-CreateBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;createbackfillrequest&#34;&gt;CreateBackfillRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An empty Backfill object.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-CreateTicketRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;createticketrequest&#34;&gt;CreateTicketRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Ticket object with SearchFields defined.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DeleteBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;deletebackfillrequest&#34;&gt;DeleteBackfillRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An existing ID of Backfill to delete.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DeleteTicketRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;deleteticketrequest&#34;&gt;DeleteTicketRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A TicketId of a generated Ticket to be deleted.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-GetBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;getbackfillrequest&#34;&gt;GetBackfillRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An existing ID of Backfill to retrieve.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-GetTicketRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;getticketrequest&#34;&gt;GetTicketRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A TicketId of a generated Ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-UpdateBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;updatebackfillrequest&#34;&gt;UpdateBackfillRequest&lt;/h3&gt;
&lt;p&gt;UpdateBackfillRequest - update searchFields, extensions and set assignment.&lt;/p&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Backfill object with ID set and fields to update.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-WatchAssignmentsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;watchassignmentsrequest&#34;&gt;WatchAssignmentsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A TicketId of a generated Ticket to get updates on.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-WatchAssignmentsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;watchassignmentsresponse&#34;&gt;WatchAssignmentsResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;assignment&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An updated Assignment of the requested Ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FrontendService&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;frontendservice&#34;&gt;FrontendService&lt;/h3&gt;
&lt;p&gt;The FrontendService implements APIs to manage and query status of a Tickets.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CreateTicket&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-CreateTicketRequest&#34;&gt;CreateTicketRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CreateTicket assigns an unique TicketId to the input Ticket and record it in state storage. A ticket is considered as ready for matchmaking once it is created. - If a TicketId exists in a Ticket request, an auto-generated TicketId will override this field. - If SearchFields exist in a Ticket, CreateTicket will also index these fields such that one can query the ticket with query.QueryTickets function.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeleteTicket&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-DeleteTicketRequest&#34;&gt;DeleteTicketRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Empty&#34;&gt;.google.protobuf.Empty&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DeleteTicket immediately stops Open Match from using the Ticket for matchmaking and removes the Ticket from state storage. The client should delete the Ticket when finished matchmaking with it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GetTicket&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-GetTicketRequest&#34;&gt;GetTicketRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;GetTicket get the Ticket associated with the specified TicketId.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WatchAssignments&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-WatchAssignmentsRequest&#34;&gt;WatchAssignmentsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-WatchAssignmentsResponse&#34;&gt;WatchAssignmentsResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;WatchAssignments stream back Assignment of the specified TicketId if it is updated. - If the Assignment is not updated, GetAssignment will retry using the configured backoff strategy.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AcknowledgeBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AcknowledgeBackfillRequest&#34;&gt;AcknowledgeBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AcknowledgeBackfillResponse&#34;&gt;AcknowledgeBackfillResponse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;AcknowledgeBackfill is used to notify OpenMatch about GameServer connection info This triggers an assignment process. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CreateBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-CreateBackfillRequest&#34;&gt;CreateBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CreateBackfill creates a new Backfill object. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeleteBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-DeleteBackfillRequest&#34;&gt;DeleteBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Empty&#34;&gt;.google.protobuf.Empty&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DeleteBackfill receives a backfill ID and deletes its resource. Any tickets waiting for this backfill will be returned to the active pool, no longer pending. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GetBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-GetBackfillRequest&#34;&gt;GetBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;GetBackfill returns a backfill object by its ID. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UpdateBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-UpdateBackfillRequest&#34;&gt;UpdateBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UpdateBackfill updates search_fields and extensions for the backfill with the provided id. Any tickets waiting for this backfill will be returned to the active pool, no longer pending. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_matchfunction-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apimatchfunctionproto&#34;&gt;api/matchfunction.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-RunRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;runrequest&#34;&gt;RunRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;profile&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-MatchProfile&#34;&gt;MatchProfile&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A MatchProfile defines constraints of Tickets in a Match and shapes the Match proposed by the MatchFunction.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-RunResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;runresponse&#34;&gt;RunResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;proposal&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Match&#34;&gt;Match&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Proposal represents a Match candidate that satifies the constraints defined in the input Profile. A valid Proposal response will contain at least one ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-MatchFunction&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;matchfunction&#34;&gt;MatchFunction&lt;/h3&gt;
&lt;p&gt;The MatchFunction service implements APIs to run user-defined matchmaking logics.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Run&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-RunRequest&#34;&gt;RunRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-RunResponse&#34;&gt;RunResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;DO NOT CALL THIS FUNCTION MANUALLY. USE backend.FetchMatches INSTEAD. Run pulls Tickets that satisfy Profile constraints from QueryService, runs matchmaking logic against them, then constructs and streams back match candidates to the Backend service.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_messages-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apimessagesproto&#34;&gt;api/messages.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Assignment&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignment&#34;&gt;Assignment&lt;/h3&gt;
&lt;p&gt;An Assignment represents a game server assignment associated with a Ticket.
Open Match does not require or inspect any fields on assignment.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;connection&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Connection information for this Assignment.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment-ExtensionsEntry&#34;&gt;Assignment.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the match making function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Assignment-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignmentextensionsentry&#34;&gt;Assignment.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Backfill&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;backfill&#34;&gt;Backfill&lt;/h3&gt;
&lt;p&gt;Represents a backfill entity which is used to fill partially full matches.&lt;/p&gt;
&lt;p&gt;BETA FEATURE WARNING:  This call and the associated Request and Response
messages are not finalized and still subject to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Id represents an auto-generated Id issued by Open Match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search_fields&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-SearchFields&#34;&gt;SearchFields&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Search fields are the fields which Open Match is aware of, and can be used when specifying filters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill-ExtensionsEntry&#34;&gt;Backfill.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the Match Function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;persistent_field&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill-PersistentFieldEntry&#34;&gt;Backfill.PersistentFieldEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be kept persistent throughout the life-cycle of a backfill. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create_time&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Timestamp&#34;&gt;google.protobuf.Timestamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Create time is the time the Ticket was created. It is populated by Open Match at the time of Ticket creation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;generation&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#int64&#34;&gt;int64&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Generation gets incremented on GameServers update operations. Prevents the MMF from overriding a newer version from the game server. Do NOT read or write to this field, it is for internal tracking, and changing the value will cause bugs.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Backfill-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;backfillextensionsentry&#34;&gt;Backfill.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Backfill-PersistentFieldEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;backfillpersistentfieldentry&#34;&gt;Backfill.PersistentFieldEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DoubleRangeFilter&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;doublerangefilter&#34;&gt;DoubleRangeFilter&lt;/h3&gt;
&lt;p&gt;Filters numerical values to only those within a range.
double_arg: &amp;quot;foo&amp;quot;
max: 10
min: 5
matches:
{&amp;quot;foo&amp;quot;: 5}
{&amp;quot;foo&amp;quot;: 7.5}
{&amp;quot;foo&amp;quot;: 10}
does not match:
{&amp;quot;foo&amp;quot;: 4}
{&amp;quot;foo&amp;quot;: 10.01}
{&amp;quot;foo&amp;quot;: &amp;quot;7.5&amp;quot;}
{}&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;double_arg&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of the ticket&#39;s search_fields.double_args this Filter operates on.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;max&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#double&#34;&gt;double&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Maximum value.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;min&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#double&#34;&gt;double&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Minimum value.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;exclude&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-DoubleRangeFilter-Exclude&#34;&gt;DoubleRangeFilter.Exclude&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Defines the bounds to apply when filtering tickets by their search_fields.double_args value. BETA FEATURE WARNING: This field and the associated values are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Match&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;match&#34;&gt;Match&lt;/h3&gt;
&lt;p&gt;A Match is used to represent a completed match object. It can be generated by
a MatchFunction as a proposal or can be returned by OpenMatch as a result in
response to the FetchMatches call.
When a match is returned by the FetchMatches call, it should contain at least
one ticket to be considered as valid.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;match_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Match ID that should be passed through the stack for tracing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;match_profile&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of the match profile that generated this Match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;match_function&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of the match function that generated this Match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Tickets belonging to this match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Match-ExtensionsEntry&#34;&gt;Match.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the match making function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;backfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Backfill request which contains additional information to the match and contains an association to a GameServer. BETA FEATURE WARNING: This field is not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;allocate_gameserver&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#bool&#34;&gt;bool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;AllocateGameServer signalise Director that Backfill is new and it should allocate a GameServer, this Backfill would be assigned. BETA FEATURE WARNING: This field is not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Match-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;matchextensionsentry&#34;&gt;Match.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-MatchProfile&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;matchprofile&#34;&gt;MatchProfile&lt;/h3&gt;
&lt;p&gt;A MatchProfile is Open Match&#39;s representation of a Match specification. It is
used to indicate the criteria for selecting players for a match. A
MatchProfile is the input to the API to get matches and is passed to the
MatchFunction. It contains all the information required by the MatchFunction
to generate match proposals.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;name&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of this match profile.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pools&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Set of pools to be queried when generating a match for this MatchProfile.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-MatchProfile-ExtensionsEntry&#34;&gt;MatchProfile.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the match making function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-MatchProfile-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;matchprofileextensionsentry&#34;&gt;MatchProfile.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Pool&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;pool&#34;&gt;Pool&lt;/h3&gt;
&lt;p&gt;Pool specfies a set of criteria that are used to select a subset of Tickets
that meet all the criteria.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;name&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A developer-chosen human-readable name for this Pool.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;double_range_filters&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-DoubleRangeFilter&#34;&gt;DoubleRangeFilter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Set of Filters indicating the filtering criteria. Selected tickets must match every Filter.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;string_equals_filters&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-StringEqualsFilter&#34;&gt;StringEqualsFilter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tag_present_filters&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-TagPresentFilter&#34;&gt;TagPresentFilter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;created_before&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Timestamp&#34;&gt;google.protobuf.Timestamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;If specified, only Tickets created before the specified time are selected.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;created_after&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Timestamp&#34;&gt;google.protobuf.Timestamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;If specified, only Tickets created after the specified time are selected.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-SearchFields&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;searchfields&#34;&gt;SearchFields&lt;/h3&gt;
&lt;p&gt;Search fields are the fields which Open Match is aware of, and can be used
when specifying filters.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;double_args&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-SearchFields-DoubleArgsEntry&#34;&gt;SearchFields.DoubleArgsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Float arguments. Filterable on ranges.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;string_args&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-SearchFields-StringArgsEntry&#34;&gt;SearchFields.StringArgsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;String arguments. Filterable on equality.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tags&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Filterable on presence or absence of given value.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-SearchFields-DoubleArgsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;searchfieldsdoubleargsentry&#34;&gt;SearchFields.DoubleArgsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#double&#34;&gt;double&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-SearchFields-StringArgsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;searchfieldsstringargsentry&#34;&gt;SearchFields.StringArgsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-StringEqualsFilter&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;stringequalsfilter&#34;&gt;StringEqualsFilter&lt;/h3&gt;
&lt;p&gt;Filters strings exactly equaling a value.
string_arg: &amp;quot;foo&amp;quot;
value: &amp;quot;bar&amp;quot;
matches:
{&amp;quot;foo&amp;quot;: &amp;quot;bar&amp;quot;}
does not match:
{&amp;quot;foo&amp;quot;: &amp;quot;baz&amp;quot;}
{&amp;quot;bar&amp;quot;: &amp;quot;foo&amp;quot;}
{}&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;string_arg&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of the ticket&#39;s search_fields.string_args this Filter operates on.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-TagPresentFilter&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;tagpresentfilter&#34;&gt;TagPresentFilter&lt;/h3&gt;
&lt;p&gt;Filters to the tag being present on the search_fields.
tag: &amp;quot;foo&amp;quot;
matches:
[&amp;quot;foo&amp;quot;]
[&amp;quot;bar&amp;quot;,&amp;quot;foo&amp;quot;]
does not match:
[&amp;quot;bar&amp;quot;]
[]&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;tag&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Ticket&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;ticket&#34;&gt;Ticket&lt;/h3&gt;
&lt;p&gt;A Ticket is a basic matchmaking entity in Open Match. A Ticket may represent
an individual &#39;Player&#39;, a &#39;Group&#39; of players, or any other concepts unique to
your use case. Open Match will not interpret what the Ticket represents but
just treat it as a matchmaking unit with a set of SearchFields. Open Match
stores the Ticket in state storage and enables an Assignment to be set on the
Ticket.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Id represents an auto-generated Id issued by Open Match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assignment&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An Assignment represents a game server assignment associated with a Ticket, or whatever finalized matched state means for your use case. Open Match does not require or inspect any fields on Assignment.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search_fields&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-SearchFields&#34;&gt;SearchFields&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Search fields are the fields which Open Match is aware of, and can be used when specifying filters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket-ExtensionsEntry&#34;&gt;Ticket.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the match making function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;persistent_field&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket-PersistentFieldEntry&#34;&gt;Ticket.PersistentFieldEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be kept persistent throughout the life-cycle of a ticket. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create_time&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Timestamp&#34;&gt;google.protobuf.Timestamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Create time is the time the Ticket was created. It is populated by Open Match at the time of Ticket creation.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Ticket-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;ticketextensionsentry&#34;&gt;Ticket.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Ticket-PersistentFieldEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;ticketpersistentfieldentry&#34;&gt;Ticket.PersistentFieldEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DoubleRangeFilter-Exclude&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;doublerangefilterexclude&#34;&gt;DoubleRangeFilter.Exclude&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Number&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NONE&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No bounds should be excluded when evaluating the filter, i.e.: MIN &amp;lt;= x &amp;lt;= MAX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MIN&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Only the minimum bound should be excluded when evaluating the filter, i.e.: MIN &amp;lt; x &amp;lt;= MAX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MAX&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Only the maximum bound should be excluded when evaluating the filter, i.e.: MIN &amp;lt;= x &amp;lt; MAX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BOTH&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Both bounds should be excluded when evaluating the filter, i.e.: MIN &amp;lt; x &amp;lt; MAX&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_query-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apiqueryproto&#34;&gt;api/query.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryBackfillsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;querybackfillsrequest&#34;&gt;QueryBackfillsRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING:  This Request messages are not finalized and
still subject to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;pool&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Pool representing the set of Filters to be queried.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryBackfillsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;querybackfillsresponse&#34;&gt;QueryBackfillsResponse&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING:  This Request messages are not finalized and
still subject to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfills&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Backfills that meet all the filtering criteria requested by the pool.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryTicketIdsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryticketidsrequest&#34;&gt;QueryTicketIdsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;pool&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Pool representing the set of Filters to be queried.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryTicketIdsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryticketidsresponse&#34;&gt;QueryTicketIdsResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ids&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;TicketIDs that meet all the filtering criteria requested by the pool.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryTicketsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryticketsrequest&#34;&gt;QueryTicketsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;pool&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Pool representing the set of Filters to be queried.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryTicketsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryticketsresponse&#34;&gt;QueryTicketsResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;tickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Tickets that meet all the filtering criteria requested by the pool.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryService&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryservice&#34;&gt;QueryService&lt;/h3&gt;
&lt;p&gt;The QueryService service implements helper APIs for Match Function to query Tickets from state storage.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;QueryTickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryTicketsRequest&#34;&gt;QueryTicketsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryTicketsResponse&#34;&gt;QueryTicketsResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;QueryTickets gets a list of Tickets that match all Filters of the input Pool. - If the Pool contains no Filters, QueryTickets will return all Tickets in the state storage. QueryTickets pages the Tickets by &lt;code&gt;queryPageSize&lt;/code&gt; and stream back responses. - queryPageSize is default to 1000 if not set, and has a minimum of 10 and maximum of 10000.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QueryTicketIds&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryTicketIdsRequest&#34;&gt;QueryTicketIdsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryTicketIdsResponse&#34;&gt;QueryTicketIdsResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;QueryTicketIds gets the list of TicketIDs that meet all the filtering criteria requested by the pool. - If the Pool contains no Filters, QueryTicketIds will return all TicketIDs in the state storage. QueryTicketIds pages the TicketIDs by &lt;code&gt;queryPageSize&lt;/code&gt; and stream back responses. - queryPageSize is default to 1000 if not set, and has a minimum of 10 and maximum of 10000.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QueryBackfills&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryBackfillsRequest&#34;&gt;QueryBackfillsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryBackfillsResponse&#34;&gt;QueryBackfillsResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;QueryBackfills gets a list of Backfills. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;scalar-value-types&#34;&gt;Scalar Value Types&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;.proto Type&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;C++&lt;/th&gt;
&lt;th&gt;Java&lt;/th&gt;
&lt;th&gt;Python&lt;/th&gt;
&lt;th&gt;Go&lt;/th&gt;
&lt;th&gt;C#&lt;/th&gt;
&lt;th&gt;PHP&lt;/th&gt;
&lt;th&gt;Ruby&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;double&#34; /&gt; double&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;double&lt;/td&gt;
&lt;td&gt;double&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float64&lt;/td&gt;
&lt;td&gt;double&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;Float&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;float&#34; /&gt; float&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float32&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;Float&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;int32&#34; /&gt; int32&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;int64&#34; /&gt; int64&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;uint32&#34; /&gt; uint32&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding.&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;uint&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;uint64&#34; /&gt; uint64&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding.&lt;/td&gt;
&lt;td&gt;uint64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;uint64&lt;/td&gt;
&lt;td&gt;ulong&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;sint32&#34; /&gt; sint32&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;sint64&#34; /&gt; sint64&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;fixed32&#34; /&gt; fixed32&lt;/td&gt;
&lt;td&gt;Always four bytes. More efficient than uint32 if values are often greater than 2^28.&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;uint&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;fixed64&#34; /&gt; fixed64&lt;/td&gt;
&lt;td&gt;Always eight bytes. More efficient than uint64 if values are often greater than 2^56.&lt;/td&gt;
&lt;td&gt;uint64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;uint64&lt;/td&gt;
&lt;td&gt;ulong&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;sfixed32&#34; /&gt; sfixed32&lt;/td&gt;
&lt;td&gt;Always four bytes.&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;sfixed64&#34; /&gt; sfixed64&lt;/td&gt;
&lt;td&gt;Always eight bytes.&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;bool&#34; /&gt; bool&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;TrueClass/FalseClass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;string&#34; /&gt; string&lt;/td&gt;
&lt;td&gt;A string must always contain UTF-8 encoded or 7-bit ASCII text.&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;td&gt;str/unicode&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;String (UTF-8)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;bytes&#34; /&gt; bytes&lt;/td&gt;
&lt;td&gt;May contain any arbitrary sequence of bytes.&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;ByteString&lt;/td&gt;
&lt;td&gt;str&lt;/td&gt;
&lt;td&gt;[]byte&lt;/td&gt;
&lt;td&gt;ByteString&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;String (ASCII-8BIT)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;this-document-provides-api-references-for-open-match-services&#34;&gt;title: &amp;ldquo;Open Match API References&amp;rdquo;
linkTitle: &amp;ldquo;Open Match API References&amp;rdquo;
weight: 2
description:
This document provides API references for Open Match services.&lt;/h2&gt;
&lt;h1 id=&#34;protocol-documentation-1&#34;&gt;Protocol Documentation&lt;/h1&gt;
&lt;p&gt;&lt;a name=&#34;top&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;table-of-contents-1&#34;&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_backend-proto&#34;&gt;api/backend.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignTicketsRequest&#34;&gt;AssignTicketsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignTicketsResponse&#34;&gt;AssignTicketsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignmentFailure&#34;&gt;AssignmentFailure&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignmentGroup&#34;&gt;AssignmentGroup&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FetchMatchesRequest&#34;&gt;FetchMatchesRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FetchMatchesResponse&#34;&gt;FetchMatchesResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FunctionConfig&#34;&gt;FunctionConfig&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-ReleaseAllTicketsRequest&#34;&gt;ReleaseAllTicketsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-ReleaseAllTicketsResponse&#34;&gt;ReleaseAllTicketsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-ReleaseTicketsRequest&#34;&gt;ReleaseTicketsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-ReleaseTicketsResponse&#34;&gt;ReleaseTicketsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AssignmentFailure-Cause&#34;&gt;AssignmentFailure.Cause&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FunctionConfig-Type&#34;&gt;FunctionConfig.Type&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-BackendService&#34;&gt;BackendService&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_evaluator-proto&#34;&gt;api/evaluator.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-EvaluateRequest&#34;&gt;EvaluateRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-EvaluateResponse&#34;&gt;EvaluateResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Evaluator&#34;&gt;Evaluator&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_extensions-proto&#34;&gt;api/extensions.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#openmatch-DefaultEvaluationCriteria&#34;&gt;DefaultEvaluationCriteria&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_frontend-proto&#34;&gt;api/frontend.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AcknowledgeBackfillRequest&#34;&gt;AcknowledgeBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-AcknowledgeBackfillResponse&#34;&gt;AcknowledgeBackfillResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-CreateBackfillRequest&#34;&gt;CreateBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-CreateTicketRequest&#34;&gt;CreateTicketRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-DeleteBackfillRequest&#34;&gt;DeleteBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-DeleteTicketRequest&#34;&gt;DeleteTicketRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-GetBackfillRequest&#34;&gt;GetBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-GetTicketRequest&#34;&gt;GetTicketRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-UpdateBackfillRequest&#34;&gt;UpdateBackfillRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-WatchAssignmentsRequest&#34;&gt;WatchAssignmentsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-WatchAssignmentsResponse&#34;&gt;WatchAssignmentsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-FrontendService&#34;&gt;FrontendService&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_matchfunction-proto&#34;&gt;api/matchfunction.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-RunRequest&#34;&gt;RunRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-RunResponse&#34;&gt;RunResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-MatchFunction&#34;&gt;MatchFunction&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_messages-proto&#34;&gt;api/messages.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Assignment-ExtensionsEntry&#34;&gt;Assignment.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Backfill-ExtensionsEntry&#34;&gt;Backfill.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Backfill-PersistentFieldEntry&#34;&gt;Backfill.PersistentFieldEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-DoubleRangeFilter&#34;&gt;DoubleRangeFilter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Match&#34;&gt;Match&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Match-ExtensionsEntry&#34;&gt;Match.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-MatchProfile&#34;&gt;MatchProfile&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-MatchProfile-ExtensionsEntry&#34;&gt;MatchProfile.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-SearchFields&#34;&gt;SearchFields&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-SearchFields-DoubleArgsEntry&#34;&gt;SearchFields.DoubleArgsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-SearchFields-StringArgsEntry&#34;&gt;SearchFields.StringArgsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-StringEqualsFilter&#34;&gt;StringEqualsFilter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-TagPresentFilter&#34;&gt;TagPresentFilter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Ticket-ExtensionsEntry&#34;&gt;Ticket.ExtensionsEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-Ticket-PersistentFieldEntry&#34;&gt;Ticket.PersistentFieldEntry&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-DoubleRangeFilter-Exclude&#34;&gt;DoubleRangeFilter.Exclude&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#api_query-proto&#34;&gt;api/query.proto&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryBackfillsRequest&#34;&gt;QueryBackfillsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryBackfillsResponse&#34;&gt;QueryBackfillsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryTicketIdsRequest&#34;&gt;QueryTicketIdsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryTicketIdsResponse&#34;&gt;QueryTicketIdsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryTicketsRequest&#34;&gt;QueryTicketsRequest&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryTicketsResponse&#34;&gt;QueryTicketsResponse&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#openmatch-QueryService&#34;&gt;QueryService&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;#scalar-value-types&#34;&gt;Scalar Value Types&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a name=&#34;api_backend-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apibackendproto-1&#34;&gt;api/backend.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignTicketsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignticketsrequest-1&#34;&gt;AssignTicketsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;assignments&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignmentGroup&#34;&gt;AssignmentGroup&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Assignments is a list of assignment groups that contain assignment and the Tickets to which they should be applied.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignTicketsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignticketsresponse-1&#34;&gt;AssignTicketsResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;failures&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignmentFailure&#34;&gt;AssignmentFailure&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Failures is a list of all the Tickets that failed assignment along with the cause of failure.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignmentFailure&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignmentfailure-1&#34;&gt;AssignmentFailure&lt;/h3&gt;
&lt;p&gt;AssignmentFailure contains the id of the Ticket that failed the Assignment and the failure status.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cause&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignmentFailure-Cause&#34;&gt;AssignmentFailure.Cause&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignmentGroup&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignmentgroup-1&#34;&gt;AssignmentGroup&lt;/h3&gt;
&lt;p&gt;AssignmentGroup contains an Assignment and the Tickets to which it should be applied.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_ids&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;TicketIds is a list of strings representing Open Match generated Ids which apply to an Assignment.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assignment&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An Assignment specifies game connection related information to be associated with the TicketIds.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FetchMatchesRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;fetchmatchesrequest-1&#34;&gt;FetchMatchesRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;config&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-FunctionConfig&#34;&gt;FunctionConfig&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A configuration for the MatchFunction server of this FetchMatches call.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;profile&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-MatchProfile&#34;&gt;MatchProfile&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A MatchProfile that will be sent to the MatchFunction server of this FetchMatches call.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FetchMatchesResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;fetchmatchesresponse-1&#34;&gt;FetchMatchesResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;match&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Match&#34;&gt;Match&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Match generated by the user-defined MMF with the specified MatchProfiles. A valid Match response will contain at least one ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FunctionConfig&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;functionconfig-1&#34;&gt;FunctionConfig&lt;/h3&gt;
&lt;p&gt;FunctionConfig specifies a MMF address and client type for Backend to establish connections with the MMF&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;host&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;port&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#int32&#34;&gt;int32&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;type&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-FunctionConfig-Type&#34;&gt;FunctionConfig.Type&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-ReleaseAllTicketsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;releaseallticketsrequest-1&#34;&gt;ReleaseAllTicketsRequest&lt;/h3&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-ReleaseAllTicketsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;releaseallticketsresponse-1&#34;&gt;ReleaseAllTicketsResponse&lt;/h3&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-ReleaseTicketsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;releaseticketsrequest-1&#34;&gt;ReleaseTicketsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_ids&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;TicketIds is a list of string representing Open Match generated Ids to be re-enabled for MMF querying because they are no longer awaiting assignment from a previous match result&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-ReleaseTicketsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;releaseticketsresponse-1&#34;&gt;ReleaseTicketsResponse&lt;/h3&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AssignmentFailure-Cause&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignmentfailurecause-1&#34;&gt;AssignmentFailure.Cause&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Number&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;UNKNOWN&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TICKET_NOT_FOUND&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FunctionConfig-Type&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;functionconfigtype-1&#34;&gt;FunctionConfig.Type&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Number&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GRPC&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;REST&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-BackendService&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;backendservice-1&#34;&gt;BackendService&lt;/h3&gt;
&lt;p&gt;The BackendService implements APIs to generate matches and handle ticket assignments.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;FetchMatches&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-FetchMatchesRequest&#34;&gt;FetchMatchesRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-FetchMatchesResponse&#34;&gt;FetchMatchesResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;FetchMatches triggers a MatchFunction with the specified MatchProfile and returns a set of matches generated by the Match Making Function, and accepted by the evaluator. Tickets in matches returned by FetchMatches are moved from active to pending, and will not be returned by query.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AssignTickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignTicketsRequest&#34;&gt;AssignTicketsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AssignTicketsResponse&#34;&gt;AssignTicketsResponse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;AssignTickets overwrites the Assignment field of the input TicketIds.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReleaseTickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-ReleaseTicketsRequest&#34;&gt;ReleaseTicketsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-ReleaseTicketsResponse&#34;&gt;ReleaseTicketsResponse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ReleaseTickets moves tickets from the pending state, to the active state. This enables them to be returned by query, and find different matches. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ReleaseAllTickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-ReleaseAllTicketsRequest&#34;&gt;ReleaseAllTicketsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-ReleaseAllTicketsResponse&#34;&gt;ReleaseAllTicketsResponse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ReleaseAllTickets moves all tickets from the pending state, to the active state. This enables them to be returned by query, and find different matches. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_evaluator-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apievaluatorproto-1&#34;&gt;api/evaluator.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-EvaluateRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;evaluaterequest-1&#34;&gt;EvaluateRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;match&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Match&#34;&gt;Match&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Matches proposed by the Match Function representing a candidate of the final results.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-EvaluateResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;evaluateresponse-1&#34;&gt;EvaluateResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;match_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Match ID representing a shortlisted match returned by the evaluator as the final result.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Evaluator&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;evaluator-1&#34;&gt;Evaluator&lt;/h3&gt;
&lt;p&gt;The Evaluator service implements APIs used to evaluate and shortlist matches proposed by MMFs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Evaluate&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-EvaluateRequest&#34;&gt;EvaluateRequest&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-EvaluateResponse&#34;&gt;EvaluateResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;Evaluate evaluates a list of proposed matches based on quality, collision status, and etc, then shortlist the matches and returns the final results.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_extensions-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apiextensionsproto-1&#34;&gt;api/extensions.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DefaultEvaluationCriteria&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;defaultevaluationcriteria-1&#34;&gt;DefaultEvaluationCriteria&lt;/h3&gt;
&lt;p&gt;A DefaultEvaluationCriteria is used for a match&#39;s evaluation_input when using
the default evaluator.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;score&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#double&#34;&gt;double&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_frontend-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apifrontendproto-1&#34;&gt;api/frontend.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AcknowledgeBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;acknowledgebackfillrequest-1&#34;&gt;AcknowledgeBackfillRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An existing ID of Backfill to acknowledge.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assignment&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An updated Assignment of the requested Backfill.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-AcknowledgeBackfillResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;acknowledgebackfillresponse-1&#34;&gt;AcknowledgeBackfillResponse&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Backfill that was acknowledged.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;All of the Tickets that were successfully assigned&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-CreateBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;createbackfillrequest-1&#34;&gt;CreateBackfillRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An empty Backfill object.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-CreateTicketRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;createticketrequest-1&#34;&gt;CreateTicketRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Ticket object with SearchFields defined.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DeleteBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;deletebackfillrequest-1&#34;&gt;DeleteBackfillRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An existing ID of Backfill to delete.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DeleteTicketRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;deleteticketrequest-1&#34;&gt;DeleteTicketRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A TicketId of a generated Ticket to be deleted.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-GetBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;getbackfillrequest-1&#34;&gt;GetBackfillRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An existing ID of Backfill to retrieve.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-GetTicketRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;getticketrequest-1&#34;&gt;GetTicketRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A TicketId of a generated Ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-UpdateBackfillRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;updatebackfillrequest-1&#34;&gt;UpdateBackfillRequest&lt;/h3&gt;
&lt;p&gt;UpdateBackfillRequest - update searchFields, extensions and set assignment.&lt;/p&gt;
&lt;p&gt;BETA FEATURE WARNING: This Request message is not finalized and still subject
to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Backfill object with ID set and fields to update.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-WatchAssignmentsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;watchassignmentsrequest-1&#34;&gt;WatchAssignmentsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ticket_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A TicketId of a generated Ticket to get updates on.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-WatchAssignmentsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;watchassignmentsresponse-1&#34;&gt;WatchAssignmentsResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;assignment&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An updated Assignment of the requested Ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-FrontendService&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;frontendservice-1&#34;&gt;FrontendService&lt;/h3&gt;
&lt;p&gt;The FrontendService implements APIs to manage and query status of a Tickets.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CreateTicket&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-CreateTicketRequest&#34;&gt;CreateTicketRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CreateTicket assigns an unique TicketId to the input Ticket and record it in state storage. A ticket is considered as ready for matchmaking once it is created. - If a TicketId exists in a Ticket request, an auto-generated TicketId will override this field. - If SearchFields exist in a Ticket, CreateTicket will also index these fields such that one can query the ticket with query.QueryTickets function.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeleteTicket&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-DeleteTicketRequest&#34;&gt;DeleteTicketRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Empty&#34;&gt;.google.protobuf.Empty&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DeleteTicket immediately stops Open Match from using the Ticket for matchmaking and removes the Ticket from state storage. The client should delete the Ticket when finished matchmaking with it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GetTicket&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-GetTicketRequest&#34;&gt;GetTicketRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;GetTicket get the Ticket associated with the specified TicketId.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WatchAssignments&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-WatchAssignmentsRequest&#34;&gt;WatchAssignmentsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-WatchAssignmentsResponse&#34;&gt;WatchAssignmentsResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;WatchAssignments stream back Assignment of the specified TicketId if it is updated. - If the Assignment is not updated, GetAssignment will retry using the configured backoff strategy.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AcknowledgeBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AcknowledgeBackfillRequest&#34;&gt;AcknowledgeBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-AcknowledgeBackfillResponse&#34;&gt;AcknowledgeBackfillResponse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;AcknowledgeBackfill is used to notify OpenMatch about GameServer connection info This triggers an assignment process. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CreateBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-CreateBackfillRequest&#34;&gt;CreateBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CreateBackfill creates a new Backfill object. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeleteBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-DeleteBackfillRequest&#34;&gt;DeleteBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Empty&#34;&gt;.google.protobuf.Empty&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DeleteBackfill receives a backfill ID and deletes its resource. Any tickets waiting for this backfill will be returned to the active pool, no longer pending. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GetBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-GetBackfillRequest&#34;&gt;GetBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;GetBackfill returns a backfill object by its ID. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UpdateBackfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-UpdateBackfillRequest&#34;&gt;UpdateBackfillRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UpdateBackfill updates search_fields and extensions for the backfill with the provided id. Any tickets waiting for this backfill will be returned to the active pool, no longer pending. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_matchfunction-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apimatchfunctionproto-1&#34;&gt;api/matchfunction.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-RunRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;runrequest-1&#34;&gt;RunRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;profile&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-MatchProfile&#34;&gt;MatchProfile&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A MatchProfile defines constraints of Tickets in a Match and shapes the Match proposed by the MatchFunction.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-RunResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;runresponse-1&#34;&gt;RunResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;proposal&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Match&#34;&gt;Match&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Proposal represents a Match candidate that satifies the constraints defined in the input Profile. A valid Proposal response will contain at least one ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-MatchFunction&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;matchfunction-1&#34;&gt;MatchFunction&lt;/h3&gt;
&lt;p&gt;The MatchFunction service implements APIs to run user-defined matchmaking logics.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Run&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-RunRequest&#34;&gt;RunRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-RunResponse&#34;&gt;RunResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;DO NOT CALL THIS FUNCTION MANUALLY. USE backend.FetchMatches INSTEAD. Run pulls Tickets that satisfy Profile constraints from QueryService, runs matchmaking logic against them, then constructs and streams back match candidates to the Backend service.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_messages-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apimessagesproto-1&#34;&gt;api/messages.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Assignment&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignment-1&#34;&gt;Assignment&lt;/h3&gt;
&lt;p&gt;An Assignment represents a game server assignment associated with a Ticket.
Open Match does not require or inspect any fields on assignment.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;connection&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Connection information for this Assignment.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment-ExtensionsEntry&#34;&gt;Assignment.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the match making function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Assignment-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;assignmentextensionsentry-1&#34;&gt;Assignment.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Backfill&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;backfill-1&#34;&gt;Backfill&lt;/h3&gt;
&lt;p&gt;Represents a backfill entity which is used to fill partially full matches.&lt;/p&gt;
&lt;p&gt;BETA FEATURE WARNING:  This call and the associated Request and Response
messages are not finalized and still subject to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Id represents an auto-generated Id issued by Open Match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search_fields&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-SearchFields&#34;&gt;SearchFields&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Search fields are the fields which Open Match is aware of, and can be used when specifying filters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill-ExtensionsEntry&#34;&gt;Backfill.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the Match Function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;persistent_field&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill-PersistentFieldEntry&#34;&gt;Backfill.PersistentFieldEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be kept persistent throughout the life-cycle of a backfill. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create_time&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Timestamp&#34;&gt;google.protobuf.Timestamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Create time is the time the Ticket was created. It is populated by Open Match at the time of Ticket creation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;generation&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#int64&#34;&gt;int64&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Generation gets incremented on GameServers update operations. Prevents the MMF from overriding a newer version from the game server. Do NOT read or write to this field, it is for internal tracking, and changing the value will cause bugs.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Backfill-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;backfillextensionsentry-1&#34;&gt;Backfill.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Backfill-PersistentFieldEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;backfillpersistentfieldentry-1&#34;&gt;Backfill.PersistentFieldEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DoubleRangeFilter&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;doublerangefilter-1&#34;&gt;DoubleRangeFilter&lt;/h3&gt;
&lt;p&gt;Filters numerical values to only those within a range.
double_arg: &amp;quot;foo&amp;quot;
max: 10
min: 5
matches:
{&amp;quot;foo&amp;quot;: 5}
{&amp;quot;foo&amp;quot;: 7.5}
{&amp;quot;foo&amp;quot;: 10}
does not match:
{&amp;quot;foo&amp;quot;: 4}
{&amp;quot;foo&amp;quot;: 10.01}
{&amp;quot;foo&amp;quot;: &amp;quot;7.5&amp;quot;}
{}&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;double_arg&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of the ticket&#39;s search_fields.double_args this Filter operates on.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;max&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#double&#34;&gt;double&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Maximum value.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;min&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#double&#34;&gt;double&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Minimum value.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;exclude&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-DoubleRangeFilter-Exclude&#34;&gt;DoubleRangeFilter.Exclude&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Defines the bounds to apply when filtering tickets by their search_fields.double_args value. BETA FEATURE WARNING: This field and the associated values are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Match&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;match-1&#34;&gt;Match&lt;/h3&gt;
&lt;p&gt;A Match is used to represent a completed match object. It can be generated by
a MatchFunction as a proposal or can be returned by OpenMatch as a result in
response to the FetchMatches call.
When a match is returned by the FetchMatches call, it should contain at least
one ticket to be considered as valid.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;match_id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A Match ID that should be passed through the stack for tracing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;match_profile&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of the match profile that generated this Match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;match_function&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of the match function that generated this Match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Tickets belonging to this match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Match-ExtensionsEntry&#34;&gt;Match.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the match making function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;backfill&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Backfill request which contains additional information to the match and contains an association to a GameServer. BETA FEATURE WARNING: This field is not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;allocate_gameserver&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#bool&#34;&gt;bool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;AllocateGameServer signalise Director that Backfill is new and it should allocate a GameServer, this Backfill would be assigned. BETA FEATURE WARNING: This field is not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Match-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;matchextensionsentry-1&#34;&gt;Match.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-MatchProfile&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;matchprofile-1&#34;&gt;MatchProfile&lt;/h3&gt;
&lt;p&gt;A MatchProfile is Open Match&#39;s representation of a Match specification. It is
used to indicate the criteria for selecting players for a match. A
MatchProfile is the input to the API to get matches and is passed to the
MatchFunction. It contains all the information required by the MatchFunction
to generate match proposals.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;name&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of this match profile.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pools&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Set of pools to be queried when generating a match for this MatchProfile.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-MatchProfile-ExtensionsEntry&#34;&gt;MatchProfile.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the match making function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-MatchProfile-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;matchprofileextensionsentry-1&#34;&gt;MatchProfile.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Pool&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;pool-1&#34;&gt;Pool&lt;/h3&gt;
&lt;p&gt;Pool specfies a set of criteria that are used to select a subset of Tickets
that meet all the criteria.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;name&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;A developer-chosen human-readable name for this Pool.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;double_range_filters&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-DoubleRangeFilter&#34;&gt;DoubleRangeFilter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Set of Filters indicating the filtering criteria. Selected tickets must match every Filter.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;string_equals_filters&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-StringEqualsFilter&#34;&gt;StringEqualsFilter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tag_present_filters&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-TagPresentFilter&#34;&gt;TagPresentFilter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;created_before&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Timestamp&#34;&gt;google.protobuf.Timestamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;If specified, only Tickets created before the specified time are selected.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;created_after&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Timestamp&#34;&gt;google.protobuf.Timestamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;If specified, only Tickets created after the specified time are selected.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-SearchFields&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;searchfields-1&#34;&gt;SearchFields&lt;/h3&gt;
&lt;p&gt;Search fields are the fields which Open Match is aware of, and can be used
when specifying filters.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;double_args&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-SearchFields-DoubleArgsEntry&#34;&gt;SearchFields.DoubleArgsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Float arguments. Filterable on ranges.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;string_args&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-SearchFields-StringArgsEntry&#34;&gt;SearchFields.StringArgsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;String arguments. Filterable on equality.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tags&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Filterable on presence or absence of given value.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-SearchFields-DoubleArgsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;searchfieldsdoubleargsentry-1&#34;&gt;SearchFields.DoubleArgsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#double&#34;&gt;double&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-SearchFields-StringArgsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;searchfieldsstringargsentry-1&#34;&gt;SearchFields.StringArgsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-StringEqualsFilter&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;stringequalsfilter-1&#34;&gt;StringEqualsFilter&lt;/h3&gt;
&lt;p&gt;Filters strings exactly equaling a value.
string_arg: &amp;quot;foo&amp;quot;
value: &amp;quot;bar&amp;quot;
matches:
{&amp;quot;foo&amp;quot;: &amp;quot;bar&amp;quot;}
does not match:
{&amp;quot;foo&amp;quot;: &amp;quot;baz&amp;quot;}
{&amp;quot;bar&amp;quot;: &amp;quot;foo&amp;quot;}
{}&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;string_arg&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Name of the ticket&#39;s search_fields.string_args this Filter operates on.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-TagPresentFilter&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;tagpresentfilter-1&#34;&gt;TagPresentFilter&lt;/h3&gt;
&lt;p&gt;Filters to the tag being present on the search_fields.
tag: &amp;quot;foo&amp;quot;
matches:
[&amp;quot;foo&amp;quot;]
[&amp;quot;bar&amp;quot;,&amp;quot;foo&amp;quot;]
does not match:
[&amp;quot;bar&amp;quot;]
[]&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;tag&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Ticket&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;ticket-1&#34;&gt;Ticket&lt;/h3&gt;
&lt;p&gt;A Ticket is a basic matchmaking entity in Open Match. A Ticket may represent
an individual &#39;Player&#39;, a &#39;Group&#39; of players, or any other concepts unique to
your use case. Open Match will not interpret what the Ticket represents but
just treat it as a matchmaking unit with a set of SearchFields. Open Match
stores the Ticket in state storage and enables an Assignment to be set on the
Ticket.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Id represents an auto-generated Id issued by Open Match.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assignment&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Assignment&#34;&gt;Assignment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;An Assignment represents a game server assignment associated with a Ticket, or whatever finalized matched state means for your use case. Open Match does not require or inspect any fields on Assignment.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search_fields&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-SearchFields&#34;&gt;SearchFields&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Search fields are the fields which Open Match is aware of, and can be used when specifying filters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;extensions&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket-ExtensionsEntry&#34;&gt;Ticket.ExtensionsEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be used by the match making function, evaluator, and components making calls to Open Match. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;persistent_field&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket-PersistentFieldEntry&#34;&gt;Ticket.PersistentFieldEntry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Customized information not inspected by Open Match, to be kept persistent throughout the life-cycle of a ticket. Optional, depending on the requirements of the connected systems.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create_time&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Timestamp&#34;&gt;google.protobuf.Timestamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Create time is the time the Ticket was created. It is populated by Open Match at the time of Ticket creation.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Ticket-ExtensionsEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;ticketextensionsentry-1&#34;&gt;Ticket.ExtensionsEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-Ticket-PersistentFieldEntry&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;ticketpersistentfieldentry-1&#34;&gt;Ticket.PersistentFieldEntry&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;key&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;value&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#google-protobuf-Any&#34;&gt;google.protobuf.Any&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-DoubleRangeFilter-Exclude&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;doublerangefilterexclude-1&#34;&gt;DoubleRangeFilter.Exclude&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Number&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NONE&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No bounds should be excluded when evaluating the filter, i.e.: MIN &amp;lt;= x &amp;lt;= MAX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MIN&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Only the minimum bound should be excluded when evaluating the filter, i.e.: MIN &amp;lt; x &amp;lt;= MAX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MAX&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Only the maximum bound should be excluded when evaluating the filter, i.e.: MIN &amp;lt;= x &amp;lt; MAX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BOTH&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Both bounds should be excluded when evaluating the filter, i.e.: MIN &amp;lt; x &amp;lt; MAX&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;api_query-proto&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34;&gt;&lt;a href=&#34;#top&#34;&gt;Top&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;apiqueryproto-1&#34;&gt;api/query.proto&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryBackfillsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;querybackfillsrequest-1&#34;&gt;QueryBackfillsRequest&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING:  This Request messages are not finalized and
still subject to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;pool&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Pool representing the set of Filters to be queried.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryBackfillsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;querybackfillsresponse-1&#34;&gt;QueryBackfillsResponse&lt;/h3&gt;
&lt;p&gt;BETA FEATURE WARNING:  This Request messages are not finalized and
still subject to possible change or removal.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;backfills&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Backfill&#34;&gt;Backfill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Backfills that meet all the filtering criteria requested by the pool.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryTicketIdsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryticketidsrequest-1&#34;&gt;QueryTicketIdsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;pool&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Pool representing the set of Filters to be queried.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryTicketIdsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryticketidsresponse-1&#34;&gt;QueryTicketIdsResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ids&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#string&#34;&gt;string&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;TicketIDs that meet all the filtering criteria requested by the pool.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryTicketsRequest&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryticketsrequest-1&#34;&gt;QueryTicketsRequest&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;pool&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Pool&#34;&gt;Pool&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The Pool representing the set of Filters to be queried.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryTicketsResponse&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryticketsresponse-1&#34;&gt;QueryTicketsResponse&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;tickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-Ticket&#34;&gt;Ticket&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;repeated&lt;/td&gt;
&lt;td&gt;Tickets that meet all the filtering criteria requested by the pool.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a name=&#34;openmatch-QueryService&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;queryservice-1&#34;&gt;QueryService&lt;/h3&gt;
&lt;p&gt;The QueryService service implements helper APIs for Match Function to query Tickets from state storage.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method Name&lt;/th&gt;
&lt;th&gt;Request Type&lt;/th&gt;
&lt;th&gt;Response Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;QueryTickets&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryTicketsRequest&#34;&gt;QueryTicketsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryTicketsResponse&#34;&gt;QueryTicketsResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;QueryTickets gets a list of Tickets that match all Filters of the input Pool. - If the Pool contains no Filters, QueryTickets will return all Tickets in the state storage. QueryTickets pages the Tickets by &lt;code&gt;queryPageSize&lt;/code&gt; and stream back responses. - queryPageSize is default to 1000 if not set, and has a minimum of 10 and maximum of 10000.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QueryTicketIds&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryTicketIdsRequest&#34;&gt;QueryTicketIdsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryTicketIdsResponse&#34;&gt;QueryTicketIdsResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;QueryTicketIds gets the list of TicketIDs that meet all the filtering criteria requested by the pool. - If the Pool contains no Filters, QueryTicketIds will return all TicketIDs in the state storage. QueryTicketIds pages the TicketIDs by &lt;code&gt;queryPageSize&lt;/code&gt; and stream back responses. - queryPageSize is default to 1000 if not set, and has a minimum of 10 and maximum of 10000.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QueryBackfills&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryBackfillsRequest&#34;&gt;QueryBackfillsRequest&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#openmatch-QueryBackfillsResponse&#34;&gt;QueryBackfillsResponse&lt;/a&gt; stream&lt;/td&gt;
&lt;td&gt;QueryBackfills gets a list of Backfills. BETA FEATURE WARNING: This call and the associated Request and Response messages are not finalized and still subject to possible change or removal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;scalar-value-types-1&#34;&gt;Scalar Value Types&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;.proto Type&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;C++&lt;/th&gt;
&lt;th&gt;Java&lt;/th&gt;
&lt;th&gt;Python&lt;/th&gt;
&lt;th&gt;Go&lt;/th&gt;
&lt;th&gt;C#&lt;/th&gt;
&lt;th&gt;PHP&lt;/th&gt;
&lt;th&gt;Ruby&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;double&#34; /&gt; double&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;double&lt;/td&gt;
&lt;td&gt;double&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float64&lt;/td&gt;
&lt;td&gt;double&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;Float&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;float&#34; /&gt; float&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float32&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;Float&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;int32&#34; /&gt; int32&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;int64&#34; /&gt; int64&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;uint32&#34; /&gt; uint32&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding.&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;uint&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;uint64&#34; /&gt; uint64&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding.&lt;/td&gt;
&lt;td&gt;uint64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;uint64&lt;/td&gt;
&lt;td&gt;ulong&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;sint32&#34; /&gt; sint32&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;sint64&#34; /&gt; sint64&lt;/td&gt;
&lt;td&gt;Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;fixed32&#34; /&gt; fixed32&lt;/td&gt;
&lt;td&gt;Always four bytes. More efficient than uint32 if values are often greater than 2^28.&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;uint32&lt;/td&gt;
&lt;td&gt;uint&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;fixed64&#34; /&gt; fixed64&lt;/td&gt;
&lt;td&gt;Always eight bytes. More efficient than uint64 if values are often greater than 2^56.&lt;/td&gt;
&lt;td&gt;uint64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;uint64&lt;/td&gt;
&lt;td&gt;ulong&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;sfixed32&#34; /&gt; sfixed32&lt;/td&gt;
&lt;td&gt;Always four bytes.&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;int32&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Bignum or Fixnum (as required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;sfixed64&#34; /&gt; sfixed64&lt;/td&gt;
&lt;td&gt;Always eight bytes.&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;int/long&lt;/td&gt;
&lt;td&gt;int64&lt;/td&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;integer/string&lt;/td&gt;
&lt;td&gt;Bignum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;bool&#34; /&gt; bool&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;TrueClass/FalseClass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;string&#34; /&gt; string&lt;/td&gt;
&lt;td&gt;A string must always contain UTF-8 encoded or 7-bit ASCII text.&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;td&gt;str/unicode&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;String (UTF-8)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a name=&#34;bytes&#34; /&gt; bytes&lt;/td&gt;
&lt;td&gt;May contain any arbitrary sequence of bytes.&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;ByteString&lt;/td&gt;
&lt;td&gt;str&lt;/td&gt;
&lt;td&gt;[]byte&lt;/td&gt;
&lt;td&gt;ByteString&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;String (ASCII-8BIT)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Glossary</title>
      <link>/site/docs/reference/glossary/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/site/docs/reference/glossary/</guid>
      <description>
        
        
        &lt;p&gt;&lt;strong&gt;Docker Image&lt;/strong&gt; &lt;a href=&#34;/site/site/docs/tutorials/matchmaker101/frontend/#build-and-push&#34;&gt;See in Action&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Docker Images are sort of like a zip file that would contain your game binary and assets.
It also contains a minimal operating system (~2-10MiB), environment variables, and other contexts.&lt;/p&gt;
&lt;p&gt;The intent is that the image is portable between host machines (that can run different host OSes)
but the application itself will run the same because all of its dependencies (ex: glibc, DLLs, etc)
included without the need for virtualization. Docker Images are stored in Docker Image
Repositories and are versioned.&lt;/p&gt;
&lt;p&gt;Open Match uses &lt;a href=&#34;https://github.com/GoogleContainerTools/distroless&#34;&gt;distroless/static:nonroot&lt;/a&gt;
images that provide just enough Linux OS to run a mostly-static binary. There are other flavors
of distroless for popular languages.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Docker&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.docker.com/engine/docker-overview/&#34;&gt;Docker&lt;/a&gt; is what generally mean when they say
&amp;ldquo;containers&amp;rdquo;. It allows you to run Docker Images on a host operating system. Containers provide
a thin layer of isolation between the host and the application that makes it think it is running
in its environment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You give &lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/&#34;&gt;Kubernetes&lt;/a&gt;
a bunch of servers to run and it&amp;rsquo;ll figure out how where to run them based on available
resources. The machines can be different shapes and sizes. You can declare how much CPU
and RAM a container may consume before it&amp;rsquo;s throttled or killed respectively.&lt;/p&gt;
&lt;p&gt;Kubernetes also provides a configurable private network that by default servers cannot
communicate outside the network. It&amp;rsquo;s possible to open up ports through
&lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/service/&#34;&gt;Service&lt;/a&gt; definitions.&lt;/p&gt;
&lt;p&gt;Lastly, it provides configuration management including secrets
(like passwords and auth tokens) and auto-healing (service health monitoring and restart).&lt;/p&gt;
&lt;p&gt;Open Match uses Kubernetes to schedule and runs its services. It also uses secrets to
hold TLS certificates and Redis passwords.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Helm&lt;/strong&gt; &lt;a href=&#34;/site/site/docs/installation/helm/&#34;&gt;See in Action&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://helm.sh/&#34;&gt;Helm&lt;/a&gt; is the Kubernetes package manager. It allows you to create
Kubernetes deployments as templates and parameters. Helm deployments are called charts.
For example, you can create an Open Match deployment that has 50 frontend servers via
&lt;code&gt;--set frontend.replicas=50&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Open Match uses Helm to simplify its Kubernetes deployment. By default, the Helm chart
deploys Redis, Open Match, Prometheus, and Grafana.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Helm is not required for Open Match.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.terraform.io/intro#what-is-terraform&#34;&gt;Terraform&lt;/a&gt; provides
a way to express your
&lt;a href=&#34;https://en.wikipedia.org/wiki/Infrastructure_as_code&#34;&gt;infrastructure-as-code&lt;/a&gt;.
In other words, you can write a template that says &amp;ldquo;give me 20 machines each with
4 vCPUs and 32 GiB RAM that live in us-west1-b on the same network in GCP&amp;rdquo; and
Terraform will make that happen. You can then change your configuration to have 25
machines and Terraform will add the additional 5.&lt;/p&gt;
&lt;p&gt;Open Match does not use Terraform. We provide an example of a Terraform template that
can be used to declare infrastructure you&amp;rsquo;d need to run it.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Terraform is not required for Open Match.&lt;/em&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Presentations</title>
      <link>/site/docs/reference/presentations/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/site/docs/reference/presentations/</guid>
      <description>
        
        
        &lt;p&gt;&lt;strong&gt;Connecting Millions with GCP and Open Match in a Google Doodle Multiplayer Game (GDC &amp;lsquo;19)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=9Iolrk6GH4w&#34;&gt;https://www.youtube.com/watch?v=9Iolrk6GH4w&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To celebrate this past Halloween, the Google Doodle team wanted to create their first multiplayer
Doodle, which would be accessed by millions of Google search page visitors over 3 days. To achieve
this scale, the Doodle team worked closely with GCP and leveraged the Google Cloud and Unity
co-founded open source matchmaking framework, Open Match. In this session, they will discuss
how they successfully executed this multiplayer experience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unity Berlin 2018 - The Future of Matchmaking with Unity and Google&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=qasAmy_ko2o&#34;&gt;https://www.youtube.com/watch?v=qasAmy_ko2o&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Matchmaking is an essential component of today’s most popular multiplayer games.
Unity is helping to lead a new open-source project designed to tackle this common and
challenging aspect of multiplayer game creation. Learn how it works and how you can get involved.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Matchmaking Innovation &amp;amp; Best Practices with Unity (GDC &amp;lsquo;19)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=44gqtGRXmrg&#34;&gt;https://www.youtube.com/watch?v=44gqtGRXmrg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Creating a multiplayer game? You&amp;rsquo;re going to need matchmaking! Google Cloud and Unity have been
leading a new open source matchmaking project that&amp;rsquo;s extensible and scalable to millions of
players. In this session, learn how Open Match works and how to innovate using standard
matchmaking techniques, patterns, and best practices. Then, learn how Open Match is even more
approachable and useful when combined with Unity&amp;rsquo;s game server hosting technology.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
