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

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.

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.



614
615
616
# File 'generated/google/apis/storage_v1/classes.rb', line 614

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

Instance Attribute Details

#effective_timeDateTime

Server-determined value that indicates the time from which policy was enforced and effective. This value is in RFC 3339 format. Corresponds to the JSON property effectiveTime

Returns:

  • (DateTime)


598
599
600
# File 'generated/google/apis/storage_v1/classes.rb', line 598

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)


603
604
605
# File 'generated/google/apis/storage_v1/classes.rb', line 603

def is_locked
  @is_locked
end

#retention_periodFixnum

The duration in seconds 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)


612
613
614
# File 'generated/google/apis/storage_v1/classes.rb', line 612

def retention_period
  @retention_period
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



619
620
621
622
623
# File 'generated/google/apis/storage_v1/classes.rb', line 619

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