Notification

Support for bucket notification resources.

class google.cloud.storage.notification.BucketNotification(bucket, topic_name=None, topic_project=None, custom_attributes=None, event_types=None, blob_name_prefix=None, payload_format='NONE', notification_id=None)

Bases: object

Represent a single notification resource for a bucket.

See: https://cloud.google.com/storage/docs/json_api/v1/notifications

  • Parameters

    • bucket (google.cloud.storage.bucket.Bucket) – Bucket to which the notification is bound.

    • topic_name (str) – (Optional) Topic name to which notifications are published.

    • topic_project (str) – (Optional) Project ID of topic to which notifications are published. If not passed, uses the project ID of the bucket’s client.

    • custom_attributes (dict) – (Optional) Additional attributes passed with notification events.

    • event_types (list(str)) – (Optional) Event types for which notification events are published.

    • blob_name_prefix (str) – (Optional) Prefix of blob names for which notification events are published.

    • payload_format (str) – (Optional) Format of payload for notification events.

    • notification_id (str) – (Optional) The ID of the notification.

property blob_name_prefix()

Prefix of blob names for which notification events are published.

property bucket()

Bucket to which the notification is bound.

property client()

The client bound to this notfication.

create(client=None, timeout=60)

API wrapper: create the notification.

See: https://cloud.google.com/storage/docs/json_api/v1/notifications/insert

If user_project is set on the bucket, bills the API request to that project.

  • Parameters

    • client (Client) – (Optional) The client to use. If not passed, falls back to the client stored on the notification’s bucket.

    • timeout (float* or [tuple*](https://python.readthedocs.io/en/latest/library/stdtypes.html#tuple)) – (Optional) The amount of time, in seconds, to wait for the server response.

      Can also be passed as a tuple (connect_timeout, read_timeout). See requests.Session.request() documentation for details.

property custom_attributes()

Custom attributes passed with notification events.

delete(client=None, timeout=60, retry=<google.api_core.retry.Retry object>)

Delete this notification.

See: https://cloud.google.com/storage/docs/json_api/v1/notifications/delete

If user_project is set on the bucket, bills the API request to that project.

  • Parameters

    • client (Client or NoneType) – (Optional) The client to use. If not passed, falls back to the client stored on the current bucket.

    • timeout (float* or [tuple*](https://python.readthedocs.io/en/latest/library/stdtypes.html#tuple)) – (Optional) The amount of time, in seconds, to wait for the server response.

      Can also be passed as a tuple (connect_timeout, read_timeout). See requests.Session.request() documentation for details.

    • retry (google.api_core.retry.Retry* or *google.cloud.storage.retry.ConditionalRetryPolicy) – (Optional) How to retry the RPC. A None value will disable retries. A google.api_core.retry.Retry value will enable retries, and the object will define retriable response codes and errors and configure backoff and timeout options.

      A google.cloud.storage.retry.ConditionalRetryPolicy value wraps a Retry object and activates it only if certain conditions are met. This class exists to provide safe defaults for RPC calls that are not technically safe to retry normally (due to potential data duplication or other side-effects) but become safe to retry if a condition such as if_metageneration_match is set.

      See the retry.py source code and docstrings in this package (google.cloud.storage.retry) for information on retry types and how to configure them.

  • Raises

    google.api_core.exceptions.NotFound: if the notification does not exist.

  • Raises

    ValueError – if the notification has no ID.

property etag()

Server-set ETag of notification resource.

property event_types()

Event types for which notification events are published.

exists(client=None, timeout=60, retry=<google.api_core.retry.Retry object>)

Test whether this notification exists.

See: https://cloud.google.com/storage/docs/json_api/v1/notifications/get

If user_project is set on the bucket, bills the API request to that project.

  • Parameters

    • client (Client or NoneType) – (Optional) The client to use. If not passed, falls back to the client stored on the current bucket.

    • timeout (float* or [tuple*](https://python.readthedocs.io/en/latest/library/stdtypes.html#tuple)) – (Optional) The amount of time, in seconds, to wait for the server response.

      Can also be passed as a tuple (connect_timeout, read_timeout). See requests.Session.request() documentation for details.

    • retry (google.api_core.retry.Retry* or *google.cloud.storage.retry.ConditionalRetryPolicy) – (Optional) How to retry the RPC. A None value will disable retries. A google.api_core.retry.Retry value will enable retries, and the object will define retriable response codes and errors and configure backoff and timeout options.

      A google.cloud.storage.retry.ConditionalRetryPolicy value wraps a Retry object and activates it only if certain conditions are met. This class exists to provide safe defaults for RPC calls that are not technically safe to retry normally (due to potential data duplication or other side-effects) but become safe to retry if a condition such as if_metageneration_match is set.

      See the retry.py source code and docstrings in this package (google.cloud.storage.retry) for information on retry types and how to configure them.

  • Return type

    bool

  • Returns

    True, if the notification exists, else False.

  • Raises

    ValueError – if the notification has no ID.

classmethod from_api_repr(resource, bucket)

Construct an instance from the JSON repr returned by the server.

See: https://cloud.google.com/storage/docs/json_api/v1/notifications

  • Parameters

  • Return type

    BucketNotification

  • Returns

    the new notification instance

property notification_id()

Server-set ID of notification resource.

property path()

The URL path for this notification.

property payload_format()

Format of payload of notification events.

reload(client=None, timeout=60, retry=<google.api_core.retry.Retry object>)

Update this notification from the server configuration.

See: https://cloud.google.com/storage/docs/json_api/v1/notifications/get

If user_project is set on the bucket, bills the API request to that project.

  • Parameters

    • client (Client or NoneType) – (Optional) The client to use. If not passed, falls back to the client stored on the current bucket.

    • timeout (float* or [tuple*](https://python.readthedocs.io/en/latest/library/stdtypes.html#tuple)) – (Optional) The amount of time, in seconds, to wait for the server response.

      Can also be passed as a tuple (connect_timeout, read_timeout). See requests.Session.request() documentation for details.

    • retry (google.api_core.retry.Retry* or *google.cloud.storage.retry.ConditionalRetryPolicy) – (Optional) How to retry the RPC. A None value will disable retries. A google.api_core.retry.Retry value will enable retries, and the object will define retriable response codes and errors and configure backoff and timeout options.

      A google.cloud.storage.retry.ConditionalRetryPolicy value wraps a Retry object and activates it only if certain conditions are met. This class exists to provide safe defaults for RPC calls that are not technically safe to retry normally (due to potential data duplication or other side-effects) but become safe to retry if a condition such as if_metageneration_match is set.

      See the retry.py source code and docstrings in this package (google.cloud.storage.retry) for information on retry types and how to configure them.

  • Raises

    ValueError – if the notification has no ID.

Server-set ETag of notification resource.

property topic_name()

Topic name to which notifications are published.

property topic_project()

Project ID of topic to which notifications are published.