<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="#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="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>