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

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

Overview

A bucket.

Defined Under Namespace

Classes: Autoclass, Billing, CorsConfiguration, CustomPlacementConfig, Encryption, HierarchicalNamespace, IamConfiguration, IpFilter, Lifecycle, Logging, ObjectRetention, Owner, RetentionPolicy, SoftDeletePolicy, Versioning, Website

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ Bucket

Returns a new instance of Bucket.



379
380
381
# File 'lib/google/apis/storage_v1/classes.rb', line 379

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



153
154
155
# File 'lib/google/apis/storage_v1/classes.rb', line 153

def acl
  @acl
end

#autoclassGoogle::Apis::StorageV1::Bucket::Autoclass

The bucket's Autoclass configuration. Corresponds to the JSON property autoclass



158
159
160
# File 'lib/google/apis/storage_v1/classes.rb', line 158

def autoclass
  @autoclass
end

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

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



163
164
165
# File 'lib/google/apis/storage_v1/classes.rb', line 163

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



168
169
170
# File 'lib/google/apis/storage_v1/classes.rb', line 168

def cors_configurations
  @cors_configurations
end

#custom_placement_configGoogle::Apis::StorageV1::Bucket::CustomPlacementConfig

The bucket's custom placement configuration for Custom Dual Regions. Corresponds to the JSON property customPlacementConfig



173
174
175
# File 'lib/google/apis/storage_v1/classes.rb', line 173

def custom_placement_config
  @custom_placement_config
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)


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

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



195
196
197
# File 'lib/google/apis/storage_v1/classes.rb', line 195

def default_object_acl
  @default_object_acl
end

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

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



200
201
202
# File 'lib/google/apis/storage_v1/classes.rb', line 200

def encryption
  @encryption
end

#etagString

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

Returns:

  • (String)


205
206
207
# File 'lib/google/apis/storage_v1/classes.rb', line 205

def etag
  @etag
end

#generationFixnum

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

Returns:

  • (Fixnum)


210
211
212
# File 'lib/google/apis/storage_v1/classes.rb', line 210

def generation
  @generation
end

#hard_delete_timeDateTime

The hard delete time of the bucket in RFC 3339 format. Corresponds to the JSON property hardDeleteTime

Returns:

  • (DateTime)


215
216
217
# File 'lib/google/apis/storage_v1/classes.rb', line 215

def hard_delete_time
  @hard_delete_time
end

#hierarchical_namespaceGoogle::Apis::StorageV1::Bucket::HierarchicalNamespace

The bucket's hierarchical namespace configuration. Corresponds to the JSON property hierarchicalNamespace



220
221
222
# File 'lib/google/apis/storage_v1/classes.rb', line 220

def hierarchical_namespace
  @hierarchical_namespace
end

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

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



225
226
227
# File 'lib/google/apis/storage_v1/classes.rb', line 225

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)


230
231
232
# File 'lib/google/apis/storage_v1/classes.rb', line 230

def id
  @id
end

#ip_filterGoogle::Apis::StorageV1::Bucket::IpFilter

The bucket's IP filter configuration. Specifies the network sources that are allowed to access the operations on the bucket, as well as its underlying objects. Only enforced when the mode is set to 'Enabled'. Corresponds to the JSON property ipFilter



237
238
239
# File 'lib/google/apis/storage_v1/classes.rb', line 237

def ip_filter
  @ip_filter
end

#kindString

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

Returns:

  • (String)


242
243
244
# File 'lib/google/apis/storage_v1/classes.rb', line 242

def kind
  @kind
end

#labelsHash<String,String>

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

Returns:

  • (Hash<String,String>)


247
248
249
# File 'lib/google/apis/storage_v1/classes.rb', line 247

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



253
254
255
# File 'lib/google/apis/storage_v1/classes.rb', line 253

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)


261
262
263
# File 'lib/google/apis/storage_v1/classes.rb', line 261

def location
  @location
end

#location_typeString

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

Returns:

  • (String)


266
267
268
# File 'lib/google/apis/storage_v1/classes.rb', line 266

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



272
273
274
# File 'lib/google/apis/storage_v1/classes.rb', line 272

def logging
  @logging
end

#metagenerationFixnum

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

Returns:

  • (Fixnum)


277
278
279
# File 'lib/google/apis/storage_v1/classes.rb', line 277

def metageneration
  @metageneration
end

#nameString

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

Returns:

  • (String)


282
283
284
# File 'lib/google/apis/storage_v1/classes.rb', line 282

