<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="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.notifications.html">notifications</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="#delete">delete(bucket, notification, provisionalUserProject=None, userProject=None)</a></code></p>
<p class="firstline">Permanently deletes a notification subscription.</p>
<p class="toc_element">
  <code><a href="#get">get(bucket, notification, provisionalUserProject=None, userProject=None)</a></code></p>
<p class="firstline">View a notification configuration.</p>
<p class="toc_element">
  <code><a href="#insert">insert(bucket, body=None, provisionalUserProject=None, userProject=None)</a></code></p>
<p class="firstline">Creates a notification subscription for a given bucket.</p>
<p class="toc_element">
  <code><a href="#list">list(bucket, provisionalUserProject=None, userProject=None)</a></code></p>
<p class="firstline">Retrieves a list of notification subscriptions for a given bucket.</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="delete">delete(bucket, notification, provisionalUserProject=None, userProject=None)</code>
  <pre>Permanently deletes a notification subscription.

Args:
  bucket: string, The parent bucket of the notification. (required)
  notification: string, ID of the notification to delete. (required)
  provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.
  userProject: string, The project to be billed for this request. Required for Requester Pays buckets.
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(bucket, notification, provisionalUserProject=None, userProject=None)</code>
  <pre>View a notification configuration.

Args:
  bucket: string, The parent bucket of the notification. (required)
  notification: string, Notification ID (required)
  provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.
  userProject: string, The project to be billed for this request. Required for Requester Pays buckets.

Returns:
  An object of the form:

    { # A subscription to receive Google PubSub notifications.
  &quot;custom_attributes&quot;: { # An optional list of additional attributes to attach to each Cloud PubSub message published for this notification subscription.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;etag&quot;: &quot;A String&quot;, # HTTP 1.1 Entity tag for this subscription notification.
  &quot;event_types&quot;: [ # If present, only send notifications about listed event types. If empty, sent notifications for all event types.
    &quot;A String&quot;,
  ],
  &quot;id&quot;: &quot;A String&quot;, # The ID of the notification.
  &quot;kind&quot;: &quot;storage#notification&quot;, # The kind of item this is. For notifications, this is always storage#notification.
  &quot;object_name_prefix&quot;: &quot;A String&quot;, # If present, only apply this notification configuration to object names that begin with this prefix.
  &quot;payload_format&quot;: &quot;JSON_API_V1&quot;, # The desired content of the Payload.
  &quot;selfLink&quot;: &quot;A String&quot;, # The canonical URL of this notification.
  &quot;topic&quot;: &quot;A String&quot;, # The Cloud PubSub topic to which this subscription publishes. Formatted as: &#x27;//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}&#x27;
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(bucket, body=None, provisionalUserProject=None, userProject=None)</code>
  <pre>Creates a notification subscription for a given bucket.

Args:
  bucket: string, The parent bucket of the notification. (required)
  body: object, The request body.
    The object takes the form of:

{ # A subscription to receive Google PubSub notifications.
  &quot;custom_attributes&quot;: { # An optional list of additional attributes to attach to each Cloud PubSub message published for this notification subscription.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;etag&quot;: &quot;A String&quot;, # HTTP 1.1 Entity tag for this subscription notification.
  &quot;event_types&quot;: [ # If present, only send notifications about listed event types. If empty, sent notifications for all event types.
    &quot;A String&quot;,
  ],
  &quot;id&quot;: &quot;A String&quot;, # The ID of the notification.
  &quot;kind&quot;: &quot;storage#notification&quot;, # The kind of item this is. For notifications, this is always storage#notification.
  &quot;object_name_prefix&quot;: &quot;A String&quot;, # If present, only apply this notification configuration to object names that begin with this prefix.
  &quot;payload_format&quot;: &quot;JSON_API_V1&quot;, # The desired content of the Payload.
  &quot;selfLink&quot;: &quot;A String&quot;, # The canonical URL of this notification.
  &quot;topic&quot;: &quot;A String&quot;, # The Cloud PubSub topic to which this subscription publishes. Formatted as: &#x27;//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}&#x27;
}

  provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.
  userProject: string, The project to be billed for this request. Required for Requester Pays buckets.

Returns:
  An object of the form:

    { # A subscription to receive Google PubSub notifications.
  &quot;custom_attributes&quot;: { # An optional list of additional attributes to attach to each Cloud PubSub message published for this notification subscription.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;etag&quot;: &quot;A String&quot;, # HTTP 1.1 Entity tag for this subscription notification.
  &quot;event_types&quot;: [ # If present, only send notifications about listed event types. If empty, sent notifications for all event types.
    &quot;A String&quot;,
  ],
  &quot;id&quot;: &quot;A String&quot;, # The ID of the notification.
  &quot;kind&quot;: &quot;storage#notification&quot;, # The kind of item this is. For notifications, this is always storage#notification.
  &quot;object_name_prefix&quot;: &quot;A String&quot;, # If present, only apply this notification configuration to object names that begin with this prefix.
  &quot;payload_format&quot;: &quot;JSON_API_V1&quot;, # The desired content of the Payload.
  &quot;selfLink&quot;: &quot;A String&quot;, # The canonical URL of this notification.
  &quot;topic&quot;: &quot;A String&quot;, # The Cloud PubSub topic to which this subscription publishes. Formatted as: &#x27;//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}&#x27;
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(bucket, provisionalUserProject=None, userProject=None)</code>
  <pre>Retrieves a list of notification subscriptions for a given bucket.

Args:
  bucket: string, Name of a Google Cloud Storage bucket. (required)
  provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.
  userProject: string, The project to be billed for this request. Required for Requester Pays buckets.

Returns:
  An object of the form:

    { # A list of notification subscriptions.
  &quot;items&quot;: [ # The list of items.
    { # A subscription to receive Google PubSub notifications.
      &quot;custom_attributes&quot;: { # An optional list of additional attributes to attach to each Cloud PubSub message published for this notification subscription.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;etag&quot;: &quot;A String&quot;, # HTTP 1.1 Entity tag for this subscription notification.
      &quot;event_types&quot;: [ # If present, only send notifications about listed event types. If empty, sent notifications for all event types.
        &quot;A String&quot;,
      ],
      &quot;id&quot;: &quot;A String&quot;, # The ID of the notification.
      &quot;kind&quot;: &quot;storage#notification&quot;, # The kind of item this is. For notifications, this is always storage#notification.
      &quot;object_name_prefix&quot;: &quot;A String&quot;, # If present, only apply this notification configuration to object names that begin with this prefix.
      &quot;payload_format&quot;: &quot;JSON_API_V1&quot;, # The desired content of the Payload.
      &quot;selfLink&quot;: &quot;A String&quot;, # The canonical URL of this notification.
      &quot;topic&quot;: &quot;A String&quot;, # The Cloud PubSub topic to which this subscription publishes. Formatted as: &#x27;//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}&#x27;
    },
  ],
  &quot;kind&quot;: &quot;storage#notifications&quot;, # The kind of item this is. For lists of notifications, this is always storage#notifications.
}</pre>
</div>

</body></html>