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

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

Defines the retention policy for a bucket. 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 the UpdateBucketMetadata RPC. 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.

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) ⇒ RetentionPolicy

Returns a new instance of RetentionPolicy



500
501
502
# File 'generated/google/apis/storage_v1/classes.rb', line 500

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

Instance Attribute Details

#effective_timeDateTime

The time from which policy was enforced and effective. RFC 3339 format. Corresponds to the JSON property effectiveTime

Returns:

  • (DateTime)


484
485
486
# File 'generated/google/apis/storage_v1/classes.rb', line 484

def effective_time
  @effective_time
end

#is_lockedBoolean Also known as: is_locked?

Once locked, an object retention policy cannot be modified. Corresponds to the JSON property isLocked

Returns:

  • (Boolean)


489
490
491
# File 'generated/google/apis/storage_v1/classes.rb', line 489

def is_locked
  @is_locked
end

#retention_periodFixnum

Specifies the duration that objects need to be retained. Retention duration must be greater than zero and less than 100 years. Note that enforcement of retention periods less than a day is not guaranteed. Such periods should only be used for testing purposes. Corresponds to the JSON property retentionPeriod

Returns:

  • (Fixnum)


498
499
500
# File 'generated/google/apis/storage_v1/classes.rb', line 498

def retention_period
  @retention_period
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



505
506
507
508
509
# File 'generated/google/apis/storage_v1/classes.rb', line 505

def update!(**args)
  @effective_time = args[:effective_time] if args.key?(:effective_time)
  @is_locked = args[:is_locked] if args.key?(:is_locked)
  @retention_period = args[:retention_period] if args.key?(:retention_period)
end