def name
  @name
end

#object_retentionGoogle::Apis::StorageV1::Bucket::ObjectRetention

The bucket's object retention config. Corresponds to the JSON property objectRetention



287
288
289
# File 'lib/google/apis/storage_v1/classes.rb', line 287

def object_retention
  @object_retention
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



292
293
294
# File 'lib/google/apis/storage_v1/classes.rb', line 292

def owner
  @owner
end

#project_numberFixnum

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

Returns:

  • (Fixnum)


297
298
299
# File 'lib/google/apis/storage_v1/classes.rb', line 297

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



310
311
312
# File 'lib/google/apis/storage_v1/classes.rb', line 310

def retention_policy
  @retention_policy
end

#rpoString

The Recovery Point Objective (RPO) of this bucket. Set to ASYNC_TURBO to turn on Turbo Replication on a bucket. Corresponds to the JSON property rpo

Returns:

  • (String)


316
317
318
# File 'lib/google/apis/storage_v1/classes.rb', line 316

def rpo
  @rpo
end

#satisfies_pziBoolean Also known as: satisfies_pzi?

Reserved for future use. Corresponds to the JSON property satisfiesPZI

Returns:

  • (Boolean)


321
322
323
# File 'lib/google/apis/storage_v1/classes.rb', line 321

def satisfies_pzi
  @satisfies_pzi
end

#satisfies_pzsBoolean Also known as: satisfies_pzs?

Reserved for future use. Corresponds to the JSON property satisfiesPZS

Returns:

  • (Boolean)


327
328
329
# File 'lib/google/apis/storage_v1/classes.rb', line 327

def satisfies_pzs
  @satisfies_pzs
end

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

Returns:

  • (String)


333
334
335
# File 'lib/google/apis/storage_v1/classes.rb', line 333

def self_link
  @self_link
end

#soft_delete_policyGoogle::Apis::StorageV1::Bucket::SoftDeletePolicy

The bucket's soft delete policy, which defines the period of time that soft- deleted objects will be retained, and cannot be permanently deleted. Corresponds to the JSON property softDeletePolicy



339
340
341
# File 'lib/google/apis/storage_v1/classes.rb', line 339

def soft_delete_policy
  @soft_delete_policy
end

#soft_delete_timeDateTime

The soft delete time of the bucket in RFC 3339 format. Corresponds to the JSON property softDeleteTime

Returns:

  • (DateTime)


344
345
346
# File 'lib/google/apis/storage_v1/classes.rb', line 344

def soft_delete_time
  @soft_delete_time
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)


355
356
357
# File 'lib/google/apis/storage_v1/classes.rb', line 355

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)


360
361
362
# File 'lib/google/apis/storage_v1/classes.rb', line 360

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)


365
366
367
# File 'lib/google/apis/storage_v1/classes.rb', line 365

def updated
  @updated
end

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

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



370
371
372
# File 'lib/google/apis/storage_v1/classes.rb', line 370

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



377
378
379
# File 'lib/google/apis/storage_v1/classes.rb', line 377

def website
  @website
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
# File 'lib/google/apis/storage_v1/classes.rb', line 384

def update!(**args)
  @acl = args[:acl] if args.key?(:acl)
  @autoclass = args[:autoclass] if args.key?(:autoclass)
  @billing = args[:billing] if args.key?(:billing)
  @cors_configurations = args[:cors_configurations] if args.key?(:cors_configurations)
  @custom_placement_config = args[:custom_placement_config] if args.key?(:custom_placement_config)
  @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)
  @generation = args[:generation] if args.key?(:generation)
  @hard_delete_time = args[:hard_delete_time] if args.key?(:hard_delete_time)
  @hierarchical_namespace = args[:hierarchical_namespace] if args.key?(:hierarchical_namespace)
  @iam_configuration = args[:iam_configuration] if args.key?(:iam_configuration)
  @id = args[:id] if args.key?(:id)
  @ip_filter = args[:ip_filter] if args.key?(:ip_filter)
  @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)
  @object_retention = args[:object_retention] if args.key?(:object_retention)
  @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)
  @rpo = args[:rpo] if args.key?(:rpo)
  @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
  @self_link = args[:self_link] if args.key?(:self_link)
  @soft_delete_policy = args[:soft_delete_policy] if args.key?(:soft_delete_policy)
  @soft_delete_time = args[:soft_delete_time] if args.key?(:soft_delete_time)
  @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)
end