Class: Google::Apis::StorageV1::Bucket

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
generated/google/apis/storage_v1/classes.rb,
generated/google/apis/storage_v1/representations.rb,
generated/google/apis/storage_v1/representations.rb

Overview

A bucket.

Defined Under Namespace

Classes: Billing, CorsConfiguration, Encryption, IamConfiguration, Lifecycle, Logging, Owner, RetentionPolicy, Versioning, Website

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Core::JsonObjectSupport

#to_json

Methods included from Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ Bucket

Returns a new instance of Bucket.


207
208
209
# File 'generated/google/apis/storage_v1/classes.rb', line 207

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#aclArray<Google::Apis::StorageV1::BucketAccessControl>

Access controls on the bucket. Corresponds to the JSON property acl


32
33
34
# File 'generated/google/apis/storage_v1/classes.rb', line 32

def acl
  @acl
end

#billingGoogle::Apis::StorageV1::Bucket::Billing

The bucket's billing configuration. Corresponds to the JSON property billing


37
38
39
# File 'generated/google/apis/storage_v1/classes.rb', line 37

def billing
  @billing
end

#cors_configurationsArray<Google::Apis::StorageV1::Bucket::CorsConfiguration>

The bucket's Cross-Origin Resource Sharing (CORS) configuration. Corresponds to the JSON property cors


42
43
44
# File 'generated/google/apis/storage_v1/classes.rb', line 42

def cors_configurations
  @cors_configurations
end

#default_event_based_holdBoolean Also known as: default_event_based_hold?

The default value for event-based hold on newly created objects in this bucket. Event-based hold is a way to retain objects indefinitely until an event occurs, signified by the hold's release. After being released, such objects will be subject to bucket-level retention (if any). One sample use case of this flag is for banks to hold loan documents for at least 3 years after loan is paid in full. Here, bucket-level retention is 3 years and the event is loan being paid in full. In this example, these objects will be held intact for any number of years until the event has occurred (event-based hold on the object is released) and then 3 more years after that. That means retention duration of the objects begins from the moment event-based hold transitioned from true to false. Objects under event-based hold cannot be deleted, overwritten or archived until the hold is removed. Corresponds to the JSON property defaultEventBasedHold

Returns:

  • (Boolean)

58
59
60
# File 'generated/google/apis/storage_v1/classes.rb', line 58

def default_event_based_hold
  @default_event_based_hold
end

#default_object_aclArray<Google::Apis::StorageV1::ObjectAccessControl>

Default access controls to apply to new objects when no ACL is provided. Corresponds to the JSON property defaultObjectAcl


64
65
66
# File 'generated/google/apis/storage_v1/classes.rb', line 64

def default_object_acl
  @default_object_acl
end

#encryptionGoogle::Apis::StorageV1::Bucket::Encryption

Encryption configuration for a bucket. Corresponds to the JSON property encryption


69
70
71
# File 'generated/google/apis/storage_v1/classes.rb', line 69

def encryption
  @encryption
end

#etagString

HTTP 1.1 Entity tag for the bucket. Corresponds to the JSON property etag

Returns:

  • (String)

74
75
76
# File 'generated/google/apis/storage_v1/classes.rb', line 74

def etag
  @etag
end

#iam_configurationGoogle::Apis::StorageV1::Bucket::IamConfiguration

The bucket's IAM configuration. Corresponds to the JSON property iamConfiguration


79
80
81
# File 'generated/google/apis/storage_v1/classes.rb', line 79

def iam_configuration
  @iam_configuration
end

#idString

The ID of the bucket. For buckets, the id and name properties are the same. Corresponds to the JSON property id

Returns:

  • (String)

84
85
86
# File 'generated/google/apis/storage_v1/classes.rb', line 84

def id
  @id
end

#kindString

The kind of item this is. For buckets, this is always storage#bucket. Corresponds to the JSON property kind

Returns:

  • (String)

89
90
91
# File 'generated/google/apis/storage_v1/classes.rb', line 89

def kind
  @kind
end

#labelsHash<String,String>

User-provided labels, in key/value pairs. Corresponds to the JSON property labels

Returns:

  • (Hash<String,String>)

94
95
96
# File 'generated/google/apis/storage_v1/classes.rb', line 94

def labels
  @labels
end

#lifecycleGoogle::Apis::StorageV1::Bucket::Lifecycle

The bucket's lifecycle configuration. See lifecycle management for more information. Corresponds to the JSON property lifecycle


100
101
102
# File 'generated/google/apis/storage_v1/classes.rb', line 100

def lifecycle
  @lifecycle
end

#locationString

The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See the developer's guide for the authoritative list. Corresponds to the JSON property location

Returns:

  • (String)

107
108
109
# File 'generated/google/apis/storage_v1/classes.rb', line 107

def location
  @location
end

#location_typeString

The type of the bucket location. Corresponds to the JSON property locationType

Returns:

  • (String)

112
113
114
# File 'generated/google/apis/storage_v1/classes.rb', line 112

def location_type
  @location_type
end

#loggingGoogle::Apis::StorageV1::Bucket::Logging

The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs. Corresponds to the JSON property logging


118
119
120
# File 'generated/google/apis/storage_v1/classes.rb', line 118

def logging
  @logging
end

#metagenerationFixnum

The metadata generation of this bucket. Corresponds to the JSON property metageneration

Returns:

  • (Fixnum)

123
124
125
# File 'generated/google/apis/storage_v1/classes.rb', line 123

def metageneration
  @metageneration
end

#nameString

The name of the bucket. Corresponds to the JSON property name

Returns:

  • (String)

