1# Copyright 2019 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15"""Constants used across google.cloud.storage modules.
16
17See [Python Storage Client Constants Page](https://github.com/googleapis/python-storage/blob/main/google/cloud/storage/constants.py)
18for constants used across storage classes, location types, public access prevention, etc.
19
20"""
21
22# Storage classes
23
24STANDARD_STORAGE_CLASS = "STANDARD"
25"""Storage class for objects accessed more than once per month.
26
27See: https://cloud.google.com/storage/docs/storage-classes
28"""
29
30NEARLINE_STORAGE_CLASS = "NEARLINE"
31"""Storage class for objects accessed at most once per month.
32
33See: https://cloud.google.com/storage/docs/storage-classes
34"""
35
36COLDLINE_STORAGE_CLASS = "COLDLINE"
37"""Storage class for objects accessed at most once per year.
38
39See: https://cloud.google.com/storage/docs/storage-classes
40"""
41
42ARCHIVE_STORAGE_CLASS = "ARCHIVE"
43"""Storage class for objects accessed less frequently than once per year.
44
45See: https://cloud.google.com/storage/docs/storage-classes
46"""
47
48MULTI_REGIONAL_LEGACY_STORAGE_CLASS = "MULTI_REGIONAL"
49"""Legacy storage class.
50
51Alias for :attr:`STANDARD_STORAGE_CLASS`.
52
53Can only be used for objects in buckets whose
54:attr:`~google.cloud.storage.bucket.Bucket.location_type` is
55:attr:`~google.cloud.storage.bucket.Bucket.MULTI_REGION_LOCATION_TYPE`.
56
57See: https://cloud.google.com/storage/docs/storage-classes
58"""
59
60REGIONAL_LEGACY_STORAGE_CLASS = "REGIONAL"
61"""Legacy storage class.
62
63Alias for :attr:`STANDARD_STORAGE_CLASS`.
64
65Can only be used for objects in buckets whose
66:attr:`~google.cloud.storage.bucket.Bucket.location_type` is
67:attr:`~google.cloud.storage.bucket.Bucket.REGION_LOCATION_TYPE`.
68
69See: https://cloud.google.com/storage/docs/storage-classes
70"""
71
72DURABLE_REDUCED_AVAILABILITY_LEGACY_STORAGE_CLASS = "DURABLE_REDUCED_AVAILABILITY"
73"""Legacy storage class.
74
75Similar to :attr:`NEARLINE_STORAGE_CLASS`.
76"""
77
78
79# Location types
80
81MULTI_REGION_LOCATION_TYPE = "multi-region"
82"""Location type: data will be replicated across regions in a multi-region.
83
84Provides highest availability across largest area.
85"""
86
87REGION_LOCATION_TYPE = "region"
88"""Location type: data will be stored within a single region.
89
90Provides lowest latency within a single region.
91"""
92
93DUAL_REGION_LOCATION_TYPE = "dual-region"
94"""Location type: data will be stored within two primary regions.
95
96Provides high availability and low latency across two regions.
97"""
98
99
100# Internal constants
101
102_DEFAULT_TIMEOUT = 60 # in seconds
103"""The default request timeout in seconds if a timeout is not explicitly given.
104"""
105
106# Public Access Prevention
107PUBLIC_ACCESS_PREVENTION_ENFORCED = "enforced"
108"""Enforced public access prevention value.
109
110See: https://cloud.google.com/storage/docs/public-access-prevention
111"""
112
113PUBLIC_ACCESS_PREVENTION_UNSPECIFIED = "unspecified"
114"""Unspecified public access prevention value.
115
116DEPRECATED: Use 'PUBLIC_ACCESS_PREVENTION_INHERITED' instead.
117
118See: https://cloud.google.com/storage/docs/public-access-prevention
119"""
120
121PUBLIC_ACCESS_PREVENTION_INHERITED = "inherited"
122"""Inherited public access prevention value.
123
124See: https://cloud.google.com/storage/docs/public-access-prevention
125"""
126
127RPO_ASYNC_TURBO = "ASYNC_TURBO"
128"""The recovery point objective (RPO) indicates how quickly newly written objects are asynchronously replicated to a separate geographic location.
129When the RPO value is set to ASYNC_TURBO, the turbo replication feature is enabled.
130
131See: https://cloud.google.com/storage/docs/managing-turbo-replication
132"""
133
134RPO_DEFAULT = "DEFAULT"
135"""The recovery point objective (RPO) indicates how quickly newly written objects are asynchronously replicated to a separate geographic location.
136When the RPO value is set to DEFAULT, the default replication behavior is enabled.
137
138See: https://cloud.google.com/storage/docs/managing-turbo-replication
139"""