<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="pubsublite_v1.html">Pub/Sub Lite API</a> . <a href="pubsublite_v1.admin.html">admin</a> . <a href="pubsublite_v1.admin.projects.html">projects</a> . <a href="pubsublite_v1.admin.projects.locations.html">locations</a> . <a href="pubsublite_v1.admin.projects.locations.reservations.html">reservations</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="pubsublite_v1.admin.projects.locations.reservations.topics.html">topics()</a></code>
</p>
<p class="firstline">Returns the topics 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="#create">create(parent, body=None, reservationId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a new reservation.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes the specified reservation.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the reservation configuration.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the list of reservations for the given 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 properties of the specified reservation.</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, reservationId=None, x__xgafv=None)</code>
  <pre>Creates a new reservation.

Args:
  parent: string, Required. The parent location in which to create the reservation. Structured like `projects/{project_number}/locations/{location}`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Metadata about a reservation resource.
  &quot;name&quot;: &quot;A String&quot;, # The name of the reservation. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id}
  &quot;throughputCapacity&quot;: &quot;A String&quot;, # The reserved throughput capacity. Every unit of throughput capacity is equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed messages. Any topics which are declared as using capacity from a Reservation will consume resources from this reservation instead of being charged individually.
}

  reservationId: string, Required. The ID to use for the reservation, which will become the final component of the reservation&#x27;s name. This value is structured like: `my-reservation-name`.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Metadata about a reservation resource.
  &quot;name&quot;: &quot;A String&quot;, # The name of the reservation. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id}
  &quot;throughputCapacity&quot;: &quot;A String&quot;, # The reserved throughput capacity. Every unit of throughput capacity is equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed messages. Any topics which are declared as using capacity from a Reservation will consume resources from this reservation instead of being charged individually.
}</pre>
</div>

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

Args:
  name: string, Required. The name of the reservation to delete. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id} (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>Returns the reservation configuration.

Args:
  name: string, Required. The name of the reservation whose configuration to return. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Metadata about a reservation resource.
  &quot;name&quot;: &quot;A String&quot;, # The name of the reservation. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id}
  &quot;throughputCapacity&quot;: &quot;A String&quot;, # The reserved throughput capacity. Every unit of throughput capacity is equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed messages. Any topics which are declared as using capacity from a Reservation will consume resources from this reservation instead of being charged individually.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Returns the list of reservations for the given project.

Args:
  parent: string, Required. The parent whose reservations are to be listed. Structured like `projects/{project_number}/locations/{location}`. (required)
  pageSize: integer, The maximum number of reservations to return. The service may return fewer than this value. If unset or zero, all reservations for the parent will be returned.
  pageToken: string, A page token, received from a previous `ListReservations` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListReservations` must match the call that provided the page token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for ListReservations.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as `page_token` to retrieve the next page of results. If this field is omitted, there are no more results.
  &quot;reservations&quot;: [ # The list of reservation in the requested parent. The order of the reservations is unspecified.
    { # Metadata about a reservation resource.
      &quot;name&quot;: &quot;A String&quot;, # The name of the reservation. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id}
      &quot;throughputCapacity&quot;: &quot;A String&quot;, # The reserved throughput capacity. Every unit of throughput capacity is equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed messages. Any topics which are declared as using capacity from a Reservation will consume resources from this reservation instead of being charged individually.
    },
  ],
}</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 properties of the specified reservation.

Args:
  name: string, The name of the reservation. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id} (required)
  body: object, The request body.
    The object takes the form of:

{ # Metadata about a reservation resource.
  &quot;name&quot;: &quot;A String&quot;, # The name of the reservation. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id}
  &quot;throughputCapacity&quot;: &quot;A String&quot;, # The reserved throughput capacity. Every unit of throughput capacity is equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed messages. Any topics which are declared as using capacity from a Reservation will consume resources from this reservation instead of being charged individually.
}

  updateMask: string, Required. A mask specifying the reservation fields to change.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Metadata about a reservation resource.
  &quot;name&quot;: &quot;A String&quot;, # The name of the reservation. Structured like: projects/{project_number}/locations/{location}/reservations/{reservation_id}
  &quot;throughputCapacity&quot;: &quot;A String&quot;, # The reserved throughput capacity. Every unit of throughput capacity is equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed messages. Any topics which are declared as using capacity from a Reservation will consume resources from this reservation instead of being charged individually.
}</pre>
</div>

</body></html>