128
129
130
# File 'generated/google/apis/storage_v1/classes.rb', line 128

def name
  @name
end

#ownerGoogle::Apis::StorageV1::Bucket::Owner

The owner of the bucket. This is always the project team's owner group. Corresponds to the JSON property owner


133
134
135
# File 'generated/google/apis/storage_v1/classes.rb', line 133

def owner
  @owner
end

#project_numberFixnum

The project number of the project the bucket belongs to. Corresponds to the JSON property projectNumber

Returns:

  • (Fixnum)

138
139
140
# File 'generated/google/apis/storage_v1/classes.rb', line 138

def project_number
  @project_number
end

#retention_policyGoogle::Apis::StorageV1::Bucket::RetentionPolicy

The bucket's retention policy. The retention policy enforces a minimum retention time for all objects contained in the bucket, based on their creation time. Any attempt to overwrite or delete objects younger than the retention period will result in a PERMISSION_DENIED error. An unlocked retention policy can be modified or removed from the bucket via a storage. buckets.update operation. A locked retention policy cannot be removed or shortened in duration for the lifetime of the bucket. Attempting to remove or decrease period of a locked retention policy will result in a PERMISSION_DENIED error. Corresponds to the JSON property retentionPolicy


151
152
153
# File 'generated/google/apis/storage_v1/classes.rb', line 151

def retention_policy
  @retention_policy
end

The URI of this bucket. Corresponds to the JSON property selfLink

Returns:

  • (String)

156
157
158
# File 'generated/google/apis/storage_v1/classes.rb', line 156

def self_link
  @self_link
end

#storage_classString

The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, ARCHIVE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes. Corresponds to the JSON property storageClass

Returns:

  • (String)

167
168
169
# File 'generated/google/apis/storage_v1/classes.rb', line 167

def storage_class
  @storage_class
end

#time_createdDateTime

The creation time of the bucket in RFC 3339 format. Corresponds to the JSON property timeCreated

Returns:

  • (DateTime)

172
173
174
# File 'generated/google/apis/storage_v1/classes.rb', line 172

def time_created
  @time_created
end

#updatedDateTime

The modification time of the bucket in RFC 3339 format. Corresponds to the JSON property updated

Returns:

  • (DateTime)

177
178
179
# File 'generated/google/apis/storage_v1/classes.rb', line 177

def updated
  @updated
end

#versioningGoogle::Apis::StorageV1::Bucket::Versioning

The bucket's versioning configuration. Corresponds to the JSON property versioning


182
183
184
# File 'generated/google/apis/storage_v1/classes.rb', line 182

def versioning
  @versioning
end

#websiteGoogle::Apis::StorageV1::Bucket::Website

The bucket's website configuration, controlling how the service behaves when accessing bucket contents as a web site. See the Static Website Examples for more information. Corresponds to the JSON property website


189
190
191
# File 'generated/google/apis/storage_v1/classes.rb', line 189

def website
  @website
end

#zone_affinityArray<String>

The zone or zones from which the bucket is intended to use zonal quota. Requests for data from outside the specified affinities are still allowed but won't be able to use zonal quota. The zone or zones need to be within the bucket location otherwise the requests will fail with a 400 Bad Request response. Corresponds to the JSON property zoneAffinity

Returns:

  • (Array<String>)

198
199
200
# File 'generated/google/apis/storage_v1/classes.rb', line 198

def zone_affinity
  @zone_affinity
end

#zone_separationBoolean Also known as: zone_separation?

If set, objects placed in this bucket are required to be separated by disaster domain. Corresponds to the JSON property zoneSeparation

Returns:

  • (Boolean)

204
205
206
# File 'generated/google/apis/storage_v1/classes.rb', line 204

def zone_separation
  @zone_separation
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object


212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
# File 'generated/google/apis/storage_v1/classes.rb', line 212

def update!(**args)
  @acl = args[:acl] if args.key?(:acl)
  @billing = args[:billing] if args.key?(:billing)
  @cors_configurations = args[:cors_configurations] if args.key?(:cors_configurations)
  @default_event_based_hold = args[:default_event_based_hold] if args.key?(:default_event_based_hold)
  @default_object_acl = args[:default_object_acl] if args.key?(:default_object_acl)
  @encryption = args[:encryption] if args.key?(:encryption)
  @etag = args[:etag] if args.key?(:etag)
  @iam_configuration = args[:iam_configuration] if args.key?(:iam_configuration)
  @id = args[:id] if args.key?(:id)
  @kind = args[:kind] if args.key?(:kind)
  @labels = args[:labels] if args.key?(:labels)
  @lifecycle = args[:lifecycle] if args.key?(:lifecycle)
  @location = args[:location] if args.key?(:location)
  @location_type = args[:location_type] if args.key?(:location_type)
  @logging = args[:logging] if args.key?(:logging)
  @metageneration = args[:metageneration] if args.key?(:metageneration)
  @name = args[:name] if args.key?(:name)
  @owner = args[:owner] if args.key?(:owner)
  @project_number = args[:project_number] if args.key?(:project_number)
  @retention_policy = args[:retention_policy] if args.key?(:retention_policy)
  @self_link = args[:self_link] if args.key?(:self_link)
  @storage_class = args[:storage_class] if args.key?(:storage_class)
  @time_created = args[:time_created] if args.key?(:time_created)
  @updated = args[:updated] if args.key?(:updated)
  @versioning = args[:versioning] if args.key?(:versioning)
  @website = args[:website] if args.key?(:website)
  @zone_affinity = args[:zone_affinity] if args.key?(:zone_affinity)
  @zone_separation = args[:zone_separation] if args.key?(:zone_separation)
end