<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="jobs_v3.html">Cloud Talent Solution API</a> . <a href="jobs_v3.projects.html">projects</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="jobs_v3.projects.clientEvents.html">clientEvents()</a></code>
</p>
<p class="firstline">Returns the clientEvents Resource.</p>

<p class="toc_element">
  <code><a href="jobs_v3.projects.companies.html">companies()</a></code>
</p>
<p class="firstline">Returns the companies Resource.</p>

<p class="toc_element">
  <code><a href="jobs_v3.projects.jobs.html">jobs()</a></code>
</p>
<p class="firstline">Returns the jobs Resource.</p>

<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#complete">complete(name, pageSize=None, languageCodes=None, query=None, scope=None, companyName=None, type=None, languageCode=None, x__xgafv=None)</a></code></p>
<p class="firstline">Completes the specified prefix with keyword suggestions. Intended for use by a job search auto-complete search box.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="complete">complete(name, pageSize=None, languageCodes=None, query=None, scope=None, companyName=None, type=None, languageCode=None, x__xgafv=None)</code>
  <pre>Completes the specified prefix with keyword suggestions. Intended for use by a job search auto-complete search box.

Args:
  name: string, Required. Resource name of project the completion is performed within. The format is &quot;projects/{project_id}&quot;, for example, &quot;projects/api-test-project&quot;. (required)
  pageSize: integer, Required. Completion result count. The maximum allowed page size is 10.
  languageCodes: string, Optional. The list of languages of the query. This is the BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE type, only open jobs with the same language_codes are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_codes are returned. For CompletionType.COMBINED type, only open jobs with the same language_codes or companies having open jobs with the same language_codes are returned. The maximum number of allowed characters is 255. (repeated)
  query: string, Required. The query used to generate suggestions. The maximum number of allowed characters is 255.
  scope: string, Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.
    Allowed values
      COMPLETION_SCOPE_UNSPECIFIED - Default value.
      TENANT - Suggestions are based only on the data provided by the client.
      PUBLIC - Suggestions are based on all jobs data in the system that&#x27;s visible to the client
  companyName: string, Optional. If provided, restricts completion to specified company. The format is &quot;projects/{project_id}/companies/{company_id}&quot;, for example, &quot;projects/api-test-project/companies/foo&quot;.
  type: string, Optional. The completion topic. The default is CompletionType.COMBINED.
    Allowed values
      COMPLETION_TYPE_UNSPECIFIED - Default value.
      JOB_TITLE - Only suggest job titles.
      COMPANY_NAME - Only suggest company names.
      COMBINED - Suggest both job titles and company names.
  languageCode: string, Deprecated. Use language_codes instead. Optional. The language of the query. This is the BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE type, only open jobs with the same language_code are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_code are returned. For CompletionType.COMBINED type, only open jobs with the same language_code or companies having open jobs with the same language_code are returned. The maximum number of allowed characters is 255.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Output only. Response of auto-complete query.
    &quot;metadata&quot;: { # Output only. Additional information returned to client, such as debugging information. # Additional information for the API invocation, such as the request tracking id.
      &quot;requestId&quot;: &quot;A String&quot;, # A unique id associated with this call. This id is logged for tracking purposes.
    },
    &quot;completionResults&quot;: [ # Results of the matching job/company candidates.
      { # Output only. Resource that represents completion results.
        &quot;imageUri&quot;: &quot;A String&quot;, # The URI of the company image for CompletionType.COMPANY_NAME.
        &quot;type&quot;: &quot;A String&quot;, # The completion topic.
        &quot;suggestion&quot;: &quot;A String&quot;, # The suggestion for the query.
      },
    ],
  }</pre>
</div>

</body></html>