<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="cloudtrace_v2beta1.html">Cloud Trace API</a> . <a href="cloudtrace_v2beta1.projects.html">projects</a> . <a href="cloudtrace_v2beta1.projects.traceSinks.html">traceSinks</a></h1>
<h2>Instance Methods</h2>
<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="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a sink that exports trace spans to a destination. The export of newly-ingested traces begins immediately, unless the sink's `writer_identity` is not permitted to write to the destination. A sink can export traces only from the resource owning the sink (the 'parent').</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a sink.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Get a trace sink by name under the parent resource (GCP project).</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">List all sinks for the parent resource (GCP project).</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a sink. This method updates fields in the existing sink according to the provided update mask. The sink's name cannot be changed nor any output-only fields (e.g. the writer_identity).</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="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a sink that exports trace spans to a destination. The export of newly-ingested traces begins immediately, unless the sink&#x27;s `writer_identity` is not permitted to write to the destination. A sink can export traces only from the resource owning the sink (the &#x27;parent&#x27;).

Args:
  parent: string, Required. The resource in which to create the sink (currently only project sinks are supported): &quot;projects/[PROJECT_ID]&quot; Examples: `&quot;projects/my-trace-project&quot;`, `&quot;projects/123456789&quot;`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Describes a sink used to export traces to a BigQuery dataset. The sink must be created within a project.
  &quot;name&quot;: &quot;A String&quot;, # Required. The canonical sink resource name, unique within the project. Must be of the form: project/[PROJECT_NUMBER]/traceSinks/[SINK_ID]. E.g.: `&quot;projects/12345/traceSinks/my-project-trace-sink&quot;`. Sink identifiers are limited to 256 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
  &quot;writerIdentity&quot;: &quot;A String&quot;, # Output only. A service account name for exporting the data. This field is set by sinks.create and sinks.update. The service account will need to be granted write access to the destination specified in the output configuration, see [Granting access for a resource](/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). To create tables and write data this account will need the dataEditor role. Read more about roles in the [BigQuery documentation](https://cloud.google.com/bigquery/docs/access-control). E.g.: &quot;service-00000001@00000002.iam.gserviceaccount.com&quot;
  &quot;outputConfig&quot;: { # OutputConfig contains a destination for writing trace data. # Required. The export destination.
    &quot;destination&quot;: &quot;A String&quot;, # The destination for writing trace data. Currently only BigQuery is supported. E.g.: &quot;bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]&quot;
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Describes a sink used to export traces to a BigQuery dataset. The sink must be created within a project.
    &quot;name&quot;: &quot;A String&quot;, # Required. The canonical sink resource name, unique within the project. Must be of the form: project/[PROJECT_NUMBER]/traceSinks/[SINK_ID]. E.g.: `&quot;projects/12345/traceSinks/my-project-trace-sink&quot;`. Sink identifiers are limited to 256 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
    &quot;writerIdentity&quot;: &quot;A String&quot;, # Output only. A service account name for exporting the data. This field is set by sinks.create and sinks.update. The service account will need to be granted write access to the destination specified in the output configuration, see [Granting access for a resource](/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). To create tables and write data this account will need the dataEditor role. Read more about roles in the [BigQuery documentation](https://cloud.google.com/bigquery/docs/access-control). E.g.: &quot;service-00000001@00000002.iam.gserviceaccount.com&quot;
    &quot;outputConfig&quot;: { # OutputConfig contains a destination for writing trace data. # Required. The export destination.
      &quot;destination&quot;: &quot;A String&quot;, # The destination for writing trace data. Currently only BigQuery is supported. E.g.: &quot;bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]&quot;
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Deletes a sink.

Args:
  name: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier: &quot;projects/[PROJECT_NUMBER]/traceSinks/[SINK_ID]&quot; Example: `&quot;projects/12345/traceSinks/my-sink-id&quot;`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Get a trace sink by name under the parent resource (GCP project).

Args:
  name: string, Required. The resource name of the sink: &quot;projects/[PROJECT_NUMBER]/traceSinks/[SINK_ID]&quot; Example: `&quot;projects/12345/traceSinks/my-sink-id&quot;`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Describes a sink used to export traces to a BigQuery dataset. The sink must be created within a project.
    &quot;name&quot;: &quot;A String&quot;, # Required. The canonical sink resource name, unique within the project. Must be of the form: project/[PROJECT_NUMBER]/traceSinks/[SINK_ID]. E.g.: `&quot;projects/12345/traceSinks/my-project-trace-sink&quot;`. Sink identifiers are limited to 256 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
    &quot;writerIdentity&quot;: &quot;A String&quot;, # Output only. A service account name for exporting the data. This field is set by sinks.create and sinks.update. The service account will need to be granted write access to the destination specified in the output configuration, see [Granting access for a resource](/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). To create tables and write data this account will need the dataEditor role. Read more about roles in the [BigQuery documentation](https://cloud.google.com/bigquery/docs/access-control). E.g.: &quot;service-00000001@00000002.iam.gserviceaccount.com&quot;
    &quot;outputConfig&quot;: { # OutputConfig contains a destination for writing trace data. # Required. The export destination.
      &quot;destination&quot;: &quot;A String&quot;, # The destination for writing trace data. Currently only BigQuery is supported. E.g.: &quot;bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]&quot;
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>List all sinks for the parent resource (GCP project).

Args:
  parent: string, Required. The parent resource whose sinks are to be listed (currently only project parent resources are supported): &quot;projects/[PROJECT_ID]&quot; (required)
  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `nextPageToken` in the response indicates that more results might be available.
  pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. `pageToken` must be the value of `nextPageToken` from the previous response. The values of other method parameters should be identical to those in the previous call.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Result returned from `ListTraceSinks`.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # If there might be more results than appear in this response, then `nextPageToken` is included. To get the next set of results, call the same method again using the value of `nextPageToken` as `pageToken`.
    &quot;sinks&quot;: [ # A list of sinks.
      { # Describes a sink used to export traces to a BigQuery dataset. The sink must be created within a project.
        &quot;name&quot;: &quot;A String&quot;, # Required. The canonical sink resource name, unique within the project. Must be of the form: project/[PROJECT_NUMBER]/traceSinks/[SINK_ID]. E.g.: `&quot;projects/12345/traceSinks/my-project-trace-sink&quot;`. Sink identifiers are limited to 256 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
        &quot;writerIdentity&quot;: &quot;A String&quot;, # Output only. A service account name for exporting the data. This field is set by sinks.create and sinks.update. The service account will need to be granted write access to the destination specified in the output configuration, see [Granting access for a resource](/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). To create tables and write data this account will need the dataEditor role. Read more about roles in the [BigQuery documentation](https://cloud.google.com/bigquery/docs/access-control). E.g.: &quot;service-00000001@00000002.iam.gserviceaccount.com&quot;
        &quot;outputConfig&quot;: { # OutputConfig contains a destination for writing trace data. # Required. The export destination.
          &quot;destination&quot;: &quot;A String&quot;, # The destination for writing trace data. Currently only BigQuery is supported. E.g.: &quot;bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]&quot;
        },
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates a sink. This method updates fields in the existing sink according to the provided update mask. The sink&#x27;s name cannot be changed nor any output-only fields (e.g. the writer_identity).

Args:
  name: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier: &quot;projects/[PROJECT_NUMBER]/traceSinks/[SINK_ID]&quot; Example: `&quot;projects/12345/traceSinks/my-sink-id&quot;`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Describes a sink used to export traces to a BigQuery dataset. The sink must be created within a project.
  &quot;name&quot;: &quot;A String&quot;, # Required. The canonical sink resource name, unique within the project. Must be of the form: project/[PROJECT_NUMBER]/traceSinks/[SINK_ID]. E.g.: `&quot;projects/12345/traceSinks/my-project-trace-sink&quot;`. Sink identifiers are limited to 256 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
  &quot;writerIdentity&quot;: &quot;A String&quot;, # Output only. A service account name for exporting the data. This field is set by sinks.create and sinks.update. The service account will need to be granted write access to the destination specified in the output configuration, see [Granting access for a resource](/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). To create tables and write data this account will need the dataEditor role. Read more about roles in the [BigQuery documentation](https://cloud.google.com/bigquery/docs/access-control). E.g.: &quot;service-00000001@00000002.iam.gserviceaccount.com&quot;
  &quot;outputConfig&quot;: { # OutputConfig contains a destination for writing trace data. # Required. The export destination.
    &quot;destination&quot;: &quot;A String&quot;, # The destination for writing trace data. Currently only BigQuery is supported. E.g.: &quot;bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]&quot;
  },
}

  updateMask: string, Required. Field mask that specifies the fields in `trace_sink` that are to be updated. A sink field is overwritten if, and only if, it is in the update mask. `name` and `writer_identity` fields cannot be updated. An empty updateMask is considered an error. For a detailed `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask Example: `updateMask=output_config`.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Describes a sink used to export traces to a BigQuery dataset. The sink must be created within a project.
    &quot;name&quot;: &quot;A String&quot;, # Required. The canonical sink resource name, unique within the project. Must be of the form: project/[PROJECT_NUMBER]/traceSinks/[SINK_ID]. E.g.: `&quot;projects/12345/traceSinks/my-project-trace-sink&quot;`. Sink identifiers are limited to 256 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
    &quot;writerIdentity&quot;: &quot;A String&quot;, # Output only. A service account name for exporting the data. This field is set by sinks.create and sinks.update. The service account will need to be granted write access to the destination specified in the output configuration, see [Granting access for a resource](/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). To create tables and write data this account will need the dataEditor role. Read more about roles in the [BigQuery documentation](https://cloud.google.com/bigquery/docs/access-control). E.g.: &quot;service-00000001@00000002.iam.gserviceaccount.com&quot;
    &quot;outputConfig&quot;: { # OutputConfig contains a destination for writing trace data. # Required. The export destination.
      &quot;destination&quot;: &quot;A String&quot;, # The destination for writing trace data. Currently only BigQuery is supported. E.g.: &quot;bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]&quot;
    },
  }</pre>
</div>

</body></html>